Documentation

CLI Reference

Complete reference for all Vulnetix CLI commands, flags, and usage patterns.

Complete reference for all Vulnetix CLI commands, flags, and usage patterns.

Commands

vulnetix (root command)

Run vulnerability management tasks against the Vulnetix backend.

vulnetix

The root command runs an authentication healthcheck.

TaskDescription
info (default)Authentication healthcheck across all credential sources

Global Flags:

FlagTypeDescription
--org-idstringOrganization ID (UUID)
--api-keystringDirect API key (overrides VULNETIX_API_KEY)
--help-Help for any command

vulnetix auth

Manage authentication credentials for the Vulnetix API.

vulnetix auth [login|status|verify|logout] [flags]

auth login

Authenticate with Vulnetix. Interactive by default when run in a terminal.

# Interactive browser device flow (prompts for storage)
vulnetix auth login --store keyring

# Non-interactive login with an ApiKey
vulnetix auth login --api-key <KEY> --org-id <UUID> --store keyring

# Non-interactive login with a SigV4 secret
vulnetix auth login --secret <SECRET> --org-id <UUID> --store keyring

# Non-interactive login with a Bearer token (org resolved server-side)
vulnetix auth login --token <TOKEN> --store keyring

Flags:

FlagTypeDefaultDescription
--org-idstring-Organization ID (UUID). Required by --api-key and --secret; ignored by --token
--api-keystring-ApiKey hex digest
--secretstring-SigV4 HMAC secret — not an alias for --api-key
--tokenstring-Bearer token
--storestringhomeCredential storage location: home, project, keyring
--store-dirstring-Directory for home/keyring metadata instead of $HOME/.vulnetix
--noninteractiveboolfalseRequire an ApiKey from flags or environment; never launch a browser
--methodstring-Deprecated. The credential flag now selects the method

--api-key, --secret, and --token are mutually exclusive. Running vulnetix auth without a subcommand also triggers login.

See Authentication for storage backends, precedence, file permissions, and rotation.

auth status

Show current authentication state, including the credential source, method, masked key, and Package Firewall .netrc status.

vulnetix auth status

auth verify

Verify that stored credentials can authenticate with the Vulnetix API. Does not modify credentials.

# Verify stored credentials
vulnetix auth verify

# Verify with explicit API endpoint
vulnetix auth verify --base-url https://api.vdb.vulnetix.com/v1

auth logout

Remove stored credentials from all file-based stores.

vulnetix auth logout

vulnetix package-firewall

Configure package managers to use the Vulnetix Package Firewall.

vulnetix package-firewall go [flags]

package-firewall go

Configure Go to use https://packages.vulnetix.com with .netrc authentication.

vulnetix package-firewall go
vulnetix package-firewall go --dry-run

This command writes a machine packages.vulnetix.com entry to .netrc, persists GOPROXY and GOAUTH=netrc in your shell configuration, and updates detected project files at the git root (.env, .envrc, Makefile).

Flags:

FlagTypeDefaultDescription
--base-urlstringhttps://api.vdb.vulnetix.comVDB API base URL
--proxy-urlstringhttps://packages.vulnetix.comPackage Firewall Go proxy URL
--dry-runboolfalseShow planned changes without writing files

package-firewall uninstall

Remove the configuration written for one, some, or every ecosystem. Needs no authentication — it operates on local files only. See Uninstall.

vulnetix package-firewall uninstall npm pypi        # named ecosystems
vulnetix package-firewall uninstall --all            # every supported ecosystem
vulnetix package-firewall uninstall --except aur     # all but the named ones
vulnetix package-firewall uninstall --purge          # every ecosystem + the shared netrc credential

Exactly one selector is required: positional ecosystem(s), --all, or --except. The shared ~/.netrc credential is kept unless --remove-credentials or --purge is given.

Flags:

FlagTypeDefaultDescription
--allboolfalseUnconfigure every supported ecosystem
--exceptstringsUnconfigure all supported ecosystems except these
--remove-credentialsboolfalseAlso remove the shared netrc credential (machine packages.vulnetix.com)
--purgeboolfalseRemove the shared netrc credential and every supported ecosystem
--proxy-urlstringhttps://packages.vulnetix.comPackage Firewall proxy URL (host to detect and strip)
--dry-runboolfalseShow planned changes without writing files

vulnetix config

Manage Vulnetix configuration. This manages the Package Firewall per-organization policy and ecosystem mirrors, the org-wide Quality Gate scan-enforcement policy, and the Quality Gate end-of-life severity buckets. The organization is resolved from your authenticated session (vulnetix auth login).

vulnetix config set package-firewall [ecosystem] [url] [flags]
vulnetix config get package-firewall [flags]
vulnetix config set quality-gate [flags]
vulnetix config get quality-gate [flags]
vulnetix config set eol-policy [flags]
vulnetix config get eol-policy [flags]

config set package-firewall

Two forms, distinguished by positional arguments.

Policy form (no positionals) — updates the org-wide policy. Each call is a partial update; only the flags you pass change.

vulnetix config set package-firewall --cvss-threshold 8.0 --block-malware true --cooldown-days 7
FlagTypeValueDescription
--cvss-thresholdfloat010Block when max CVSS ≥ value (0 disables)
--epss-thresholdfloat01Block when EPSS probability ≥ value
--cess-thresholdfloat010Block when Vulnetix CESS ≥ value
--block-malwarebooltrue|falseBlock known-malicious packages
--block-eolbooltrue|falseBlock end-of-life versions
--block-kevbooltrue|falseBlock CISA KEV / VulnCheck KEV CVEs
--block-weaponized-exploitsbooltrue|falseBlock weaponized exploitation
--block-active-exploitsbooltrue|falseBlock active exploitation sightings
--block-poc-exploitsbooltrue|falseBlock public PoC / exploit records
--block-bad-actorsbooltrue|falseBlock CVEs linked to malicious actors
--cooldown-daysint≥ 0Quarantine versions published within the last n days
--version-lagint≥ 0Require n newer versions before a version is allowed

Mirror form (<ecosystem> <url>) — adds, updates, enables, or disables one upstream mirror.

# Add a mirror; priority auto-increments per ecosystem when omitted
vulnetix config set package-firewall npm https://registry.npmjs.org

# Pin a priority, or toggle a mirror by ecosystem + url
vulnetix config set package-firewall npm https://npm.internal.example --priority 0
vulnetix config set package-firewall npm https://registry.npmjs.org --disable
Argument / FlagTypeDescription
<ecosystem>stringEcosystem id (go, npm, pypi, …)
<url>stringAbsolute upstream mirror URL
--priorityintOrder within the ecosystem (auto max+1 if omitted)
--enable / --disableboolToggle isActive on the mirror matched by ecosystem + url

Both forms share --base-url (default https://api.vdb.vulnetix.com) and -o, --output (pretty, json).

config get package-firewall

Print the org-wide policy and every mirror across all ecosystems.

vulnetix config get package-firewall
vulnetix config get package-firewall -o json
FlagTypeDefaultDescription
--base-urlstringhttps://api.vdb.vulnetix.comVDB API base URL
-o, --outputstringprettyOutput format: pretty, json

config set quality-gate

Set the org-wide Quality Gate scan-enforcement policy. When a member runs vulnetix scan (or sca, sast, …) while authenticated, every value you set here overrides the equivalent scan flag — org policy always wins, even over an explicitly-passed flag. Settings you leave unset fall back to the caller’s flag or the builtin default.

Each call is a partial update — only the flags you pass change; everything else keeps its current value. To clear a setting back to “not enforced”, pass null as the flag’s value (e.g. --severity null) — members then fall back to their own scan flag or the builtin default.

vulnetix config set quality-gate --severity high --block-malware true --cooldown 3
FlagValueDescription
--block-eoltrue|false|nullExit 1 when a runtime or package dependency is end-of-life
--block-malwaretrue|false|nullExit 1 when any dependency is a known malicious package
--block-unpinnedtrue|false|nullExit 1 when any direct dependency uses a version range instead of an exact pin
--cooldown≥ 0 | nullExit 1 when any dependency version was published within the last n days (0 disables)
--version-lag≥ 0 | nullExit 1 when any dependency is within the n most recently published versions (0 disables)
--sca-autofix-max-major-bump≥ 0 | nullRefuse autofix targets crossing more than n major versions
--exploitspoc|active|weaponized|nullExit 1 when exploit maturity reaches the threshold
--severitylow|medium|high|critical|nullExit 1 when any vulnerability or SAST finding meets or exceeds this level
--sca-autofix-strategylatest|safest|stable|nullTarget strategy for --sca-autofix

Every flag takes a value (e.g. --block-malware true). Pass null to unset a setting entirely for the org — the value is cleared and members fall back to their own scan flag or the builtin default:

vulnetix config set quality-gate --severity null --cooldown null

Omitting a flag leaves its stored value unchanged. Both this command and config get quality-gate share --base-url (default https://api.vdb.vulnetix.com) and -o, --output (pretty, json).

config get quality-gate

Print the org-wide Quality Gate enforcement policy. Settings the organization never configured render as not set (the caller’s flag or builtin default applies for those).

vulnetix config get quality-gate
vulnetix config get quality-gate -o json
FlagTypeDefaultDescription
--base-urlstringhttps://api.vdb.vulnetix.comVDB API base URL
-o, --outputstringprettyOutput format: pretty, json

config set eol-policy

Set the four end-of-life calendar-quarter severity buckets of the Quality Gate. These map an upcoming or past EOL date to a synthetic finding severity during vulnetix scan (opt-in via the org policy). The buckets are literal calendar quarters (Q1 Jan–Mar, Q2 Apr–Jun, Q3 Jul–Sep, Q4 Oct–Dec); a date is classified by which quarter it lands in. This is not a per-product mapping — it is the four shared time buckets.

Each call is a partial update.

vulnetix config set eol-policy \
  --next-quarter-severity low \
  --this-quarter-severity medium \
  --within-30-days-severity high \
  --retired-severity critical
FlagTypeValueDescription
--next-quarter-severitystringskip|low|medium|high|criticalSeverity for products reaching EOL in the next calendar quarter
--this-quarter-severitystringskip|low|medium|high|criticalSeverity for products reaching EOL in the current calendar quarter
--within-30-days-severitystringskip|low|medium|high|criticalSeverity for products reaching EOL within the next 30 days
--retired-severitystringskip|low|medium|high|criticalSeverity for products already past EOL (retired)

Use skip to suppress findings for a bucket entirely. Both this command and config get eol-policy share --base-url (default https://api.vdb.vulnetix.com) and -o, --output (pretty, json).

config get eol-policy

Print the four EOL calendar-quarter severity buckets.

vulnetix config get eol-policy
vulnetix config get eol-policy -o json
FlagTypeDefaultDescription
--base-urlstringhttps://api.vdb.vulnetix.comVDB API base URL
-o, --outputstringprettyOutput format: pretty, json

vulnetix upload

Upload a security artifact file (SBOM, SARIF, VEX, CSAF) to Vulnetix for processing.

vulnetix upload --file <path> [flags]

The file format is auto-detected from content and extension but can be overridden. Files larger than 10MB are uploaded using chunked transfer. Authentication uses stored credentials or environment variables.

Flags:

FlagTypeDefaultDescription
--filestring-Path to artifact file to upload (required)
--org-idstringstoredOrganization ID (UUID, uses stored credentials if not set)
--base-urlstringhttps://api.vdb.vulnetix.com/v1Base URL for the Vulnetix VDB API
--formatstringautoOverride auto-detected format: cyclonedx, spdx, sarif, openvex, csaf_vex
--jsonboolfalseOutput result as JSON

Examples:

# Upload with stored credentials
vulnetix upload --file sbom.cdx.json

# Upload with explicit org ID
vulnetix upload --file report.sarif --org-id "123e4567-e89b-12d3-a456-426614174000"

# Override format detection
vulnetix upload --file report.json --format sarif

# JSON output for scripting
vulnetix upload --file sbom.cdx.json --json

vulnetix gha

GitHub Actions artifact management. Designed for use within GitHub Actions workflows.

gha upload

Collect and upload all artifacts from the current GitHub Actions workflow run to Vulnetix.

vulnetix gha upload [flags]

This command:

  1. Collects all artifacts from the current workflow run via the GitHub API
  2. Downloads and extracts each artifact
  3. Uploads each file to Vulnetix using the standard upload API
  4. Reports pipeline UUIDs for each uploaded file

Requires: GITHUB_TOKEN, GITHUB_REPOSITORY, GITHUB_RUN_ID environment variables.

Flags:

FlagTypeDefaultDescription
--org-idstringstoredOrganization ID (UUID); uses stored credentials if not set
--base-urlstringhttps://api.vdb.vulnetix.com/v1Base URL for the Vulnetix VDB API
--jsonboolfalseOutput results as JSON

gha status

Check the processing status of uploaded artifacts by transaction ID or artifact UUID.

vulnetix gha status --txnid <ID>
vulnetix gha status --uuid <UUID>

Flags:

FlagTypeDefaultDescription
--txnidstring-Transaction ID to check status
--uuidstring-Artifact UUID to check status
--org-idstringstoredOrganization ID (UUID); uses stored credentials if not set
--base-urlstringhttps://api.vdb.vulnetix.com/v1Base URL for the Vulnetix VDB API
--jsonboolfalseOutput results as JSON

vulnetix license

Analyze package licenses for conflicts, policy compliance, and risk. See the full License Command Reference for details.

vulnetix license [flags]
FlagDefaultDescription
--path.Directory to scan
--depth3Max recursion depth
--exclude-Exclude paths matching glob (repeatable)
--modeinclusiveAnalysis mode: inclusive or individual
--allow-Comma-separated allow list of SPDX IDs
--allow-file-Path to YAML allow list file
-o, --outputprettyOutput format: json (CycloneDX), json-spdx (SPDX 2.3)
--results-onlyfalseOnly show output when there are findings or conflicts
--severity-Exit 1 if any finding meets or exceeds: low, medium, high, critical
--from-memoryfalseReconstruct from .vulnetix/memory.yaml without re-scanning
--dry-runfalseDetect files and parse packages only — no evaluation

License analysis also runs automatically during vulnetix scan (disable with --no-licenses).


vulnetix aibom

Discover AI coding agents/assistants and AI usage, and emit a CycloneDX AI Bill of Materials. See the full AIBOM Command Reference and the AIBOM overview.

vulnetix aibom [path] [flags]
FlagDefaultDescription
--path.Directory to scan (positional [path] overrides)
--depth25Max recursion depth
-o, --outputcyclonedx-jsonOutput format: cyclonedx-json, json, table
--output-file-Write output to a file instead of stdout
--spec-version1.7CycloneDX spec version: 1.6 or 1.7
--catalog-Catalog file to merge over (or replace) the builtin catalog
--no-builtin-catalogfalseUse only --catalog, not the embedded catalog
--no-envfalseSkip the environment-variable detection pass
--include-homefalseAlso probe the home directory for tool config dirs
--no-sourcefalseSkip the source-code SDK / model detection pass

Detection is catalog-driven (42+ tools, AI SDKs, model-name extraction). The environment pass records variable names only — never their values.


vulnetix cbom

Discover cryptographic usage in code and config and emit a CycloneDX Cryptography Bill of Materials (CBOM) with post-quantum posture. See the full CBOM Command Reference and the CBOM overview.

vulnetix cbom [path] [flags]
FlagDefaultDescription
--path.Directory to scan (positional [path] overrides)
--depth25Max recursion depth
-o, --outputprettyOutput format: pretty, json, cyclonedx-json
--output-file-Path to write the CBOM (default .vulnetix/cbom.cdx.json)
--spec-version1.7CycloneDX spec version: 1.6 or 1.7
--catalog-Catalog file to merge over (or replace) the builtin catalog
--no-builtin-catalogfalseUse only --catalog, not the embedded catalog
--no-sourcefalseSkip the source-code crypto API pass
--no-configfalseSkip the config & protocol pass
--no-certsfalseSkip the certificate / key pass
--no-depsfalseSkip the crypto-library pass
--fail-onnoneExit non-zero when crypto of these PQC statuses is found (e.g. quantum-vulnerable, deprecated)

Detection is catalog-driven across source, config, certificates and crypto libraries. Algorithm spellings are case/separator-insensitive (SHA256/Sha256/SHA_256 → one SPDX algorithm); each is classified quantum-safe / quantum-vulnerable / deprecated / hybrid with a per-country approval matrix.


vulnetix scan

Walk the local directory tree, parse package manifests, and query the VDB for vulnerabilities — no files are uploaded. See the full Scan Command Reference for details.

vulnetix scan [flags]
vulnetix scan status <scan-id> [flags]
FlagDefaultDescription
--path.Directory to scan
--depth3Max recursion depth
--exclude-Exclude paths matching glob (repeatable)
--include-ignoredfalseInclude .gitignore-matched files (SAST/secrets/containers/IaC; sca and malscan always scan them)
-o, --output-Output target (repeatable): json-cyclonedx, json-sarif for stdout; .cdx.json, .sarif file paths to write to file
--concurrency5Max concurrent VDB queries
--no-progressfalseSuppress progress indicators
--severity-Exit 1 if any vuln or SAST finding meets or exceeds: low, medium, high, critical
--block-malwarefalseExit 1 when any dependency is a known malicious package
--block-eolfalseExit 1 when a runtime or package dependency is end-of-life
--results-onlyfalseOnly output when findings exist; completely silent when the scan is clean
--evaluate-sast / --no-sast-Enable/disable SAST (general static analysis rules)
--evaluate-sca / --no-sca-Enable/disable SCA (package manifest vulnerability analysis)
--evaluate-licenses / --no-licenses-Enable/disable license analysis
--evaluate-secrets / --no-secrets-Enable/disable secret-detection rules
--enable-containers / --no-containers-Enable/disable container file analysis
--evaluate-iac / --no-iac-Enable/disable IaC file analysis
--no-malscanfalseSkip the in-process malscan malware pass (runs by default)
--disable-default-rulesfalseSkip built-in SAST rules (external --rule repos still loaded)
-R, --rule-External SAST rule repo in org/repo format (repeatable) — see Custom Rule Repositories
--dry-runfalseDetect files and parse packages only — zero API calls
--from-memoryfalseReconstruct from .vulnetix/sbom.cdx.json without API calls

vulnetix sca

Run only Software Composition Analysis — vulnerability analysis on package manifests. All other features (SAST, licenses, secrets, containers, IaC) are disabled. See the SCA Command Reference.

vulnetix sca [flags]

Equivalent to vulnetix scan --evaluate-sca --no-sast --no-secrets --no-containers --no-iac --no-licenses.

When --block-malware (or the org blockMalware policy) is in effect, sca also runs the in-process malscan pass over the installed dependencies and gates on any locally-detected malware.


vulnetix malscan

Scan the project’s locally-installed dependencies for malware in-process — STIX IOC filesystem scan, manifest/install-script pattern detection, IOC extraction, and known-bad artifact hashing — and emit SARIF evidence. Complements --block-malware (a known-malicious-package policy lookup) by inspecting the installed bytes themselves. See the full Malscan Command Reference.

vulnetix malscan [path] [flags]
FlagDefaultDescription
--path.Directory to scan (positional [path] overrides; defaults to the git root)
--include-homefalseAlso scan user-scoped/home caches (~/.npm, ~/go/pkg/mod, ~/.cargo, …)
-o, --outputprettyTerminal output format: pretty, json, sarif
--output-file-SARIF output path (default .vulnetix/malscan.sarif)
--no-ioc-feedsfalseSkip the STIX network fetch; run detect + badhash only (offline)
--no-binary-analysisfalseDo not extract/match IOCs in binary files
--no-uploadfalseDo not submit findings (submitted automatically when authenticated)

Exit code 1 on any malware found. Also runs as a pass inside scan (default on) and sca (when --block-malware/org policy is in effect).


vulnetix sast

Run only Static Application Security Testing. All other features are disabled. See the SAST Command Reference.

vulnetix sast [flags]

Equivalent to vulnetix scan --evaluate-sast --no-sca --no-secrets --no-containers --no-iac --no-licenses.


vulnetix secrets

Run only secret detection — identifies hardcoded credentials, API keys, and tokens. All other features are disabled. See the Secrets Command Reference.

vulnetix secrets [flags]

Equivalent to vulnetix scan --evaluate-secrets --no-sast --no-sca --no-containers --no-iac --no-licenses.


vulnetix containers

Run only container file analysis — checks Dockerfiles and Containerfiles. All other features are disabled. See the Containers Command Reference.

vulnetix containers [flags]

Equivalent to vulnetix scan --enable-containers --no-sast --no-sca --no-secrets --no-iac --no-licenses.


vulnetix iac

Run only Infrastructure as Code analysis — checks Terraform HCL and Nix files. All other features are disabled. See the IaC Command Reference.

vulnetix iac [flags]

Equivalent to vulnetix scan --evaluate-iac --no-sast --no-sca --no-secrets --no-containers --no-licenses.


vulnetix ignore

Manage suppression (“ignore”) rules for scanner findings. Aliased suppress. See the full Ignore / Suppress Command Reference.

vulnetix ignore add [flags]     # create a rule
vulnetix ignore list [flags]    # list active rules
vulnetix ignore remove [flags]  # deactivate a rule
vulnetix ignore sync            # sync rules with the org backend

A rule is anchored by at least one of --rule (rego rule id), --finding (CVE / vuln id), or --file, and can be scoped by --category and typed with --type (false_positive, wont_fix, risk_accepted, mitigated, deferred, rego_rule, nosec). Use --reason to record why and --expires-in to auto-expire it. A finding is suppressed only when every anchor matches. Rules live in .vulnetix/memory.yaml and work offline; authenticated, they sync org-wide. Inline nosec comments in code are also honoured — see the reference.


vulnetix triage

Fetch vulnerability alerts from external providers (e.g. GitHub Dependabot) and enrich them with remediation intelligence from the Vulnetix VDB.

vulnetix triage [flags]
vulnetix triage status [flags]

Supported providers: github (Dependabot alerts via the gh CLI)

Flags:

FlagTypeDefaultDescription
--providerstringgithubVulnerability data provider (github)
--repostringautoRepository in owner/repo format (auto-detected from git context or GITHUB_REPOSITORY)
--allboolfalseInclude dismissed alerts (open only by default)
--concurrencyint5Number of concurrent VDB lookups
--formatstringtuiOutput format: tui, json, text
--include-guidancebooltrueInclude CWE remediation guidance

For each alert the triage command fetches:

  • A context-aware remediation plan (upgrade path, verification steps)
  • Fix data from registry, distribution, and upstream source in parallel

Subcommands:

triage status

Verify that provider CLI tools are installed, authenticated, and functional.

vulnetix triage status [--format text|json]

Flags:

FlagTypeDefaultDescription
--formatstringtextOutput format: text, json

Examples:

# Interactive TUI (default)
vulnetix triage

# Triage a specific repository
vulnetix triage --repo owner/repo

# Include dismissed alerts, output as JSON
vulnetix triage --all --format json

# Check GitHub CLI auth and repo detection
vulnetix triage status

# Check status as JSON
vulnetix triage status --format json

Prerequisites: The github provider requires the gh CLI to be installed and authenticated (gh auth login).


vulnetix vdb

Interact with the Vulnetix Vulnerability Database (VDB) API. See the full VDB Command Reference for all subcommands and detailed usage.

vulnetix vdb <subcommand> [flags]
SubcommandDescription
vuln <vuln-id>Get information about a vulnerability (CVE, GHSA, PYSEC, and 75+ formats)
ecosystemsList available package ecosystems
product <name> [version] [ecosystem]Get product version information
vulns <package>Get vulnerabilities for a package
specGet the OpenAPI specification
exploits <vuln-id>Get exploit intelligence for a vulnerability
exploits searchSearch exploits across all vulnerabilities
exploits sourcesList exploit intelligence sources
exploits typesList exploit type classifications
fixes <vuln-id>Get fix data for a vulnerability
fixes distributionsList supported Linux distributions for fix advisories
versions <package>Get all versions of a package across ecosystems
gcveGet vulnerabilities by date range
gcve issuancesList GCVE issuance identifiers by calendar month
purl <purl-string>Query VDB using a Package URL (PURL)
ids <year> <month>List CVE identifiers published in a calendar month
search <prefix>Search CVE identifiers by prefix
sourcesList all vulnerability data sources
metrics typesList all vulnerability metric/scoring types
statusCheck API health and display CLI/auth metadata
packages search <query>Full-text search across packages
ecosystem package <eco> <pkg>Get package info within an ecosystem
ecosystem group <eco> <grp> <art>Get group/artifact info (Maven-style)
eol product <product>Get end-of-life lifecycle data for a product (runtime, framework)
eol package <eco> <pkg> <ver>Get end-of-life lifecycle data for a specific package version

V2-only subcommands — the v2 API is now the default; -V v1 is the legacy override:

SubcommandDescription
workarounds <vuln-id>Get workaround information
advisories <vuln-id>Get advisory data
cwe guidance <vuln-id>Get CWE-based guidance
kev <vuln-id>Get CISA KEV status
timeline <vuln-id>Get vulnerability timeline
affected <vuln-id>Get affected products/packages
scorecard <vuln-id>Get vulnerability scorecard
remediation plan <vuln-id>Get context-aware remediation plan

Tree-sitter reachability

vulnetix vdb vuln and the remediation flows automatically perform tree-sitter reachability analysis against your project, recording exactly which files (and line ranges) match the vulnerable pattern. Control with --reachability=direct|transitive|both|off (default both). See the Reachability Analysis section for the full feature overview, Languages for the 17 bundled grammars, and Internals for how the CGo cross-compile is structured.


vulnetix version

Print the version number of Vulnetix CLI.

vulnetix version [flags]

Also checks for available updates and prints a notice if a newer version exists.

Flags:

FlagTypeDefaultDescription
--shortboolfalsePrint only the version number (no build info or update check)

Examples:

# Full version info (with update check)
vulnetix version

# Just the version number, e.g. for scripting
vulnetix version --short

vulnetix update

Update the Vulnetix CLI to the latest release from GitHub.

vulnetix update

Checks the GitHub Releases API for the latest version, then downloads and replaces the current binary in-place. Binaries built from source (via go build or make dev) are not updated — use your build toolchain instead.

Behavior:

  • If already up to date: prints Already up to date (vX.Y.Z).
  • If a newer version is available: prints the upgrade path and performs the in-place update
  • If built from source: exits with an error indicating that go build should be used

Examples:

# Check for and apply the latest update
vulnetix update

vulnetix triage

Triage vulnerability alerts from multiple providers (e.g. GitHub Dependabot) with integrated remediation intelligence from the Vulnetix Vulnerability Database.

vulnetix triage [flags]
vulnetix triage status      # Check provider CLI health

The triage command fetches vulnerability alerts from external providers, enriches each alert with VDB data (remediation plans, fix availability across registry/distribution/source), and presents them in an interactive TUI or text/JSON output.

Flags:

FlagTypeDefaultDescription
--providerstringgithubVulnerability data provider
--repostringauto-detectedRepository in owner/repo format
--allboolfalseInclude dismissed alerts (open only by default)
--concurrencyint5Number of concurrent VDB lookups
--formatstringtuiOutput format: tui, json, text
--include-guidancebooltrueInclude CWE remediation guidance
--org-idstringcommunityOrganization ID (uses stored credentials or community fallback)

Examples:

# Interactive TUI with auto-detected repo
vulnetix triage

# Specify a repo and include dismissed alerts
vulnetix triage --repo owner/repo --all

# Non-interactive text output
vulnetix triage --format text

# JSON output for scripting
vulnetix triage --repo owner/repo --format json

# Check provider CLI health
vulnetix triage status

triage status

Verify that provider CLI tools (e.g. gh) are installed, authenticated, and can detect the current repository.

# Text output (default)
vulnetix triage status

# JSON output for scripting
vulnetix triage status --format json

Flags:

FlagTypeDefaultDescription
--formatstringtextOutput format: text, json
--providerstringgithubVulnerability data provider

Output (text):

  GitHub CLI Status
──────────────────────────────────────────

  ✔ gh binary   : /usr/bin/gh
  ✔ authenticated: octocat
     Host         : github.com
     Token source : OAuth Token
     Token scopes : repo, workflow
  ✔ repo detected : owner/repo

vulnetix completion

Generate shell autocompletion scripts.

vulnetix completion [bash|zsh|fish|powershell]

Authentication

Full coverage lives in Authentication. Summary:

Methods

MethodFlagEnvironment--org-id
Bearer token--tokenVULNETIX_API_TOKENNot needed — org resolved server-side
ApiKey--api-keyVULNETIX_API_KEY + VULNETIX_ORG_IDRequired
SigV4--secretVVD_ORG + VVD_SECRETRequired

SigV4 validates via a JWT token exchange with the VDB API, then derives the request credential as HMAC-SHA256(secret, orgID).

Credential Storage

StorePathUse case
keyring (recommended)OS keychain, metadata in ~/.vulnetix/credentials.jsonSecrets never touch disk in plaintext
home (default)~/.vulnetix/credentials.jsonUser-wide credentials, mode 0600
project.vulnetix/credentials.jsonProject-scoped credentials, mode 0600
.netrc~/.netrc or %USERPROFILE%\_netrcPackage Firewall credentials; also a fallback ApiKey source

Override the home directory with --store-dir DIR or VULNETIX_CREDENTIALS_DIR. If no OS keychain backend is found, --store keyring warns and falls back to home.

Credential Precedence

The CLI loads credentials in this order (first complete match wins):

  1. VULNETIX_API_TOKEN (Bearer)
  2. VULNETIX_API_KEY + VULNETIX_ORG_ID (ApiKey)
  3. VVD_ORG + VVD_SECRET (SigV4)
  4. Project dotfile: .vulnetix/credentials.json
  5. Home directory: ~/.vulnetix/credentials.json
  6. .netrc / _netrc machine packages.vulnetix.com
  7. Embedded community credential (VDB read-only, community rate limits)

Flags apply to the auth login command that writes a credential; they are not part of this load chain. Inspect the winner with vulnetix auth status.

Global Flags

These flags are available on the root command and inherited by subcommands:

FlagTypeDefaultDescription
--org-idstringstoredOrganization ID (UUID); uses stored credentials if not set
-v, --verboseboolfalseShow verbose diagnostic output (rate limits, retries, cache status, auth notes)
--silentboolfalseSuppress all log output; print only the final result
--no-progressboolfalseSuppress progress indicators
--no-bannerboolfalseSuppress the startup banner
--no-analyticsboolfalseDisable anonymous usage analytics
--disable-memoryboolfalseDisable .vulnetix/memory.yaml reads and writes
--version--Print the version and exit
--help--Help for any command
Note --verbose is not a log level — the CLI has no --debug flag and reads no DEBUG environment variable. It un-suppresses extra diagnostics on stderr. --silent suppresses info, status and warning output; errors and results are always printed.

vulnetix --version prints the bare version. vulnetix version prints the full report (commit, build date, and the versions of the bundled malscan-engine, vdb-cyclonedx and OPA modules).

Environment Variables

VariableDescriptionUsed By
VULNETIX_API_KEYDirect API key (hex digest)auth, upload, vdb, triage
VULNETIX_ORG_IDOrganization ID for Direct API Key authauth, upload, vdb, triage
VVD_ORGOrganization UUID for SigV4 authvdb, auth
VVD_SECRETSecret key for SigV4 authvdb, auth
GITHUB_TOKENGitHub API token (also used for license resolution fallback)gha upload, license, scan
GH_TOKENAlternative GitHub token variable (checked if GITHUB_TOKEN is not set)license, scan
GITHUB_REPOSITORYGitHub repository (owner/name)gha upload, triage (auto-detect)
GITHUB_RUN_IDGitHub Actions workflow run IDgha upload
GITHUB_API_URLGitHub API base URL (default: https://api.github.com)gha upload
GITHUB_ACTIONSSet to true in GitHub Actionsgha upload

Exit Codes

CodeDescription
0Success
1General error
2Invalid arguments
3Authentication error
4Network error
5File not found

Common Usage Patterns

Basic Usage

# Run authentication healthcheck
vulnetix

Artifact Upload

# Upload an SBOM
vulnetix upload --file sbom.cdx.json

# Upload SARIF from a scanner
semgrep --sarif > results.sarif && vulnetix upload --file results.sarif

# Upload via the upload command with format override
vulnetix upload --file report.json --format sarif --json

CI/CD Integration

# GitHub Actions
vulnetix gha upload --org-id "$VULNETIX_ORG_ID"

# GitLab CI
vulnetix upload --file results.sarif

# Jenkins
vulnetix upload --file results.sarif
VDB Command Reference
Access the Vulnetix Vulnerability Database for vulnerability lookups, package vulnerabilities, and ecosystem data.
Reachability Analysis
Static-analysis reachability for vulnerabilities. Uses tree-sitter S-expression queries derived from CVE data to confirm whether the vulnerable code pattern is present in the installed package, and whether first-party code (or other dependencies) actually reaches it.
VDB Quick Start
Get started with the Vulnetix Vulnerability Database CLI in minutes with step-by-step setup and first queries.
Scan Command Reference
Discover manifest files locally, query the VDB for vulnerabilities, and write a CycloneDX SBOM — no file uploads.
License Command Reference
Analyze package licenses for conflicts, policy compliance, and risk — entirely local with multi-source resolution.
SCA Command Reference
Run only Software Composition Analysis — vulnerability analysis on package manifests with no other scan categories enabled.
Shell Completions
Set up tab completion for Vulnetix CLI commands, flags, and values in your shell.
SAST Command Reference
Run only Static Application Security Testing — evaluates Rego-based rules for code-level security issues with no other scan categories enabled.
SCA Autofix
Apply validated dependency fixes with your package manager, rescan to confirm, and emit VEX for resolved vulnerabilities.
Secrets Command Reference
Run only secret detection — identifies hardcoded credentials, API keys, tokens, and private keys in source code, binaries, and git history.
AIBOM Command Reference
Discover AI coding agents and AI usage, and emit a CycloneDX AI Bill of Materials.
Containers Command Reference
Run only container file analysis — checks Dockerfiles and Containerfiles for security misconfigurations.
CBOM Command Reference
Discover cryptographic usage and emit a CycloneDX Cryptography Bill of Materials with post-quantum posture.
IaC Command Reference
Run only Infrastructure as Code analysis — checks Terraform HCL files for security misconfigurations.
ai-firewall
Command reference for vulnetix ai-firewall — install, status, policy, key, apply, export, baseline, snippet, uninstall.
Analyze Command Reference
Build the org tech-stack graph and report evidence-backed repository metrics.
Malscan Command Reference
Scan your locally-installed dependencies for malware in-process — STIX IOCs, manifest/install-script pattern detection, and known-bad artifact hashing — with SARIF evidence.
Ignore / Suppress Command Reference
Suppress scanner findings you have triaged — from the CLI with vulnetix ignore, inline in code with nosec comments, offline in .vulnetix/memory.yaml, and org-wide once you authenticate.