Skip to main content
This guide explains how to install and use the vigolium-scanner skill with AI coding agents, Claude Code and OpenAI Codex, to operate the Vigolium CLI for web vulnerability scanning, security testing, and custom extension authoring. Skill repository: github.com/vigolium/skills — or install the copy embedded in your vigolium binary, which always matches your installed version.

Quick Install

vigolium skills install (added in v0.2.1) writes the vigolium-scanner bundle straight from the binary, so it can never drift from the CLI you’re driving. Pick the agent with --agent claude|codex|agents and the location with --scope project (current folder) or --scope global (home dir). Run vigolium skills to list what’s bundled and vigolium skills get vigolium-scanner to print a bundle without installing it. Prefer to pull the latest from the repo instead? Use the external skills installer:
Replace <agent-name> with your agent (e.g., claude-code, codex).

What the Skill Does

The skill teaches the AI agent how to:
  1. Pick the right vigolium command for any security testing task
  2. Construct correct flag combinations with proper syntax
  3. Follow scanning workflows end-to-end (ingest -> scan -> triage -> export)
  4. Write custom JavaScript extensions using the vigolium.* API
  5. Operate AI agent modes (query, autopilot, swarm)
  6. Manage data: browse traffic, filter findings, export reports, clean databases
The skill uses lazy-loaded references: the main SKILL.md stays small, and detailed docs are loaded on demand when the agent needs deep flag information or extension authoring guidance.

Skill Structure


Installation

Option A: vigolium skills install (recommended — embedded, version-matched)
The bundle ships inside the vigolium binary, so vigolium skills install can never install a stale copy — it always matches the CLI version you’re driving. --agent accepts claude, codex, or agents (an agentskills.io-compatible layout); --scope is project (current folder) or global (home dir). Inspect what’s bundled first with vigolium skills (list) and vigolium skills get vigolium-scanner (print). Option B: Install via npx / bunx (pulls the latest from the repo)
or with npx:
Replace <agent-name> with your agent (e.g., claude-code, codex). This fetches the skill from the vigolium/skills repository and registers it automatically. Option C: Clone and copy manually
Then copy the skill folder to your agent’s configuration directory:
Once installed, the skill auto-triggers when you mention keywords like scan, vigolium, agent autopilot, vulnerability scanner, openapi scan, etc. In Claude Code, you can also invoke it explicitly with /vigolium-scanner.

Usage Examples by Category

1. Scanning

Basic scan against a single target:
Multiple targets:
Targets from a file:
Scan with a specific strategy:
Scan a single URL with custom method, headers, and body:
Scan a raw HTTP request from a file:
Scan a raw request from stdin:
Scan with a proxy (e.g., Burp Suite):
High-speed scan with tuned concurrency:
Scan and output results as JSONL:
Scan and generate an HTML report:
Scan to a standalone SQLite file:
--format sqlite (aliases sqlite3, db) requires -S/--stateless + -o; reopen it with vigolium finding -S --db scan.sqlite. Scan to a browsable filesystem tree (no DB needed):
--format fs writes two sibling dirs off the -o base — run-traffic/ and run-findings/ — so you can investigate with plain ls/grep/jq. Each <host>/<id>.req is the raw, replayable request (strip the leading @target line), <id>.resp.headers/<id>.resp.body hold the gzip-decoded response, and <id>.md under -findings/ is the finding cross-linked to its .req. Start from index.json in each dir — jq it to map every id to its url/status/severity. Works with or without -S; honors --omit-response. See Output and Reporting for the full layout. Scan with custom scanning profile:
Scan with strict origin scope:

2. Input Formats

OpenAPI 3.x spec with explicit base URL:
OpenAPI spec using servers from the spec:
OpenAPI with auth header and parameter values:
Swagger 2.0 spec:
Burp Suite XML export:
HAR (HTTP Archive) file:
cURL commands file:
Postman collection:
Nuclei templates:
Piped URLs from stdin:

3. Phase Control

Run only discovery (content enumeration):
Run only spidering (headless browser crawling):
Run only audit (vulnerability scanning):
Run only the Nuclei known-issue scan (critical/high only):
Run a whitebox source-code audit (SAST):
Run only external harvest (Wayback, Common Crawl, OTX):
Skip specific phases:
Run only JavaScript extensions:
Phase aliases reference:

4. Module Filtering

List all available scanner modules:
Filter modules by keyword:
List only active modules with verbose details:
Scan with specific modules only:
Filter modules by tags (OR logic):
Combine module IDs and tags:
Enable/disable modules persistently:
Enable by exact module ID:

5. Server & Ingestion

Start the API server (default port 9002):
Start server on custom port without auth:
Start server with scan-on-receive (auto-scan ingested traffic):
Start server with transparent proxy for recording:
Mirror ingested traffic to files in real time:
Every saved HTTP record and finding is written to ./mirror/traffic/<host>/… and ./mirror/findings/<host>/… as it lands in the DB — the same layout as --format fs, except the indexes are append-only index.jsonl (one object per line — tail/grep it live) and per-host ids resume across restarts. Point your agent at ./mirror to read ingested Burp/proxy traffic as files while it streams in. High-concurrency server:
Ingest an OpenAPI spec locally:
Ingest and auto-scan:
Ingest Burp export:
Remote ingest to a running server:
Ingest without fetching responses:

6. AI Agent Modes

Agent (Template-Based)

Security code review:
Endpoint discovery from source:
Review specific files only:
Append extra instructions to a template:
Use a custom prompt file:
Select a specific olium provider:
Dry-run to preview the rendered prompt:
Save agent output to a file:
List available templates and providers:
Built-in templates include:
  • security-code-review: Comprehensive security review
  • injection-sinks: Find injection sinks
  • auth-bypass: Auth bypass vectors
  • secret-detection: Hardcoded secrets
  • endpoint-discovery: API endpoints from source
  • api-input-gen: Generate test inputs
  • curl-command-gen: Generate cURL commands
  • attack-surface-mapper: Map attack surface
  • nextjs-security-audit: Next.js security review
  • react-xss-audit: React XSS audit
  • cors-csrf-review: CORS/CSRF config audit

Agent Query (Freeform Prompt)

Inline prompt:
Named prompt flag:
Pipe prompt from stdin:
Custom prompt file with a specific provider:
Pick a different model:

Agent Autopilot (Autonomous Scanning)

Basic autonomous scan:
With source code context and focus area:
Custom limits (lighter intensity, shorter wall-clock):
Preview the system prompt (dry run):
Custom system prompt:
Start from project traffic, Burp history, and app docs:
Resume a durable run:
Use a different olium provider:
Autopilot security model:
  • Yolo-mode Bash — autopilot runs the model’s bash calls without an approval prompt. Common scanner, record, replay, finding, OAST, auth-session, and Burp operations are also first-class tools; the model can still shell out for uncovered CLI operations.
  • The engine only hard-rejects catastrophic patterns (rm -rf /, dd to block devices, fork bombs, mkfs against real devices). There is no vigolium-only command allowlist.
  • Per-tool timeout: 5 minutes (ToolTimeout).
  • Intensity-driven defaults: quick=150 / balanced=500 / deep=1500 commands (MaxCommands), browser enabled at every intensity.
  • In legacy/shadow mode, report_finding soft-warns at 50 findings and hard-caps at 200. In enforced mode, propose_candidate routes claims through fresh-context verification before promotion.
  • Run autopilot in a disposable container or VM scoped to in-scope targets — see Security Warning.

Agent Swarm (AI-Guided Multi-Phase Scan)

Basic swarm scan with discovery (all phases):
The swarm runs ten phases in order (most are conditional — see Swarm for full detail):
  1. native-normalize — parse --input/stdin/record-uuid into HTTP records
  2. auth (optional) — browser-driven login, writes auth headers/cookies
  3. source-analysis (if --source) — 4-call wave that emits routes, session-config, and source extensions
  4. code-audit (if --code-audit) — code-level security audit, findings → DB
  5. native-discover (if --discover) — crawl/spider/JS-scan
  6. plan — master agent picks modules and writes an extensions spec
  7. native-extension — compile/validate generated JS extensions (Sobek)
  8. native-scanrunner.RunNativeScan() with the planned modules + extensions
  9. triage (if --triage) — AI verifies findings, may request targeted rescans
  10. native-rescan — targeted rescan loop, bounded by --max-iterations
Swarm with focus area and source code:
Control rescan iterations:
Skip discovery and start from planning (use existing DB data):
Skip triage (just discover -> plan -> scan):
Use a scanning profile:
Preview agent prompts (dry run):
Specific source files for agent context:
Use a different agent backend:

7. Traffic & Results Browsing

Browse all stored HTTP traffic:
Fuzzy search traffic:
Tree view (hierarchical URL structure):
Burp-style colored output:
Filter by host, method, status:
Filter by date range:
Search in request/response body:
Search in headers:
Custom columns:
Watch mode (auto-refresh):
View raw HTTP request/response:
Browse findings:
Filter findings by severity:
Search findings:
Watch findings in real-time:
Render a finding as Markdown (evidence + request/response):
Read a standalone export without a project DB:
-S/--stateless + --db reads a --format jsonl export or a standalone .sqlite directly with project scoping off, writing nothing to your project DB. Replay stored traffic (re-send requests):
Replay and replace stored responses:

8. Data Management

Database statistics:
Detailed stats with host breakdown:
Stats for a specific host:
Live-updating stats:
List database records with filters:
List available tables and columns:
Clean records by hostname:
Clean old records with dry-run preview:
Clean only findings (keep HTTP records):
Clean orphaned findings:
Reset entire database:
Reclaim disk space after deletion:

9. Export & Reports

Full JSONL export:
Export only findings:
Export findings and HTTP records:
HTML report:
Lightweight export (omit raw HTTP request/response bytes):
Export with search filter:
Database-level export as CSV:
Export as Markdown:
Export raw requests only:
Export filtered by host and date:
Export a single record by UUID:
Export module registry:

10. Whitebox / Source-Aware Scanning

Source-aware scanning runs through the agent modes via the --source flag — the native vigolium scan does not take source code. Use agent swarm for an AI-driven source-aware DAST scan, or agent audit for a source-only (SAST) review. Source-aware scan with local source code:
--target is required whenever --source is given. The source-analysis and code-audit phases run automatically when --source is present. Scan with source cloned from Git:
Run a source-code audit (SAST) only:
Deeper multi-phase audit:

11. JavaScript Extensions

Install preset examples:
View the extension API reference:
List loaded extensions:
Quick-test JS code inline:
Evaluate a JS file:
Run a custom extension against a target:
Run extension alongside built-in modules:
Run only extensions (skip built-in modules):
Load multiple extensions:
Load all extensions from a directory:
Ask the agent to write an extension:
The agent will generate a JS file like:
Ask the agent to write an AI-augmented extension:
The agent will generate a JS file using vigolium.agent.generatePayloads() and vigolium.agent.analyzeResponse(). YAML extension (simple pattern matching):

12. Configuration & Projects

View all configuration:
View a specific config section:
Set configuration values:
Set scope mode:
Enable extensions globally:
View scope rules:
View scanning strategies:
Create and manage projects:
Scope CLI operations to a project:
Project-scoped database access:

Natural Language Examples

These are examples of natural language prompts you can give to Claude Code or Codex with the skill installed. The agent will translate them into the correct vigolium commands.

Tips & Best Practices

  1. Start with scan -t: It’s the most common command. Add flags incrementally.
  2. Use strategies: lite for quick checks, balanced for most cases, deep for full coverage, whitebox when you have source code.
  3. Phase isolation: Use --only or vigolium run <phase> to iterate on a single phase without re-running the entire pipeline.
  4. Module tags: Filter modules by technology (spring, nodejs) or vulnerability class (xss, injection) to reduce noise.
  5. Watch mode: Add --watch 5s to traffic, finding, or db stats for real-time monitoring during long scans.
  6. Dry-run agents: Always --dry-run first for agent commands to preview prompts before spending AI tokens.
  7. Swarm over autopilot: Use agent swarm --discover for structured scans (lower cost, reproducible). Use agent autopilot for exploratory, creative scanning.
  8. Extensions for custom logic: Write JS extensions instead of modifying core modules. They run alongside built-in modules with --ext.
  9. Projects for isolation: Use vigolium project create to keep scan data separate across engagements.
  10. Export early: Run vigolium export --format html -o report.html to share results as interactive reports.