vigolium invocations, grouped by command. For the full flag list of any command, run vigolium <command> --help. For the same examples in your terminal, run vigolium --full-example.
Top-Level Commands
--soft-fail flag forces an exit code of 0 even when a command fails (the error is still printed to stderr). It keeps a failing vigolium call from interrupting the wrapping script or CI pipeline:
Mistype a long flag and Vigolium suggests the nearest match instead of a bare “unknown flag” error — e.g.
--module yields unknown flag: --module. Did you mean --modules? (run 'vigolium scan --help' for all flags). Added in v0.3.0.Scanning
Run the full native pipeline against one or more targets.-H/--header, --auth, --auth-file, -t/--target, -T/--target-file, --spec-header, and --cookie — take each value verbatim: commas are literal, not separators. So a target URL with a query like ?ids=1,2,3, or a header/cookie whose value contains a comma, survives intact. To pass several values, repeat the flag (-t https://a -t https://b) rather than comma-joining them.
Speed control — WAF-aware pacing. The per-host rate limiter now proactively pre-throttles a host the first time earlier-phase traffic fingerprints it behind a recognized CDN/WAF edge (CloudFront, Cloudflare, Akamai, Imperva/Incapsula, Sucuri, or Azure Front Door — detected from headers on ordinary 200s), dropping that host’s concurrency to MaxPerHost/4 and ramping back up on healthy responses. This keeps an aggressive active phase from bursting the edge into a rate-based block that would hide findings. A one-time-per-host [waf-pacing-armed] notice prints the drop (e.g. 40→10) to stderr and the session log. --no-waf-pacing disables this proactive pacing; the reactive back-off after a confirmed WAF block still applies. It’s a Speed Control flag, available on scan / scan-url / scan-request / run / ingest.
Discovery — alternate-port sweep. --port-sweep-ports overrides the alternate HTTP(S) ports swept on the CLI target hosts (comma-separated). The sweep runs when --intensity deep is set or --follow-subdomains is on, so a host reachable on 8080/8443 (or any port you list) is discovered and scanned alongside the standard 80/443.
Parallel & isolated scans
Scan many targets at once, or let several parallel scans share one database without write contention.-P, --parallel N— scan up to N targets concurrently as isolated child processes. Requires either-S --split-by-host(per-host outputs) or--db-isolate(merge into one--db). Real in-flight requests ≈N × --concurrency.--db-isolate— scan into a private temporary SQLite DB and merge results into--dbat the end (SQLite only; not combinable with--stateless).--split-by-host— in stateless multi-target mode, write a separatebase-<host>.<ext>output file per target.--resume— resume a prior-S -T --split-by-host -Prun from its<output>.progress.jsonmanifest, scanning only the targets that didn’t finish. Run bare (no other flags) to auto-discover the manifest in the current directory and relaunch the saved run.
Running a Single Phase
vigolium run <phase> is an alias for scan --only <phase>, useful when you want one specific stage of the pipeline.
Input Modes
Feed traffic into a scan from OpenAPI, Burp, curl, HAR, or stdin.vigolium --list-input-mode to see every supported input format with examples. Accepted formats are urls, openapi/swagger, postman, curl, burpraw/raw, burpxml/burp, har, and nuclei.
An unknown -I/--input-mode value is now rejected up front with a clear error (it previously fell through to the Nuclei parser silently, so a typo could yield zero or partial records with no warning).
Ingestion
Push HTTP traffic into the database without running a scan, useful for building a project corpus before scanning, or for sending traffic to a remote server.Server
Start the REST API and ingest proxy.--burp-bridge-url <url> points the server at a running Burp Suite’s loopback live bridge (default listener http://127.0.0.1:9009, exposed by the burp-vigolium extension) and merges Burp’s live Proxy rows into GET /api/http-records — labelled source: burp — for the UI and API. The flag also reads the VIGOLIUM_BURP_BRIDGE_URL env var as a fallback. See Using Vigolium with Burp Suite for bridge setup.
--passive-only (with --scan-on-receive) restricts scanning to passive modules only — no active scan traffic is sent, and secret detection is included. It’s the safest way to analyze forwarded Burp/proxy traffic in place. Combining it with --full-native-scan-on-receive still crawls (discovery + spidering send requests); for zero active traffic, use --scan-on-receive without the full-native flag.
Database & Results
Browse, export, and prune scan data.finding/traffic accept -S/--stateless + --db <file> to read a --format jsonl export or a standalone .sqlite directly, and --markdown to print the matched items as Markdown (under -S, add --compact to window long responses around the match).
Severity filters. --severity (alias --sev on finding) takes an explicit comma-separated set, accepting single-letter shorthands (h,c) and any unambiguous prefix (crit, me, info). It differs from --min-severity, which is a floor — --min-severity high expands to high,critical. When both are given, --severity wins. db ls carries --severity too (findings tables).
Record-kind & module-type filters. --record-kind (on finding and db list) filters by record kind — finding, candidate, or observation (comma-separated; default finding). --module-type (same commands) filters by the producing module type — active, passive, nuclei, agent, source-tools, oast, or extension (comma-separated).
Exclude filters. --exclude-search / --exclude-header / --exclude-body (on finding and traffic) are the inverse of --search / --header / --body: they drop any row where the term appears. --exclude-search is repeatable, and a row is dropped if any term matches (contrast --search, whose repeated terms AND-narrow the kept set).
Live Burp bridge. With a running Burp Suite exposing the loopback bridge (default listener http://127.0.0.1:9009, from the burp-vigolium extension; env fallback VIGOLIUM_BURP_BRIDGE_URL), vigolium traffic --burp-bridge-url <url> merges Burp’s live Proxy history into the traffic view. Add --save-to-vigolium-db to persist those bridge rows into the DB (the current page, or every match with --all), or --save-to-burp to copy DB traffic into Burp’s Target Site map (the two --save-to-* flags are mutually exclusive). See Using Vigolium with Burp Suite for bridge setup.
Cleanup safety. A bare vigolium db clean with no selector is rejected — narrow the delete with a filter (--scan-uuid, --host, --before, --status, --severity, --search, --orphans, --findings-only, --table), use db clean --all --force to empty the data tables, or vigolium db reset --force to delete and recreate the SQLite database file from scratch (it VACUUMs automatically; without --force on a TTY it prompts for interactive confirmation).
Import
Pull external scan data back into a database. The input type is auto-detected from the path.--burp-bridge-url <url> turns import into a one-shot persist of all of a running Burp’s live Proxy history into the database (default listener http://127.0.0.1:9009; env fallback VIGOLIUM_BURP_BRIDGE_URL). It’s an import source, so it cannot be combined with path arguments or --glob-db. See Using Vigolium with Burp Suite.
A SQLite database input (detected by its magic header, any extension) is a lossless, idempotent SQLite→SQLite merge: HTTP records, findings, scans, agentic scans, OAST interactions, and projects are deduped on their natural keys, and each row keeps its original project. Re-importing the same database adds nothing the second time. The destination is the --db target (or the configured default database when --db is omitted). Add -j/--json to print a per-table merge summary (rows inserted vs. skipped). This pairs with scan -S --format sqlite: fan out per-host .sqlite files, then merge them back into one queryable DB.
Replay
Re-send stored traffic — with or without a mutation — to confirm a finding, fuzz a parameter, or push a whole corpus back through a proxy. The banner is suppressed so bulk output stays pipe-clean.--save-to-burp (paired with --burp-bridge-url) adds each replayed request and its fresh response straight into Burp’s Target Site map — without proxying it twice — so a confirmed exploit lands back in Burp for manual follow-up (default listener http://127.0.0.1:9009; env fallback VIGOLIUM_BURP_BRIDGE_URL). See Using Vigolium with Burp Suite.
Bulk replay
Pass--all (or any of --host / --method / --status / --path / --source / --search / --body) to replay every matching stored record through the mutation/diff engine, streaming one JSONL object per record with per-record error isolation.
--alllifts the default-n/--limitcap (100); narrow the set with the filter flags instead. Without-m/--mutate, each record is re-sent verbatim.- Throttle with
-c/--concurrency(default 10); cap the set with-n/--limit(default 100, lifted by--all). -S/--stateless --db <file>reads baselines from a standalone.sqlite/.jsonlexport with project scoping off — it never writes to your project DB.
Strategies & Phases
Inspect scanning strategy presets and the phases that make up a scan.Modules
Manage the active and passive scanner modules.Skills
Install the coding-agent skill bundles shipped inside the binary (so they always match your CLI version) into a coding agent’s skills directory. See Using Vigolium in your agent.Extensions
Run and manage JavaScript extensions that hook into the scanner.Scope
Control what’s in-scope. Source code is attached per scan via the--source flag on vigolium agent <subcommand> (autopilot, swarm, query, audit).
Agent (AI)
Run agentic and source-audit modes. See Agent Mode for the full list of subcommands.agent query: single-shot prompts
agent swarm: AI-guided multi-phase scan
agent swarm accepts the olium override flags --provider, --model, --base-url, --llm-api-key, --oauth-cred, and --oauth-token; each falls back to agent.olium.*. --prompt and the positional [prompt] are the same task-guidance slot and stay verbatim when structured target/source flags are also present.
agent autopilot: autonomous agentic scan
--focus, --instruction, --instruction-file, --browser, or --credentials. Put those details in --prompt. The REST agent endpoints keep structured equivalents for API clients.
agent audit: unified source audit (vigolium-audit + piolium)
Runs the vigolium-audit harness and/or piolium against a single source tree under one AgenticScan, with per-driver session subdirs and a post-pass findings dedup. vigolium-audit is the embedded harness name; the CLI driver value is audit.
agent audit, --intensity deep resolves to the deep,confirm mode chain (the modes run back-to-back), matching the POST /api/agent/run/audit endpoint; quick maps to lite and balanced to balanced (both single-mode).
-S/--stateless runs the whole audit into a throwaway temp DB (your main DB is untouched, mirroring scan -S) and, on completion, renders a self-contained HTML report from the run’s findings to vigolium-result/vigolium-audit-report.html (override with -o/--output, which supports gs:// and {ts}). --output-dir <dir> (stateless-only) additionally bundles that report and a copy of each ran driver’s raw vigolium-results/ tree into one folder — a single driver lands flat at <dir>/vigolium-results/, multiple are namespaced under <dir>/<driver>/. -S is rejected with --interactive. --keep-raw is on by default for the CLI (it retains the <source>/vigolium-results/ copy); --clean-raw removes that source copy after the run.
log: replay an agentic session
Every olium agent run (autopilot, swarm, query, olium) writes a Pi-compatible transcript.jsonl. Replay it as a rendered conversation, or dump the raw JSONL:
Configuration
vigolium config ls (aliases list / view) redacts sensitive values — API keys, tokens, credentials — as [redacted] by default. Pass --show-secrets to reveal them in plaintext; it prints a warning to stderr. The generic -F/--force no longer reveals secrets (it only skips confirmation prompts).
This page covers the most common invocations. Every command supports
--help for the full flag reference, and most commands accept the global flags shown by vigolium --help.