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
Quick Install
<agent-name> with your agent (e.g., claude-code, codex).
What the Skill Does
The skill teaches the AI agent how to:- Pick the right vigolium command for any security testing task
- Construct correct flag combinations with proper syntax
- Follow scanning workflows end-to-end (ingest -> scan -> triage -> export)
- Write custom JavaScript extensions using the
vigolium.*API - Operate AI agent modes (query, autopilot, swarm)
- Manage data: browse traffic, filter findings, export reports, clean databases
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: Install via npx / bunx (recommended)npx:
<agent-name> with your agent (e.g., claude-code, codex). This fetches the skill from the vigolium/skills repository and registers it automatically.
Option B: Clone and copy manually
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:--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:
2. Input Formats
OpenAPI 3.x spec with explicit base URL:3. Phase Control
Run only discovery (content enumeration):| Alias | Resolves To |
|---|---|
deparos, discover | discovery |
spitolas | spidering |
dynamic-assessment | audit |
ext | extension |
4. Module Filtering
List all available scanner modules:5. Server & Ingestion
Start the API server (default port 9002):./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:
6. AI Agent Modes
Agent (Template-Based)
Security code review:security-code-review: Comprehensive security reviewinjection-sinks: Find injection sinksauth-bypass: Auth bypass vectorssecret-detection: Hardcoded secretsendpoint-discovery: API endpoints from sourceapi-input-gen: Generate test inputscurl-command-gen: Generate cURL commandsattack-surface-mapper: Map attack surfacenextjs-security-audit: Next.js security reviewreact-xss-audit: React XSS auditcors-csrf-review: CORS/CSRF config audit
Agent Query (Freeform Prompt)
Inline prompt:Agent Autopilot (Autonomous Scanning)
Basic autonomous scan:- Yolo-mode bash — autopilot runs the model’s
bashcalls without an approval prompt. The model decides when to invokevigolium scan-url,vigolium finding, etc. (they’re shell commands, not first-class tools). - The engine only hard-rejects catastrophic patterns (
rm -rf /,ddto block devices, fork bombs,mkfsagainst real devices). There is novigolium-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. report_findingsoft-warns at 50 findings and hard-caps at 200, nudging the agent towardhalt_scan.- 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):- native-normalize — parse
--input/stdin/record-uuid into HTTP records - auth (optional) — browser-driven login, writes auth headers/cookies
- source-analysis (if
--source) — 4-call wave that emits routes, session-config, and source extensions - code-audit (if
--code-audit) — code-level security audit, findings → DB - native-discover (if
--discover) — crawl/spider/JS-scan - plan — master agent picks modules and writes an extensions spec
- native-extension — compile/validate generated JS extensions (Sobek)
- native-scan —
runner.RunNativeScan()with the planned modules + extensions - triage (if
--triage) — AI verifies findings, may request targeted rescans - native-rescan — targeted rescan loop, bounded by
--max-iterations
7. Traffic & Results Browsing
Browse all stored HTTP traffic:-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):
8. Data Management
Database statistics:9. Export & Reports
Full JSONL export: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:
11. JavaScript Extensions
Install preset examples:vigolium.agent.generatePayloads() and vigolium.agent.analyzeResponse().
YAML extension (simple pattern matching):
12. Configuration & Projects
View all configuration: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.| You Say | Agent Runs |
|---|---|
| ”Scan example.com” | vigolium scan -t https://example.com |
| ”Deep scan with spidering” | vigolium scan -t <url> --strategy deep |
| ”Import my Burp export and scan it” | vigolium scan -I burp -i export.xml |
| ”Scan my OpenAPI spec with auth” | vigolium scan -I openapi -i spec.yaml -t <url> --spec-header "Authorization: Bearer ..." |
| ”Only run XSS modules” | vigolium scan -t <url> --module-tag xss |
| ”Review my code for security issues” | vigolium agent query --prompt-template security-code-review --source ./src |
| ”Autonomous scan focused on injection” | vigolium agent autopilot -t <url> --focus "injection" |
| ”Run the full AI pipeline” | vigolium agent swarm --discover -t <url> |
| ”Show me all critical findings” | vigolium finding --severity critical |
| ”Export results as HTML report” | vigolium export --format html -o report.html |
| ”What traffic is in the database?” | vigolium traffic |
| ”Write me an extension that checks for exposed .env files” | Generates a JS extension file |
| ”Start the server with auto-scan” | vigolium server -t <url> --scan-on-receive |
| ”Whitebox scan with my source code” | vigolium scan -t <url> --source ./src --strategy whitebox |
| ”Clean up old scan data” | vigolium db clean --before <date> --force |
Tips & Best Practices
- Start with
scan -t: It’s the most common command. Add flags incrementally. - Use strategies:
litefor quick checks,balancedfor most cases,deepfor full coverage,whiteboxwhen you have source code. - Phase isolation: Use
--onlyorvigolium run <phase>to iterate on a single phase without re-running the entire pipeline. - Module tags: Filter modules by technology (
spring,nodejs) or vulnerability class (xss,injection) to reduce noise. - Watch mode: Add
--watch 5stotraffic,finding, ordb statsfor real-time monitoring during long scans. - Dry-run agents: Always
--dry-runfirst for agent commands to preview prompts before spending AI tokens. - Swarm over autopilot: Use
agent swarm --discoverfor structured scans (lower cost, reproducible). Useagent autopilotfor exploratory, creative scanning. - Extensions for custom logic: Write JS extensions instead of modifying core modules. They run alongside built-in modules with
--ext. - Projects for isolation: Use
vigolium project createto keep scan data separate across engagements. - Export early: Run
vigolium export --format html -o report.htmlto share results as interactive reports.
