Sulat.com / Writing on AIThursday, November 12, 2026
Developer Tools/12 November 2026

cve.now adds a free CLI that checks lockfiles for known CVEs

Sazabi's cve.now has published a free CLI that checks lockfiles for known CVEs, grouping findings by the upgrade that fixes them, with no API key.

A parachute packing loft with a wooden table of folded canvas and straps, and a wall sign showing the official cve.now red badge and CVE.NOW wordmark.

At a glance

  • On 11 November, Sazabi released version 0.2.0 of the cve.now CLI, a free tool that checks project lockfiles for known CVEs and groups findings by the upgrade that fixes them.
  • The official account called it an upgrade; creator Sherwood said a single command, npx cve.now check, also labels each finding as direct or transitive, and production or development.
  • The CLI parses lockfiles on the local machine and, according to the project, sends only each package's ecosystem, name and version; no login or API key is required, and those checks are not stored.
  • A CI job can be set to fail on a CISA KEV listing, or on critical or high findings. A result with no matches means cve.now's index has no known vulnerability for that version, not that the packages are safe.
  • The same checks are also available through cve.now's public REST API and MCP server, which the CLI commands mirror.

Sazabi’s cve.now has a command-line tool that checks the lockfiles in a project for known CVEs, and groups what it finds by the upgrade that fixes them. On 11 November the official account called version 0.2.0 an upgrade, and the project’s creator, Sherwood, walked through the new check command on X.

cve.now is already a free, public feed that merges the CVE List, the GitHub Advisory Database, OSV, the US National Vulnerability Database, ENISA’s EUVD, CISA’s Known Exploited Vulnerabilities catalogue, FIRST’s EPSS scores and Exploit-DB into one entry per vulnerability. The CLI, published on npm under an Apache-2.0 licence, talks to the same public REST API as the site and its MCP server. No login or API key is required.

One command in the repo

The published entry point is npx cve.now check. It looks for supported lockfiles under the current directory, or under paths you pass it, and prints findings per lockfile. Each package line is grouped by an upgrade target, and labelled, where the files allow it, as a direct or transitive dependency, and as production or development. Sherwood’s point was a practical one: a critical finding in test tooling isn’t the same as one in authentication code.

For continuous integration, --fail-on can make the command exit with a failure when it sees a CISA KEV listing, or a finding the project rates as critical or high. The default is to exit successfully even when findings are present, so a CI job only breaks if you ask it to.

What leaves the machine

According to the project’s documentation, the CLI parses each lockfile locally and sends cve.now only the ecosystem, name and version of each package. Those checks are not stored. The documentation also says the tool doesn’t write files, run package managers or send telemetry. A separate path on the website lets you upload a lockfile to get a stack feed of later matches; that path is documented as deleting the file after parsing and keeping only the package list to build the feed.

A result with no matches means cve.now’s index has no known vulnerability for that version, not that the packages are safe. The project also notes that tools which read only OSV can list entries cve.now hasn’t merged yet.

Which lockfiles it accepts

The 0.2.0 documentation lists a wide set of lockfiles. Two of them come with documented limits: a flake.lock is checked by the git commit each input pins, through OSV, and package CVEs in nixpkgs are not checked; a requirements.txt is checked only for packages pinned to a single version.

EcosystemLockfiles the CLI documents
JavaScriptpackage-lock.json, npm-shrinkwrap.json, bun.lock, pnpm-lock.yaml, yarn.lock
Pythonpoetry.lock, uv.lock, Pipfile.lock, requirements.txt
Rust, Go, Ruby, ElixirCargo.lock, go.sum, Gemfile.lock, mix.lock
PHP, .NET, Java, Nixcomposer.lock, packages.lock.json, gradle.lockfile, flake.lock
Lockfile types listed in the cve.now CLI documentation for version 0.2.0. A flake.lock is checked by git commit through OSV; a requirements.txt is checked only for pinned versions.

What the feed already was

The same CLI can look up an entry by CVE, GHSA or OSV identifier, read the project’s feeds and rankings, and search the catalogue. Those commands map to operations already exposed on the MCP server at mcp.cve.now and on the public API. cve.now says its plain-English summaries are written by a model and labelled as such, while severity, exploitation status, affected versions and fixes come from the source records. It uses NVD data and says it isn’t endorsed by NVD.

Sherwood announced the check command, and the official account quoted that post as an upgrade:


Discover more from Sulat AI & Tech News

Subscribe to get the latest posts sent to your email.