@osv tool checks the project’s pinned dependencies against the public OSV.dev database — keyless, no API key and no external CLI. Inspired by hermes-agent’s osv_check, implemented natively in Go.
Subcommands
scan {path}
Reads a manifest (or a directory containing one) and checks every pinned dependency:
| Ecosystem | Manifest |
|---|---|
| Go | go.mod |
| PyPI | requirements.txt (== pins) |
| npm | package-lock.json (v1 and v2+) |
| crates.io | Cargo.lock |
path defaults to the current directory; a directory is resolved to the first supported manifest found.
check {ecosystem, package, version}
Checks a single dependency. Ecosystems: Go | PyPI | npm | crates.io | Maven | RubyGems | NuGet | Packagist.
Output
For each vulnerable dependency it lists the advisory ID, aliases (CVE/GHSA), severity (CVSS) and a summary:✅ No known vulnerabilities found.
Notes
- It is read-only and concurrency-safe — the orchestrator can fan out multiple
@osvcalls in parallel. - Transient network failures on individual deps are skipped without aborting the whole scan.
- Being keyless and HTTP-based, it works on any OS.