Table of Contents
- Architecture Overview
- CLI
- Key Flags
- API
- How It Works
- MCP Server Support
- TOTP Support
- Security Sandbox
- Session Artifacts
- Checkpoint and Resume
- Input Types
- Output
- Comparison: Autopilot vs Swarm
- When to Use
- Configuration
- Troubleshooting
Architecture Overview
CLI
Key Flags
| Flag | Default | Description |
|---|---|---|
-t, --target | (required) | Target URL |
--input | — | Raw input (curl, raw HTTP, Burp XML, URL). Reads stdin if piped |
--source | — | Path to application source code |
--files | — | Specific files to include (relative to --source) |
--focus | — | Focus area hint (e.g., “auth bypass”, “API injection”) |
--instruction | — | Custom instruction appended to the agent prompt |
--instruction-file | — | Path to a file containing custom instructions |
--agent | (config) | Agent backend to use (e.g., claude, gemini) |
--agent-acp-cmd | — | Custom ACP command (overrides --agent) |
--timeout | 30m | Maximum session duration |
--max-commands | 100 | Maximum CLI commands the agent can execute |
--dry-run | false | Render prompt without launching the agent |
--show-prompt | false | Print rendered prompt to stderr before executing |
--specialists | all 5 | Vulnerability classes to analyze: injection, xss, auth, ssrf, authz |
--resume | — | Resume from a previous session directory |
MCP Flags
| Flag | Default | Description |
|---|---|---|
--mcp-enabled | false | Enable MCP server passthrough to ACP sessions |
--mcp-server | — | MCP servers to attach (repeatable). Format: name=command,arg1,arg2 or name=http://url |
API
How It Works
Autopilot splits the work across specialized agents in a fixed 5-phase pipeline, trading flexibility for depth and parallelism.Phase 1: Recon (AI, terminal enabled)
A recon specialist discovers the target’s attack surface:- Runs content discovery and spidering via vigolium CLI
- Analyzes source code routes (when
--sourceis provided) - Identifies tech stack, auth flows, and API patterns
- Produces a
ReconDeliverableJSON:
autopilot-recon.md
Phase 2: Vuln Analysis (AI, parallel, no terminal)
Specialist agents analyze the codebase for each vulnerability class in parallel. Each specialist:- Reads source code via
ReadTextFile(no terminal — pure code analysis) - Identifies dangerous sinks specific to their vulnerability class
- Outputs a
VulnQueuewith prioritized items - Optionally generates JavaScript scanner extensions for custom checks
VulnQueue item contains:
autopilot-vuln-injection.md, autopilot-vuln-xss.md, autopilot-vuln-auth.md, autopilot-vuln-ssrf.md, autopilot-vuln-authz.md
Extensions from all specialists are merged and written to <session>/extensions/.
Phase 3: Native Scan (Go, no AI)
The Go scanner runs using the merged module tags and extensions from Phase 2. This is the same scanner engine used byvigolium scan — no LLM involvement.
Phase 4: Exploit Verify (AI, parallel, terminal enabled)
For each vulnerability class that produced aVulnQueue, an exploit verification specialist runs in parallel:
- Receives the
VulnQueueas context - Has terminal access to run vigolium commands
- Attempts to verify each finding with targeted payloads
- Classifies each finding as
exploited,blocked, orfalse_positive - Produces
ExploitationEvidence:
autopilot-exploit-injection.md, autopilot-exploit-xss.md, autopilot-exploit-auth.md, autopilot-exploit-ssrf.md, autopilot-exploit-authz.md
Phase 5: Report (AI, no terminal)
A report agent assembles a structured markdown report from all evidence:- Executive summary of security posture
- Confirmed vulnerabilities with proof of exploitation
- Blocked/mitigated issues
- False positive analysis
- Prioritized remediation recommendations
<session>/report.md.
Prompt template: autopilot-report.md
MCP Server Support
MCP (Model Context Protocol) servers provide additional tools to the agent — most commonly a Playwright browser for DOM-based testing.Enabling MCP
MCP servers are disabled by default. Enable via: CLI flag (per-run):MCP Server Formats
Stdio transport (local command):Per-Backend vs Global MCP Servers
MCP servers can be configured at two levels:| Level | Config Key | Scope |
|---|---|---|
| Global | agent.mcp_servers | Attached to all ACP sessions when mcp_enabled is true |
| Per-backend | agent.backends.<name>.mcp_servers | Attached only to sessions using that backend |
--mcp-server flags take precedence over both.
When to Use MCP / Playwright
| Scenario | Use Playwright | Use Native Scanner |
|---|---|---|
| DOM XSS (innerHTML, document.write) | Yes | — |
| SPA applications (client-side routing) | Yes | — |
| Form-based login with CSRF tokens | Yes | — |
| API endpoints (REST, GraphQL) | — | Yes |
| Server-side vulns (SQLi, SSRF, LFI) | — | Yes |
| Header injection | — | Yes |
| Screenshot evidence collection | Yes | — |
TOTP Support
When targets require two-factor authentication, autopilot agents can generate TOTP codes: CLI utility:vigolium session totp when 2FA is encountered.
Security Sandbox
Autopilot sessions execute commands inside a strict security sandbox enforced by the ACP terminal manager (pkg/agent/acp_terminal.go).
Allowed commands: Only vigolium subcommands.
Blocked:
- Non-vigolium binaries (
curl,wget,python,bash) - Shell metacharacters (
;,|,`,$()) - Destructive subcommands (
db clean,db drop)
- 5-minute execution timeout
- 256 KB output cap
- Each ACP session runs in its own process group
- Terminated via
SIGKILLto the entire group on session cleanup
Session Artifacts
Each autopilot run creates a session directory under~/.vigolium/agent-sessions/agt-<uuid>/:
agent.sessions_dir in vigolium-configs.yaml.
Checkpoint and Resume
Autopilot saves a checkpoint after each phase completes. If a run is interrupted (timeout, crash, Ctrl+C), resume from the last completed phase:autopilot-checkpoint.json) contains:
Input Types
Autopilot accepts the same input types as other agent modes:| Type | Example | Auto-detected |
|---|---|---|
| URL | https://example.com/api/login | Yes |
| Curl | curl -X POST https://example.com/api -d '{"user":"admin"}' | Yes |
| Raw HTTP | POST /api HTTP/1.1\r\nHost: example.com\r\n\r\n | Yes |
| Burp XML | <?xml...><items><item>...</item></items> | Yes |
| Base64 | Base64-encoded raw HTTP request | Yes |
| Stdin | echo "curl ..." | vigolium agent autopilot | Yes |
--target is not provided, the target URL is extracted from the input automatically.
Output
Autopilot produces structured results at each phase:| Phase | Output Type | Persisted |
|---|---|---|
| Recon | ReconDeliverable JSON | In memory |
| Vuln Analysis | VulnQueue JSON per class | Checkpoint |
| Native Scan | Findings in DB | Database |
| Exploit Verify | ExploitationEvidence JSON per class | Checkpoint |
| Report | Markdown report | <session>/report.md |
Comparison: Autopilot vs Swarm
| Aspect | Autopilot | Swarm |
|---|---|---|
| Agent calls | 5+ parallel specialists | 2-4 (plan + triage) |
| AI decides workflow | No (fixed 5-phase pipeline) | Partially (plan only) |
| Terminal access | Phases 1 & 4 only | No |
| Parallelism | Phases 2 & 4 run specialists in parallel | Batch parallelism |
| Exploit verification | Dedicated Phase 4 with evidence JSON | Via triage rescan |
| Evidence format | Structured ExploitationEvidence | Triage verdict |
| Checkpoint/resume | Yes | Yes |
| Source code analysis | Dedicated specialists per vuln class | Consolidated 3-call |
| Native scanner | Phase 3 (bulk scan with extensions) | Phase 4 (bulk scan) |
| Best for | Thorough multi-class assessment | Targeted request analysis |
| AI cost | High (many parallel calls) | Lowest (2-4 calls) |
Decision Guide
When to Use
Use Autopilot when:
- You want depth across multiple vulnerability classes simultaneously
- You need structured exploitation evidence (proven/blocked/false_positive)
- You have source code and want per-vulnerability-class code analysis
- You want checkpoint/resume for long-running assessments
- You need a reproducible pipeline (fixed phases, deterministic native scan)
- You’re using Playwright/MCP for browser-based exploit verification
Use Swarm instead when:
- You have specific HTTP requests to analyze (not exploratory)
- You want the lowest AI cost (2-4 agent calls vs many parallel)
- You want AI-generated scanner extensions (JS quick checks, snippets)
- You need batch processing of many requests
Configuration
Agent Backend (vigolium-configs.yaml)
Prompt Templates
Autopilot uses prompt templates stored in~/.vigolium/prompts/ (user overrides) or embedded in the binary (public/presets/prompts/autopilot/).
| Template | Phase | Output Schema | Terminal |
|---|---|---|---|
autopilot-recon | Phase 1 | recon_deliverable | Yes |
autopilot-vuln-{class} | Phase 2 | vuln_queue | No |
autopilot-exploit-{class} | Phase 4 | exploitation_evidence | Yes |
autopilot-report | Phase 5 | text | No |
{class} is one of: injection, xss, auth, ssrf, authz.
To override a template, create a file with the same id in your templates_dir.
Troubleshooting
Agent returns empty output
The LLM backend may not be processing prompts. Check:- Agent backend is authenticated (
clauderequires login,geminirequires API key) - The ACP bridge is installed (
npx @zed-industries/claude-agent-acp@latest) - Use
--show-promptto verify the prompt renders correctly
Specialist returns empty VulnQueue
The specialist may not have found any sinks for its vulnerability class. This is normal — not every codebase has every vulnerability type. Check:--sourcepoints to the correct directory--filesis not too restrictive- The codebase language is supported by the specialist prompts
Timeout during Phase 4 (Exploit Verify)
Exploit verification can be slow when the agent runs many CLI commands. Options:- Increase
--timeout(default: 30m) - Reduce specialists with
--specialists injection,xss(fewer parallel agents) - Increase
--max-commandsif the agent is hitting the limit
MCP server not connecting
- Verify the command works standalone:
npx -y @anthropic-ai/mcp-server-playwright - Check
--mcp-enabledis set (MCP is off by default) - Use
--show-promptto verify MCP servers appear in the ACP session config - HTTP MCP servers must be running before the agent starts
Resume fails with “no checkpoint found”
- The
--resumepath must point to a session directory containingautopilot-checkpoint.json - Verify the path:
ls ~/.vigolium/agent-sessions/agt-<uuid>/autopilot-checkpoint.json
