Loading...
Loading...
Use when operating the vigolium CLI for web vulnerability scanning, security testing, traffic ingestion, server management, AI agent-driven scanning and code review, cloud-storage management, or writing custom JavaScript extensions. Invoke for scan commands, scan-url, scan-request, run, ingest, server, agent (query/autopilot/swarm/olium/piolium/audit/session), traffic browsing, database queries, storage uploads/downloads, module management, extension scripting, export, project management, and configuration tuning.
npx skill4agent add vigolium/skills vigolium-scannerscanscan-urlscan-requestrunserveringestagent queryagent autopilotagent swarm--discoveragent oliumvigolium oliumolagent audit--driver=auto|both|audit|pioliumagent archonagent sessionrun extension --ext custom-check.jsjsvigolium.*log <uuid>runtime.logimport <path>vigolium-results/storage ls/upload/download/rm/presign/resultsinit~/.vigolium/config cleanagent.olium.provider--provideropenai-compatibleagent.olium.custom_provider.base_urlmodel_idhttp://localhost:11434/v1gemma4:latestopenai-codex-oauth~/.codex/auth.jsonanthropic-api-key$ANTHROPIC_API_KEY--llm-api-keyanthropic-oauthclaude setup-tokenopenai-api-key$OPENAI_API_KEY--llm-api-keyanthropic-cliclaudeanthropic-vertex--oauth-cred$GOOGLE_APPLICATION_CREDENTIALSclaude-*claude-opus-4-6google-vertexgemini-*gemini-3.1-pro| I need to... | Use |
|---|---|
| Scan one or more target URLs | |
| Scan a single URL with custom method/headers | |
| Scan a raw HTTP request from file/stdin | |
| Run only one scan phase | |
| Run a custom JS extension against a target | |
| Import an OpenAPI/Swagger spec and scan | |
| Import Burp/HAR/cURL traffic | |
| Filter modules by tag | |
| Ingest traffic into database without scanning | |
| Start the API server | |
| Start server and auto-scan new traffic | |
| Run AI code review on source code | |
| Run AI agent with inline prompt | |
| Autonomous AI-driven scanning | |
| Autopilot natural-language prompt | |
| Autopilot with intensity preset | |
| Autopilot scanning a PR diff | |
| Full-scope AI-driven scan (discovery → plan → scan → triage) | |
| Deep targeted vulnerability scan on specific endpoint | |
| Swarm natural-language prompt | |
| Swarm with curl command input | |
| Swarm with source code (route discovery + SAST + code audit) | |
| Swarm with intensity preset | |
| Swarm with background vigolium-audit | |
| Swarm with custom instructions | |
| Source analysis only (no scan) | |
| Foreground vigolium-audit (lite/balanced/deep) | |
| Audit a remote repo | |
| Confirm PoCs for existing findings | |
| Drive the audit yourself interactively | |
| Foreground piolium (Pi-native) audit | |
| Piolium hail-mary file-by-file hunt | |
| Piolium with custom Pi provider/model | |
| Run vigolium-audit, fall back to piolium only if no claude/codex CLI | |
| Run vigolium-audit + piolium back-to-back unconditionally | |
| Run only one driver under unified audit | |
| Audit from a gs:// archive | |
| Interactive olium TUI | |
| One-shot olium prompt to stdout | |
| Olium via anthropic-vertex (Claude on Vertex) | |
| Olium via google-vertex (Gemini-native) | |
| Browse stored HTTP traffic | |
| Browse findings/vulnerabilities | |
| Replay one request with mutations + baseline diff (external-agent confirm step) | |
| Replay a finding's HTTP evidence with a payload | |
| Replay an arbitrary curl/raw/burp/base64/URL input | |
| Persist cookies across replays (multi-step auth) | |
| Filter findings by module type or source | |
| View database statistics | |
| Export results to JSONL/HTML | |
| Clean database records | |
| List available scanner modules | |
| Enable/disable specific modules | |
| Manage JavaScript extensions | |
| Execute arbitrary JS with vigolium API | |
| Execute JS from a file | |
| Execute JS from stdin | |
| View/modify configuration | |
| View scanning strategies | |
| Manage scope rules | |
| Link source code repository | |
| Clone and scan with source code | |
| Manage projects | |
| List cloud-storage objects for current project | |
| Upload a file to project storage | |
| Download an object | |
| Download a scan's result bundle | |
| Generate a presigned GET/PUT URL | |
| Delete cloud-storage objects | |
| List agent sessions | |
| Seed database with sample data | |
| Import findings from file | |
| Import audit output folder or JSONL export | |
| View runtime logs for a scan/agent session | |
| List all native + agentic sessions with log status | |
Initialize | |
Wipe | |
| Validate extension files | |
| Evaluate JS inline | |
| Manage auth (lint, list, load, totp) | |
| Run health check on installation | |
| Topic | Reference | Load When |
|---|---|---|
| Scanning commands | | scan, scan-url, scan-request, run flags and options |
| Server & ingestion | | server, ingest, traffic command flags |
| Agent commands | | agent, agent query, agent autopilot, agent swarm, agent olium, agent audit, agent session — flags, intensities, providers, templates |
| Session / auth config | | --auth-file/--auth flags, YAML format, extract rules, authenticated scanning setup |
| Data & management | | db, module, extensions, js, config, scope, source, strategy, export, project, storage |
| Complete flag index | | Looking up any specific flag by name |
| Writing extensions | | Creating custom JS scanner modules, extension API |
--strategy <name>| Strategy | ExtHarvest | Discovery | Spidering | KnownIssueScan | Audit | Source-Aware |
|---|---|---|---|---|---|---|
| lite | no | no | no | no | yes | no |
| balanced | no | yes | yes | yes | yes | no |
| deep | yes | yes | yes | yes | yes | no |
| whitebox | no | yes | no | yes | yes | yes |
scanning_strategy.default_strategy--strategyvigolium strategy ls--source <path>--source-url <git-url>--only <phase>--skip <phase>| Phase | Aliases | Description |
|---|---|---|
| — | Parse and store input (URLs, specs, files) into the database |
| | Adaptive content discovery (directories, files, hidden endpoints) |
| — | Aggregate URLs from Wayback Machine, Common Crawl, AlienVault OTX |
| | Headless browser crawling for JS-driven routes and dynamic content |
| — | Security posture assessment via Nuclei templates + Kingfisher secrets |
| — | Static analysis on linked source code (requires |
| | Core vulnerability scanning with active and passive modules |
| | Run only JavaScript extension modules (enables extensions, skips built-in modules) |
--only--skip--only deparos--only discovery--only ext--only extensionvigolium run discover -t <url>-I <format>| Format | Flag | Example |
|---|---|---|
| URLs (default) | | |
| OpenAPI 3.x | | |
| Swagger 2.0 | | |
| Burp XML | | |
| cURL commands | | |
| Nuclei templates | | |
| HAR archive | | |
| Postman collection | | |
| stdin | — | |
--spec-url--spec-header--spec-var--spec-default| Format | Flag | Notes |
|---|---|---|
| Console (default) | | Human-readable tables to stderr |
| JSONL | | Machine-readable, one JSON object per line |
| HTML report | | Interactive ag-grid report, requires |
--format jsonl,html -o report.htmlvigolium export --format jsonl -o full-export.jsonlvigolium export --only findings,httpvigolium export --format html -o report.htmlvigolium db export -f csv -o records.csv --host example.comvigolium scan -t https://example.comvigolium scan -t https://example.com --strategy deep# With explicit base URL
vigolium scan -I openapi -i api-spec.yaml -t https://api.example.com
# Using servers from spec
vigolium scan -I openapi -i api-spec.yaml --spec-url
# With auth header
vigolium scan -I openapi -i spec.yaml -t https://api.example.com \
--spec-header "Authorization: Bearer <token>"vigolium scan -I burp -i burp-export.xml -t https://example.com
vigolium scan -I har -i traffic.har# From file
vigolium scan-request -i raw-request.txt
# From stdin
echo -e "GET /api/users HTTP/1.1\r\nHost: example.com\r\n" | vigolium scan-request
# With custom method and body
vigolium scan-url https://api.example.com/login \
--method POST --body '{"user":"admin","pass":"test"}' \
-H "Content-Type: application/json"# Run only JS extension modules against DB records
vigolium scan -t https://example.com --only extension
# With a specific extension script
vigolium scan -t https://example.com --only ext --ext ./my-scanner.js
# With a custom extensions directory
vigolium scan -t https://example.com --only ext --ext-dir ./extensions/
# Run via the run command (recommended for single extensions)
vigolium run extension -t https://example.com --ext ./custom-check.js
# Run via the run command alias
vigolium run ext -t https://example.com --ext ./custom-check.jsvigolium run discover -t https://example.com
# or
vigolium scan -t https://example.com --only discovery# Run only specific modules by ID
vigolium scan -t https://example.com -m xss-reflected,sqli-error
# Filter modules by tag (OR condition — matches any tag)
vigolium scan -t https://example.com --module-tag spring --module-tag injection
# Combine -m and --module-tag (union of both)
vigolium scan -t https://example.com -m sqli-error --module-tag xss
# List available modules first
vigolium module ls
vigolium module ls xss # filter by keyword# Basic server
vigolium server
# Custom host/port with no auth
vigolium server --host 0.0.0.0 --service-port 8443 -A
# With transparent proxy for recording traffic
vigolium server --ingest-proxy-port 8080# Server mode: auto-scan every ingested request
vigolium server -t https://example.com --scan-on-receive
# Local ingest + scan
vigolium ingest -t https://example.com -I openapi -i spec.yaml -S# Security code review (SDK protocol by default — full tool access)
vigolium agent query --prompt-template security-code-review --source ./src
# Endpoint discovery from source
vigolium agent query --prompt-template endpoint-discovery --source ./src
# List available templates / backends (parent command helpers)
vigolium agent --list-templates
vigolium agent --list-agents
# Custom prompt with inline text
vigolium agent query 'review this code for vulnerabilities'
# Pipe a prompt from stdin
echo "check for SSRF in the URL-fetching handler" | vigolium agent query --stdin
# Custom prompt file with a specific backend
vigolium agent query --agent claude --prompt-file custom-prompt.md
# With custom instruction appended to the rendered template
vigolium agent query --prompt-template security-code-review --source ./src \
--instruction "Focus on authentication and session management"
# Dry-run to preview the rendered prompt
vigolium agent query --prompt-template security-code-review --source ./src --dry-run
# Save output to a file
vigolium agent query --prompt-template security-code-review --source ./src \
--output review-results.json--source--audit--pioliumpi--piolium <mode>--audit <mode>--audit=off--intensityCommand Budget--max-commands| Preset | Command Budget | Timeout | Audit Mode | Browser |
|---|---|---|---|---|
| 150 | 1h | | on |
| 500 | 6h | | on |
| 1500 | 12h | | on |
# Basic autonomous scan (balanced by default)
vigolium agent autopilot -t https://example.com
# Natural-language prompt — target, source, focus are auto-extracted
vigolium agent autopilot "scan VAmPI source at ~/src/VAmPI on localhost:3005"
vigolium agent autopilot "test auth bypass on https://app.example.com"
# With source code context (triggers the audit harness automatically)
vigolium agent autopilot -t https://example.com --source ./src
# Specific files + custom instruction
vigolium agent autopilot -t https://example.com --source ./src \
--files "routes/api.js,controllers/auth.js" \
--instruction "Focus on the new payment endpoint"
# Intensity presets
vigolium agent autopilot -t https://example.com --source ./src --intensity quick # CI/PR
vigolium agent autopilot -t https://example.com --intensity deep # full pentest
# Override a specific setting within a preset
vigolium agent autopilot -t https://example.com --intensity deep --max-duration 4h
# Scan only a PR diff or recent commits
vigolium agent autopilot -t https://example.com --source ./src --diff main...feature-branch
vigolium agent autopilot -t https://example.com --source ./src --last-commits 3
# Cap the wall-clock budget (explicit override)
vigolium agent autopilot -t https://example.com --max-duration 15m
# Pipe a curl command (target auto-derived)
echo "curl -X POST https://example.com/api/login -d '{\"user\":\"admin\"}'" | vigolium agent autopilot
# Browser-based auth preflight
vigolium agent autopilot -t https://example.com --browser --credentials "admin/admin123"
vigolium agent autopilot -t https://example.com --browser --auth-required \
--browser-start-url https://example.com/login
# Disable the audit harness when source is provided
vigolium agent autopilot -t https://example.com --source ./src --audit=off
# Choose a specific vigolium-audit mode
vigolium agent autopilot -t https://example.com --source ./src --audit deep
# Force piolium as the audit harness (auto-disables vigolium-audit for this run)
vigolium agent autopilot -t https://example.com --source ./src --piolium balanced
# Run an AI triage pass over findings after the scan
vigolium agent autopilot -t https://example.com --triage
# Skip the prompt-safety classifier on the natural-language prompt (only when refusing a known-good prompt)
vigolium agent autopilot "scan this internal app at https://app.test" --disable-guardrail
# Upload results to cloud storage after completion
vigolium agent autopilot -t https://example.com --source ./src --upload-results
# Preview rendered system prompt without launching the agent
vigolium agent autopilot -t https://example.com --dry-run
# Override the olium provider for a single run
vigolium agent autopilot -t https://example.com --provider anthropic-api-key
# Drive autopilot through anthropic-vertex (Claude on Vertex; requires a claude-* model)
vigolium agent autopilot -t https://example.com \
--provider anthropic-vertex --gcp-project my-gcp --gcp-location us-east5 --model claude-opus-4-6--source--discover--triage--intensity--intensitybalanced--source| Preset | Discover | Triage | Code Audit | Browser | Auth | Swarm Duration | Max Iterations |
|---|---|---|---|---|---|---|---|
| on | off | off | on | off | 2h | 1 |
| on | on | on | on | off | 12h | 3 |
| on | on | on | on | on | 24h | 5 |
# Target a URL for deep analysis
vigolium agent swarm -t https://example.com/api/users
# Natural-language prompt — target, source, focus auto-extracted
vigolium agent swarm "scan source at ~/src/app on localhost:3005"
vigolium agent swarm "scan all source code from ~/src/crAPI, ~/src/DVWA"
# Full-scope scan with discovery
vigolium agent swarm -t https://example.com --discover
# Analyze a curl command
vigolium agent swarm --input "curl -X POST https://example.com/api/login -d '{\"user\":\"admin\"}'"
# Pipe raw HTTP request from stdin (auto-detected)
echo -e "POST /api/search HTTP/1.1\r\nHost: example.com\r\n\r\nq=test" | vigolium agent swarm
# Scan a record from the database
vigolium agent swarm --record-uuid 550e8400-e29b-41d4-a716-446655440000
# Focus on a specific vulnerability type
vigolium agent swarm -t https://example.com/api/users --vuln-type sqli
# Source-aware swarm (route extraction + code audit + SAST + scanning)
vigolium agent swarm -t http://localhost:3000 --source ./src
# Full-scope source-aware scan
vigolium agent swarm -t http://localhost:3000 --source ~/projects/express-app --discover
# Source-aware with specific files
vigolium agent swarm -t http://localhost:8080 --source ./backend \
--files src/routes/api.js,src/models/user.js
# Source analysis only (extract routes, no scan)
vigolium agent swarm -t http://localhost:3000 --source ./src --source-analysis-only
# Intensity presets
vigolium agent swarm -t https://example.com/api/users?id=1 --intensity quick
vigolium agent swarm -t https://example.com --source ./src --intensity deep
# Override a specific setting within a preset
vigolium agent swarm -t https://example.com --intensity deep --triage=false
# Run a background vigolium-audit in parallel (requires --source). Bare --audit = lite.
vigolium agent swarm -t http://localhost:3000 --source ./src --audit
vigolium agent swarm -t http://localhost:3000 --source ./src --audit deep
# Or run piolium as the background audit harness (Pi runtime; requires --source)
vigolium agent swarm -t http://localhost:3000 --source ./src --piolium balanced
# Pull HTTP records from the active project as input
vigolium agent swarm --all-records
vigolium agent swarm --records-from "host=example.com,status=200,method=GET,path=/api,since=2026-04-01"
vigolium agent swarm --record-uuid 550e8400-...,7c9b1a2d-... # repeatable / comma-separated
# Force the extension agent to run even when the planner picks built-in modules
vigolium agent swarm -t https://example.com/api --with-extensions
# Tune master-agent batching and probing
vigolium agent swarm --all-records --master-batch-size 10 --batch-concurrency 4 \
--probe-concurrency 20 --probe-timeout 15s --max-plan-records 25
# Scan only changed code
vigolium agent swarm -t https://example.com --source ./src --diff main...feature-branch
vigolium agent swarm -t https://example.com --source ./src --last-commits 3
# Skip SAST tools during source analysis
vigolium agent swarm -t http://localhost:3000 --source ./src --skip-sast
# Disable code audit (still runs source analysis + SAST)
vigolium agent swarm -t http://localhost:3000 --source ./src --code-audit=false
# Enable triage and rescan loop
vigolium agent swarm -t https://example.com/api/users --triage --max-iterations 5
# Browser automation + auth capture
vigolium agent swarm -t https://example.com --browser --browser-auth \
--credentials "username=admin,password=secret"
# Upload results to cloud storage
vigolium agent swarm -t https://example.com --source ./src --upload-results
# Custom instructions to guide the agent
vigolium agent swarm -t https://example.com/api/users --instruction "Focus on GraphQL parsing"
# Instructions from a file
vigolium agent swarm -t https://example.com/api/users --instruction-file hints.txt
# Resume from a specific phase
vigolium agent swarm -t https://example.com --start-from plan
# Specify modules explicitly
vigolium agent swarm -t https://example.com/api/search -m xss-reflected,xss-stored
# Control scanning phases
vigolium agent swarm -t https://example.com --only dynamic-assessment
vigolium agent swarm -t https://example.com --skip discovery,spidering
# Custom overall duration
vigolium agent swarm -t https://example.com --max-duration 24h
# Preview master agent prompt (no execution)
vigolium agent swarm -t https://example.com/api/users --dry-run
# Show rendered prompts during execution
vigolium agent swarm -t https://example.com/api/users --show-promptagent archonvigolium agent audit --driver=audit--driver=auditautoboth# Deep audit of a local repo
vigolium agent audit --driver=audit --mode deep --source .
# Fast lite audit of a remote repo (clones automatically)
vigolium agent audit --driver=audit --mode lite --source https://github.com/org/repo
# Balanced audit
vigolium agent audit --driver=audit --mode balanced --source ~/code/myapp
# Second pass on a prior audit tree (revisit with new context)
vigolium agent audit --driver=audit --mode revisit --source ./prior-audit-tree
# PoC construction for previously confirmed findings
vigolium agent audit --driver=audit --mode confirm --source ./audit-with-findings
# Chain modes back-to-back (audit runs them natively as one row)
vigolium agent audit --driver=audit --modes deep,refresh,confirm --source .
# Read-only progress check (no agent launched)
vigolium agent audit --driver=audit --mode status --source ./in-progress-audit
# Pick the coding agent (claude or codex) — provider implies one, --agent overrides
vigolium agent audit --driver=audit --agent codex --source .
# Drive the audit yourself interactively, then import the on-disk results
vigolium agent audit -i --source ./src
vigolium import ./src/vigolium-results --format html -o audit-report.html
# List the audit mode graph (phases, time estimates) and exit
vigolium agent audit --list-modes--modelitebalanceddeeprevisitconfirmmergereinvestrefreshmockdiffstatusclaudecodex--provider--agent--no-preflight--preflight-timeout--show-thinking--keep-raw<source>/vigolium-results/pi --mode json -p /piolium-<mode>pipioliumpi install git:git@github.com:vigolium/piolium.git# Balanced 9-phase audit of a local repo
vigolium agent audit --driver=piolium --mode balanced --source .
# Quick lite audit of a remote git URL (auto-clones)
vigolium agent audit --driver=piolium --mode lite --source https://github.com/org/repo
# Hail-mary file-by-file vulnerability hunt over Python+Go files only
vigolium agent audit --driver=piolium --mode longshot --source ./src \
--plm-longshot-langs python,go --plm-longshot-limit 200
# Use a specific Pi provider/model for this run (overrides ~/.pi defaults)
vigolium agent audit --driver=piolium --pi-provider vertex-anthropic --pi-model claude-opus-4-6 --source .
# Full clone history (commit archaeology) via intensity preset
vigolium agent audit --driver=piolium --intensity deep --source https://github.com/org/repo
# Cap commit-history scan to last 60 days
vigolium agent audit --driver=piolium --mode balanced --source . --plm-scan-since "60 days ago"
# Resume / re-audit an existing tree (anti-anchored second pass)
vigolium agent audit --driver=piolium --mode revisit --source ./prior-piolium-tree
# Read-only progress check on an in-progress run
vigolium agent audit --driver=piolium --mode status --source ./in-progress-piolium
# Skip the pre-audit pi roundtrip check (auth + model availability)
vigolium agent audit --driver=piolium --mode balanced --source . --no-preflight--modelitebalanceddeeprevisitconfirmmergedifflongshotstatussmokequickbalanceddeep--plm-*--plm-scan-limit--plm-scan-since--plm-phase-retries--plm-command-retries--plm-longshot-limit--plm-longshot-timeout--plm-longshot-langsaudit--driver=auto--driver=both{session}/audit/{session}/piolium/# Default: run vigolium-audit, fall back to piolium only if claude/codex CLI is missing
vigolium agent audit --source .
# Run both drivers back-to-back, unconditionally
vigolium agent audit --driver=both --source .
# Force a single driver
vigolium agent audit --driver=audit --source .
vigolium agent audit --driver=piolium --source ./src
# Driver-specific modes are only allowed when --driver is forced to that driver
vigolium agent audit --driver=piolium --source . --mode longshot
vigolium agent audit --driver=audit --source . --mode mock
# Audit from a gs:// archive (downloaded + extracted once, shared by both drivers)
vigolium agent audit --source gs://my-project/snapshots/app.tar.gz
# Skip the post-pass project-wide findings dedup
vigolium agent audit --source . --no-dedup
# Pin the audit leg's agent + provider (anthropic-* → claude, openai-* → codex)
vigolium agent audit --source . --provider anthropic-oauth
vigolium agent audit --source . --agent codex
# BYOK auth for the run (literal, $ENV_NAME, or @path)
vigolium agent audit --source . --oauth-token "$(cat ~/.config/claude-token)"
# Override piolium's Pi defaults
vigolium agent audit --driver=piolium --source . --pi-provider google-vertex --pi-model gemini-3.1-pro
# Pass piolium-only knobs through (ignored on the audit leg)
vigolium agent audit --driver=piolium --source . --plm-scan-since "30 days ago" --plm-longshot-langs python--driver=autoboth--modelitebalanceddeeprevisitconfirmmergelongshotsmokediffstatusreinvestrefreshmockdiffstatus--driver=piolium--driver=audit--intensity deepdeep,confirm--modes a,b,c--driver=both# Browse HTTP traffic
vigolium traffic
vigolium traffic login # fuzzy search
vigolium traffic --tree # hierarchical view
vigolium traffic --burp # Burp-style colored output
vigolium traffic --host api.example.com --method POST
# JSONL output for agent / CI consumption (one JSON object per line)
vigolium traffic -j --host api.example.com
vigolium finding -j --severity high,critical
vigolium db ls -j --table findings
vigolium db stats -j
# Browse findings
vigolium finding
vigolium finding --severity high,critical
vigolium finding --module-type active
vigolium finding --finding-source audit
vigolium finding --burp # Burp-style format
vigolium finding --id 42 # specific finding by ID
vigolium finding --columns ID,SEVERITY,MODULE,MATCHED_AT,TAGS
vigolium db ls --table findings --severity critical
# Database stats
vigolium db stats
vigolium db stats --detailed # includes top hosts breakdown
# Watch mode (auto-refresh)
vigolium traffic --watch 5s
vigolium db stats --watch 10vigolium traffic -j --host api.example.com --method POST --status 200,500
vigolium finding -j --severity high,critical --finding-source auditjqvigolium replay --record-uuid <uuid> -m 'name=id,payload=1 OR 1=1' \
--session-id login # persist cookies between callsvigolium replayreplay_request--record-uuid--finding-id--input-result.baselineresult.replayresult.diff--prettyvigolium replay --session-id login -i curl-login.sh # sets cookies
vigolium replay --session-id login --record-uuid <action> # uses cookies~/.vigolium/replay-jars/<session-id>.json--no-cookies--finding-idvigolium replay --finding-id 42 -m 'name=q,payload=<svg/onload=alert(1)>'--targetvigolium replay --record-uuid <prod-uuid> --target https://staging.example.com--in-replacevigolium replay --record-uuid <uuid> -m '...' --in-replaceHTTP_PROXYHTTPS_PROXY--proxy--project-uuid--project-name--mutate 'name=id,payload=1 OR 1=1'--mutate 'id:URL_PARAM:1 OR 1=1'# Full JSONL export
vigolium export --format jsonl -o full-export.jsonl
# Export only findings
vigolium export --only findings -o findings.jsonl
# HTML report
vigolium export --format html -o report.html
vigolium scan -t https://example.com --format html -o report.html
# Multiple output formats at once
vigolium scan -t https://example.com --format jsonl,html -o report.html
# Database-level export
vigolium db export -f csv -o records.csv
vigolium db export -f markdown -o report.md
vigolium db export --host example.com --from 2024-01-01# Link source code and scan
vigolium scan -t https://example.com --source ./src --strategy whitebox
# Clone from git URL and scan
vigolium scan -t https://example.com --source-url https://github.com/org/repo --strategy whitebox
# Or link first, then scan
vigolium source add --hostname example.com --path ./src
vigolium scan -t https://example.com --strategy whitebox
# SAST-only phase
vigolium run sast --sast-adhoc /path/to/app
vigolium run sast --sast-adhoc /path/to/app --rule gin
# SAST from git URL (clones automatically)
vigolium run sast --sast-adhoc https://github.com/org/repo# View all config
vigolium config ls
# View specific section
vigolium config ls scope
vigolium config ls scanning_pace
# Set values
vigolium config set scanning_strategy.default_strategy deep
vigolium config set scope.origin.mode strict
vigolium config set audit.extensions.enabled true
# Speed tuning
vigolium scan -t https://example.com -c 100 -r 200 --max-per-host 5
# Scope tuning
vigolium scan -t https://example.com --scope-origin strict
# Scanning profile
vigolium scan -t https://example.com --scanning-profile aggressivevigolium storage/api/storage/*storage.enabled: truedriverbucketaccess_keysecret_keyvigolium-configs.yamlVIGOLIUM_STORAGE_ENABLED=true# List all objects under the active project
vigolium storage ls
vigolium storage ls --prefix ugc/ # scope to a sub-path
vigolium storage ls --tree # render as a directory tree
vigolium storage ls --json # machine-readable
# Upload a single file
vigolium storage upload ./report.pdf # → ugc/report.pdf
vigolium storage upload ./report.pdf --key reports/q4.pdf # explicit key
vigolium storage upload ./report.pdf --content-type application/pdf
# Download an object (streams to stdout by default)
vigolium storage download ugc/report.pdf -o report.pdf
# Download a scan's result bundle (tries native-scans/ then agentic-scans/)
vigolium storage results 550e8400-e29b-41d4-a716-446655440000
# Generate a presigned GET or PUT URL for direct upload/download
vigolium storage presign --key ugc/foo.tar.gz --method GET --expiry 1h
vigolium storage presign --key ugc/foo.tar.gz --method PUT --expiry 30m --json
# Delete one or more objects (prompts unless -F)
vigolium storage rm ugc/foo.tar.gz
vigolium storage rm ugc/a.pdf ugc/b.pdf -F--source gs://<project>/<key>.zip / .tar.gz / .tar.bz2 / .tar.xz--upload-resultsscanagent autopilotagent swarmagent auditagent query# Create a project
vigolium project create my-project
# List projects
vigolium project list
# Use a project (sets default for subsequent commands)
vigolium project use my-project
# Scope CLI operations to a project
vigolium scan -t https://example.com --project-name my-project
# Project-scoped database access
VIGOLIUM_PROJECT=my-project vigolium db stats# Install preset examples
vigolium ext preset
# View API reference
vigolium ext docs
vigolium ext docs --example
# Quick-test JS code inline
vigolium ext eval 'vigolium.log.info("hello")'
vigolium ext eval --ext-file script.js
# Run a custom extension against a target
vigolium run extension -t https://example.com --ext custom-check.js
# Run during a full scan (extensions run alongside built-in modules)
vigolium scan -t https://example.com --ext custom-check.js
# Run only extensions, skip built-in modules
vigolium scan -t https://example.com --only extension --ext custom-check.js# Execute inline JS with full vigolium.* API access
vigolium js --code 'vigolium.http.get("https://example.com/api/health")'
# Execute JS from a file
vigolium js --code-file scanner-script.js
# TypeScript auto-transpilation
vigolium js --code-file scanner.ts
# From stdin (ideal for agent/pipe workflows)
echo 'vigolium.utils.md5("password123")' | vigolium js
# With target context (accessible as TARGET variable)
vigolium js --target https://example.com --code 'vigolium.http.get(TARGET + "/api/users")'
# Custom timeout and text output format
vigolium js --timeout 60s --format text --code 'vigolium.utils.sha256("hello")'
# Complex scripting: ingest, query, and annotate
vigolium js --code-file <<'EOF' > /dev/null
var records = vigolium.db.records.query({ hostname: "example.com", limit: 10 });
for (var i = 0; i < records.length; i++) {
var parsed = vigolium.parse.url(records[i].url);
if (vigolium.utils.hasDynamicSegment(parsed.path)) {
vigolium.db.records.annotate(records[i].uuid, { risk_score: 50 });
vigolium.log.info("Flagged: " + records[i].url);
}
}
EOF# List all native + agentic sessions with log status
vigolium log ls
vigolium log # same as `log ls` when no UUID is given
# View a session's runtime.log (auto-follows if the session is still running)
vigolium log <scan-or-agent-uuid>
# Tail last N lines
vigolium log <uuid> --tail 500
# Show the full log
vigolium log <uuid> --full
# Follow live output (tail -f)
vigolium log <uuid> -f
# Strip ANSI color codes (useful when piping to a file)
vigolium log <uuid> --strip-ansi > run.txt
# Interactive TUI picker
vigolium log --tui~/.vigolium/agent-sessions/<uuid>/runtime.log~/.vigolium/native-sessions/<uuid>/runtime.logscan_logsscanning_strategy.scan_logs.persist_logsrun.log# Import an audit output folder (contains audit-state.json + findings-draft/)
vigolium import /path/to/vigolium-results/
# Import a JSONL export (supports http_record and finding envelopes)
vigolium import scan-results.jsonl
vigolium import /tmp/demo/juice-shop.jsonlvigolium agent audit{"type": "http_record", "data": {...}}{"type": "finding", "data": {...}}vigolium export --format jsonl# Create ~/.vigolium with defaults (config, DB schema, profiles, prompts, extensions, SAST rules)
vigolium init
# Regenerate the API key and re-extract all preset data
vigolium init --force
# Wipe ~/.vigolium entirely and reinitialize (prompts for confirmation; use -F/--force to skip)
vigolium config clean
# Diagnose installation health (binaries, paths, permissions)
vigolium doctor| Flag | Short | Default | Description |
|---|---|---|---|
| | — | Target URL (repeatable) |
| | — | File containing target URLs |
| | | Input file path |
| | | Input format (openapi, burp, curl, har, etc.) |
| — | | Timeout for reading input from stdin or file |
| | | Concurrent scan workers |
| | | Max requests per second |
| — | | Max concurrent requests per host |
| — | | Skip host after this many consecutive errors |
| — | | Stop reporting after N findings per module (0 = unlimited) |
| — | | HTTP request timeout |
| — | — | Maximum total scan duration (e.g. 1h, 30m) |
| — | — | HTTP/SOCKS5 proxy URL |
| | | Scanner modules to enable (fuzzy match on ID/name) |
| — | — | Filter modules by tag (OR condition, repeatable) |
| — | — | Scanning strategy preset (lite, balanced, deep, whitebox) |
| — | — | Scanning profile name or YAML file path |
| — | — | Scan intensity preset: |
| — | | Pre-scan heuristics level: |
| — | | Disable pre-scan heuristics (same as |
| — | — | Run only a single phase |
| — | — | Skip specific phases |
| — | | Output format: console, jsonl, html (comma-separated for multiple) |
| | | Continuously scan new HTTP records as they arrive in the database |
| — | | Run the full native scan pipeline (discovery + spidering + dynamic-assessment) continuously on received records |
| — | — | Path to application source code |
| — | — | Git URL to clone for source-aware scanning |
| — | — | Label for grouping scan session results |
| — | — | Origin scope: all, relaxed, balanced, strict |
| — | — | Project UUID to scope all operations to |
| — | — | Project name to scope all operations to |
| | | Verbose logging |
| — | | Suppress all output except findings |
| | | Format output as JSONL (one JSON object per line) |
| — | | CI-friendly output: JSONL findings only, no color, no banners |
| — | | Dump raw HTTP traffic |
| — | | Print every HTTP request/response pair to stderr (Burp-style) |
| — | — | Write all log output to this file (JSON format) |
| — | | SQLite database path |
| — | | Config file path |
| — | | Use a temporary database, export results to |
| — | | Disable de-duplication of identical concurrent HTTP requests |
| | | Skip confirmation prompts |
| | | List all scanner modules |
| — | | List all supported input modes with examples |
| — | — | Re-run on interval (e.g. 10s, 1m, 5m) |
| — | | Max column width for tables |
| — | — | Load JavaScript extension script (repeatable) |
| — | — | Override extension scripts directory |
| — | | Show full example commands organized by section |
scanscan-urlscan-requestrun| Flag | Short | Default | Description |
|---|---|---|---|
| | — | Write findings / reports to this file path |
| — | | Show live progress stats during scanning |
| — | | Include full HTTP response body in output |
| — | | Omit raw HTTP request/response bytes from the output file (keeps metadata, smaller files) |
| — | | Number of retry attempts for failed requests |
| — | | Process targets as a stream without buffering or deduplication |
| | — | Add custom HTTP header (repeatable, e.g. |
| | — | Module-specific options as key=value (e.g. |
| — | | Parse only required fields from input format (ignore optional) |
| — | | Skip validation of input file format |
| — | | Upload scan results to cloud storage after completion (requires storage config) |
| — | | Use a temporary database, export to |
| — | — | Path to auth file (YAML/JSON: single session or |
| — | — | Inline session in |
| — | — | Fixed out-of-band callback URL |
| — | | Enable content discovery phase before scanning |
| — | | Max time for content discovery per target |
| — | — | Custom fuzz wordlist path (enables fuzzing during discovery) |
| — | | Disable per-prefix circuit breaker that stops trap-directory recursion |
| — | | Enable browser-based spidering phase before scanning |
| — | | Max time for spidering per target |
| | | Browser engine: |
| | | Number of parallel browser instances for spidering |
| — | | Run browser in headless mode |
| — | | Disable Chrome DevTools Protocol event listener detection |
| — | | Disable automatic form detection and filling |
| — | | Enable external intelligence gathering (Wayback, CT logs, etc.) |
| — | — | Nuclei template tags to include (repeatable) |
| — | — | Filter Nuclei templates by severity (repeatable) |
| — | — | Nuclei template tags to exclude (repeatable) |
| — | — | Custom Nuclei templates directory |
| — | — | Local path or git URL for ad-hoc SAST scan (auto-detected) |
| — | — | Filter SAST rules by fuzzy name match |
--only--skip--format html-o/--output--format-o/--output--format htmldiscoveryspidering--only--target/-t--spec-url--source--source-url--stateless-o/--output--stateless--db--ci-output-format--json --silent--skip-heuristics--heuristics-check=none-A--no-authVIGOLIUM_API_KEYagent.olium.*vigolium-configs.yamlopenai-compatiblehttp://localhost:11434/v1gemma4:latestcustom_provideropenai-codex-oauth~/.codex/auth.jsonanthropic-cliclaudeanthropic-vertexclaude-*google-vertexgemini-*--oauth-cred$GOOGLE_APPLICATION_CREDENTIALS--provider--model--oauth-cred--oauth-token--llm-api-key--gcp-project--gcp-locationagent.olium.*agent queryagent autopilotagent swarmagent oliumvigolium oliumol--scan-on-receive/-Sdb clean --all--forcedb clean --force--source <path>--source-url <git-url>deparosdiscoverdiscoveryspitolasspideringextextensiondynamic-assessmentaudit--module-tag-m--module-tagagent swarm --discover--source-analysis-only--source--browser-auth--browser--audit--source--target--source--sourcepi--piolium <mode>--audit <mode>--audit=off--max-duration6h--max-commands--token-budget--intensity--triage--disable-guardrail--driverautobothauditpioliumautobothautoboth--modelitebalanceddeeprevisitconfirmmergereinvestrefreshmockdiffstatuslongshotsmokediffstatus--driver=audit|piolium--intensity deepdeep,confirm--modes a,b,c--provider--agent {claude|codex}--api-key--oauth-token--oauth-cred-file-i/--interactive--driver=audit\|pioliumboth--no-dedup--modelitebalanceddeeprevisitconfirmmergedifflongshotstatussmokepi--no-preflightpi--intensity quick|balanced|deepscanagent autopilotagent swarmagent auditvigolium storage *storage.enabled: trueVIGOLIUM_STORAGE_ENABLED=true--project-id--project-nameVIGOLIUM_PROJECT--source--commit-depth.zip / .tar.gz / .tar.bz2 / .tar.xzgs://<project>/<key>agent auditvigolium init--forcevigolium config clean-F/--force~/.vigolium/