CLI Reference | CVE Lite CLI
Skip to main content

CLI Reference

cve-lite [path] [options]
cve-lite overrides [path] [options]
cve-lite advisories sync [options]
cve-lite advisories init [options]
cve-lite config <set|unset|show> [key] [value]
cve-lite install-skill

path defaults to the current directory if omitted.


Scan options

FlagDefaultDescriptionExample
--prod-onlyoffExclude dev dependencies from the scancve-lite . --prod-only
--min-severitymediumOnly show findings at or above this severity (critical, high, medium, low)cve-lite . --min-severity high
--alloffShow all findings including low and unknown; appends a full table in compact modecve-lite . --all
--search-depth4How many directory levels deep to search for a lockfilecve-lite . --search-depth 2
--batch-size100Number of packages sent per OSV API requestcve-lite . --batch-size 50
--create-proffAfter --fix, commit changes and open a GitHub pull request (requires gh)cve-lite --fix --create-pr
--base <branch>mainBase branch for --create-prcve-lite --fix --create-pr --base develop
--debugoffWrite verbose runtime/network diagnostics to a timestamped log filecve-lite --debug

Output options

FlagDefaultDescriptionExample
--verboseoffFull output: severity table, fix plan, findings table (with EPSS and EPSS Priority columns), coverage notescve-lite . --verbose
--jsonoffMachine-readable JSON output (suppresses all other output); each finding includes epssScores and prioritySignal when EPSS data is availablecve-lite . --json
--sarifoffWrite SARIF 2.1.0 output to a timestamped .sarif file; can be combined with --json and --reportcve-lite . --sarif
--sbom <format>offWrite an SBOM to a timestamped file. Formats: cyclonedx (1.4, .cdx.json), spdx or spdx2.3 (SPDX 2.3, .spdx.json). Can be combined with --json and --sarif; cannot be combined with --report or --fixcve-lite . --sbom spdx
--sbom-inventory-onlyoffOmit the vulnerability overlay from --sbom, leaving a pure inventory. Requires --sbomcve-lite . --sbom spdx --sbom-inventory-only
--cdxoffAlias for --sbom cyclonedx, kept for compatibilitycve-lite . --cdx
--report[=<path>]off / ./cve-reportGenerate an HTML report with EPSS and EPSS Priority columns and an interactive priority legend; optional path sets output directory (default ./cve-report); opens in browser by default; cannot be used with --jsoncve-lite . --report
cve-lite . --report ./reports
--no-openoffGenerate the HTML report without opening it in the browsercve-lite . --report --no-open

EPSS Priority Signal

When EPSS data is available for a finding, CVE Lite CLI combines CVSS-derived severity with the EPSS exploitation likelihood percentile to produce a single actionable priority tier. EPSS is the Exploit Prediction Scoring System from FIRST.org - it scores how likely a CVE is to be exploited in the next 30 days relative to all published CVEs.

TierConditionMeaning
fix_nowCritical or high severity + EPSS top 10%High impact and actively exploited class of CVE - address immediately
fix_soonCritical or high severity, EPSS not top 10%High impact but exploitation is less common - schedule a fix
monitorMedium or lower severity, EPSS top 10%Lower impact but exploitation is active - watch closely
low_priorityMedium or lower severity, EPSS not top 10%Address in normal maintenance cycle

The tier is null in JSON output when no EPSS data is available for a finding (typically when a finding has no CVE alias that resolves against the FIRST.org API). In terminal and HTML output, those cells show -.

In terminal compact mode, only fix_now findings are flagged inline with ⚡ Fix Now. In verbose mode and the HTML report, all four tiers appear in a dedicated EPSS Priority column alongside the raw EPSS percentile.


Offline options

FlagDefaultDescriptionExample
--offlineoffUse the local advisory DB only — no external advisory API callscve-lite . --offline
--offline-db=<path>autoPath to a specific advisory DB filecve-lite . --offline-db ./advisories.db

Sync the local advisory DB with:

cve-lite advisories sync
cve-lite advisories sync --output ./advisories.db # write to a specific path

In air-gapped environments that cannot reach OSV, create an empty DB and populate it from your own advisory sources instead:

cve-lite advisories init
cve-lite advisories init --output ./advisories.db # create at a specific path

advisories init refuses to overwrite an existing file, so point --output at a fresh path.

See Offline Advisory DB for the full offline workflow.


Network / SSL options

FlagDefaultDescriptionExample
--ca-cert=<path>-Path to a PEM CA certificate file for corporate SSL inspection proxiescve-lite . --ca-cert ~/corp-ca.crt
--osv-url=<url>OSV APIUse a custom OSV-compatible endpoint instead of the public API (HTTPS only, public IPs only by default)cve-lite . --osv-url https://osv.example.com
--allow-private-osv-urloffAllow --osv-url to resolve to private/reserved IPs (RFC 1918, loopback, link-local) for internal mirrorscve-lite . --osv-url https://internal-mirror.local/osv --allow-private-osv-url

Security note: The --osv-url flag enforces HTTPS and blocks private/reserved IP ranges by default to prevent SSRF attacks. Use --allow-private-osv-url only when connecting to trusted internal mirrors.

For networks with SSL inspection, save the certificate path once so you do not need to pass the flag on every scan:

cve-lite config set ca-cert /path/to/corporate-ca.crt

See Corporate SSL Proxy for the full setup workflow.


CI / Automation options

FlagDefaultDescriptionExample
--fail-oncriticalExit with code 1 if any finding meets or exceeds this severity (critical, high, medium, low); exit 0 otherwisecve-lite . --fail-on high
--incomplete-policywarnHow to handle incomplete scan data: warn (default) prints diagnostics but exits based on findings; error exits with code 3 when detection data is incompletecve-lite . --incomplete-policy error
--ratchetoffSave current CVE findings as a baseline, or if a baseline exists, only fail on findings above it. In multi-folder mode each subfolder gets its own .cve-lite/baseline.jsoncve-lite . --ratchet
--fixoffAuto-apply direct-dependency fix commands (direct deps only, v1); cannot be used with --json, --sarif, or --sbom/--cdxcve-lite . --fix
--check-overridesoffAudit overrides and resolutions entries as part of the scan (OA001-OA008); results appear in the scan outputcve-lite . --check-overrides
--check-maintenanceoffRun maintenance risk checks alongside the CVE scan (DM001); surfaces dependency drag and checks for deprecated packagescve-lite . --check-maintenance
--usageoffScan source files to detect which packages are actually importedcve-lite . --usage
--only-usedoffShow only findings for packages that are imported in source code (implies --usage)cve-lite . --only-used

Note: --usage-hints is a deprecated alias for --usage.

See Workflow Integration for CI/CD patterns and GitHub Actions templates.


Override hygiene options

--check-overrides adds override auditing to a regular scan. For a dedicated override-only run, use the overrides subcommand:

cve-lite overrides [path] [options]

path defaults to the current directory if omitted.

FlagDefaultDescriptionExample
--check-networkoffEnable network checks for OA007 (frozen latest)cve-lite overrides . --check-network
--fixoffAuto-fix override issues where possiblecve-lite overrides . --fix
--jsonoffMachine-readable JSON outputcve-lite overrides . --json
--rule=<id>allRun only a specific rule (e.g. OA001, OA007)cve-lite overrides . --rule=OA007
--fail-onoffExit with code 1 if any override finding is at or above this severitycve-lite overrides . --fail-on high
--audit-log=<path>-Write a JSONL audit log of all findings to the specified pathcve-lite overrides . --audit-log ./overrides.jsonl

See the Override Hygiene Auditing guide for the full rule reference (OA001-OA008), per-rule examples, and CI patterns.


Maintenance risk options

--check-maintenance

Run maintenance risk checks alongside the CVE scan (rule DM001). Surfaces direct dependencies that block a transitive CVE fix via a major-version constraint drag (high), and direct dependencies that are deprecated on npm (medium), even ones that are not blocking a fix. When a flagged package's latest release is over two years old, a Last release context line is added; release age does not change severity on its own.

When online, this fetches one npm packument per direct dependency (bounded concurrency, cached) to check for deprecation and read the last-release date. With --offline, the deprecation and release-age checks are skipped and only drag findings surface.

cve-lite . --check-maintenance
cve-lite . --check-maintenance --fail-on high
cve-lite . --check-maintenance --offline
cve-lite . --check-maintenance --json

License scanning options

--check-licenses

Scan dependencies for copyleft and unknown licenses alongside the CVE scan. Always informational - license findings never affect exit code.

Rules:

  • LC001 (high) - Copyleft license (GPL, AGPL, LGPL): using this dependency in commercial software may require open-sourcing your code.
  • LC002 (medium) - No license declared: the dependency has no license field, uses UNLICENSED, or defers to a file. Legally ambiguous - treat as proprietary until verified.

For npm projects, license data is read directly from package-lock.json (no network calls, works offline). For pnpm, Yarn, and Bun projects, only direct dependencies are checked (transitive license data requires registry calls not yet implemented for non-npm lockfiles).

cve-lite . --check-licenses
cve-lite . --check-licenses --json
cve-lite . --check-licenses --sarif

Cache options

FlagDefaultDescriptionExample
--cache-dir=<path>~/.cache/cve-liteUse a specific directory for the advisory response cachecve-lite . --cache-dir ./.cache
--no-cacheSkip the query cache and fetch fresh results from OSV and the npm registry advisory API for this scancve-lite . --no-cache

To clear the cache manually, delete ~/.cache/cve-lite/osv-vulns.json. The next scan will re-fetch advisories from all sources.

Query cache entries expire after 30 minutes. Use --no-cache to force a fresh query immediately without waiting for the TTL. See the Caching guide for full details including false negative and false positive risk.


Other commands

config

cve-lite config set ca-cert <path> # Save a CA certificate path
cve-lite config unset ca-cert # Remove the saved CA certificate path
cve-lite config show # Print current config and config file location

Manages persistent CLI configuration stored in ~/.cve-lite-cli/config.json. Currently supports one key:

KeyDescription
ca-certPath to a PEM CA certificate for corporate SSL inspection proxies

The file must be a valid PEM certificate (starting with -----BEGIN CERTIFICATE-----). CVE Lite CLI validates the file exists and is readable before saving.

See Corporate SSL Proxy for the full workflow.


install-skill

cve-lite install-skill

Writes AI assistant skill files into the current project directory for Claude Code, Codex CLI, Gemini CLI, Cursor, and GitHub Copilot. Commit the generated files to share them with your team.

See the AI Assistant Integration guide for the full workflow.