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 login (prompts for method, org ID, key, storage)
vulnetix auth login

# Non-interactive login with Direct API Key
vulnetix auth login --org-id <UUID> --api-key <KEY> --store home

# Non-interactive login with SigV4
vulnetix auth login --org-id <UUID> --secret <KEY> --store project

Flags:

FlagTypeDefaultDescription
--methodstringautoAuthentication method: apikey or sigv4 (auto-detected from flags if omitted)
--org-idstring-Organization ID (UUID)
--api-keystring-Direct API key (hex)
--secretstring-SigV4 secret key
--storestringhomeCredential storage location: home, project, keyring

Running vulnetix auth without a subcommand also triggers login.

auth status

Show current authentication state, including the credential source, method, and masked key.

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://app.vulnetix.com/api

auth logout

Remove stored credentials from all file-based stores.

vulnetix auth logout

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://app.vulnetix.com/apiBase URL for Vulnetix 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://app.vulnetix.com/apiBase URL for Vulnetix 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://app.vulnetix.com/apiBase URL for Vulnetix 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 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)
-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
--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.


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 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

Vulnetix CLI supports two authentication methods:

Direct API Key

Uses VULNETIX_API_KEY and VULNETIX_ORG_ID environment variables, or stored credentials with --method apikey.

SigV4

Uses VVD_ORG and VVD_SECRET environment variables, or stored credentials with --method sigv4. SigV4 authenticates via a JWT token exchange with the VDB API.

Credential Storage

Credentials are stored as JSON in one of two locations:

StorePathUse Case
home (default)~/.vulnetix/credentials.jsonUser-wide credentials
project.vulnetix/credentials.jsonProject-specific credentials
keyringSystem keyringSecure OS-level secret storage (not yet implemented)

Credential Precedence

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

  1. CLI flags: --org-id + --api-key or --secret
  2. Environment variables: VULNETIX_API_KEY + VULNETIX_ORG_ID (Direct API Key)
  3. Environment variables: VVD_ORG + VVD_SECRET (SigV4)
  4. Project dotfile: .vulnetix/credentials.json
  5. Home directory: ~/.vulnetix/credentials.json

Global Flags

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

FlagTypeRequiredDefaultDescription
--org-idstringNostoredOrganization ID (UUID); uses stored credentials if not set
--help-No-Help for any command

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.
Secrets Command Reference
Run only secret detection — identifies hardcoded credentials, API keys, tokens, and private keys in source code.
Containers Command Reference
Run only container file analysis — checks Dockerfiles and Containerfiles for security misconfigurations.
IaC Command Reference
Run only Infrastructure as Code analysis — checks Terraform HCL and Nix files for security misconfigurations.