Docs
These docs are the fastest path into this codebase for new contributors. The root README.md is the product and usage guide; this folder is the engineering guide.
Start Here
- Getting Started: setup, common commands, and local development loop.
- Architecture: system shape, entry points, persistence, and major flows.
- Runtime Flows: how recon, task execution, exploitation, swarm, and MCP flows move through the code.
- Module Guide: responsibilities of the top-level modules,
tools/, and tests. - Extension Guide: exact edit points for adding tools, integrations, config, persistent data, and tests.
- Safety Model: scope checks, risk checks, permission modes, audit records, and secure development rules.
- Testing Guide: test layout, focused test commands, and what to update with each kind of change.
- Plugin Development: how to write, package, enable, and distribute out-of-tree plugins.
- Runtime Skills: advisory skill pipeline, selection, re-selection, feedback, and semantic matching.
- Building & Improving Skills: how to author new
SKILL.mdfiles and tune selection/feedback for existing ones. - WebUI API: v1 REST + WebSocket reference for the
--demon/--daemonAPI (runs, decisions, events, tools, config, secrets). - WebUI: the bundled React/Vite SPA — stack, pages, auth, real-time transport, and extension points.
Deep Dives
- Exploit Agent: the Flow A agent — loop lifecycle, prompts, model routing, permission model, outcome pipeline, reflection, research assistant.
- MCP Tools: every tool family across the three MCP servers, the
@audit_tool/@require_allowlistwiring, and the target-IP allowlist lock. - MCP Wiring: servers, transports, ports, how the agent/swarm connect, env-var propagation, and exception-group handling.
- Swarm: multi-agent missions — orchestrator, blackboard, the six agent roles, phase flow, MCP bridge, observability.
- Attack Modules: the module registry, all 15 module families (~90 modules), applicability scoring, and the add-a-module checklist.
- Run Service: run lifecycle, providers, event/decision brokers, persistence, auth, and WebSocket transport.
- Model Providers: Ollama wiring for chat/generate, embeddings, and research — and how to add a new provider.
- Config Reference: every
config.yamlkey — type, default, consumerfile:line, env overrides. - CLI Reference: every entry point and flag across
main.py/app.py/cli.py, WebUI daemon default,--menuterminal menu, exit codes, example workflows. - Database & Mission: SQLite schema (both DBs), mission lifecycle, task queue, memory, target graph, evidence-to-report pipeline.
- Outcomes & Evidence: outcome taxonomy, truth-vs-claim, evidence model, audit JSONL, finding verification, PoE, report generation.
- Research: research assistant, web research, recon enrichers, CVE lookup, and how findings flow into the agent.
- Evaluation: eval harness vs oracle-backed benchmark, metrics, scenarios, detection coverage, PoE canary scoring.
- Deployment: Windows/Linux install, Ollama cloud vs local, nmap privileges, WebUI build, daemon mode, hardening checklist.
- Troubleshooting: symptom → cause → check → fix for setup, startup, runtime, tests, WebUI, and platform issues.
- Tutorial: hands-on walkthrough — setup,
--self-test, recon-first run, exploit session, swarm mission, WebUI, demo/eval. - Glossary: alphabetized domain vocabulary with
file:linepointers. - Prompts: inventory of every AI prompt in the codebase and where to edit them.
- Sandbox: disposable Docker worker — architecture, network containment, fail-closed posture.
- Benchmarks: reproducible benchmark suite, oracles, regression gates (
--benchmarkflags). - Provider Development: adding a 4th AI provider (adapter + registry + config + tests).
- Browser Agent: sandboxed Playwright agent (off by default, target-locked).
- Configuration: generated config/API reference · MCP: servers, registration, families · Components: subsystem deep-dives · Reference: generated CLI dump.
Mental Model
This project is a locally run, AI-assisted security research agent. It has several surfaces over the same core concepts:
main.py: interactive launcher and direct recon/attack entry point.cli.py: database-backed workflow commands for missions, scope, tasks, findings, and reports.mcp_server.py: defensive, scope-enforced MCP scan server.mcp_exploit_server.py: permissive exploit MCP server whose tool use is expected to be gated by policy intools.exploit_agent.
The shared domain model is:
Mission -> Scope/Risk gates -> Planner -> TaskQueue -> Executor/Tools -> Observer -> OutcomeJudge/Hypothesis state -> Memory/Graph/Evidence -> FindingVerifier -> ReportGenerator
Extension Paths
- In-tree edits: see
extension-guide.mdfor exact edit points for adding tools, integrations, config, persistent data, and tests. - Out-of-tree plugins: see
plugin-development.mdfor writing, packaging, enabling, and distributing plugins.
Generated Directories
The repository contains runtime artifacts from previous local runs. Contributors should understand them, but normally should not edit them:
reports/: generated reports, run logs, and copied exploit workspaces.exploit_workspace/: generated exploit scripts, command logs, plans, and loot workspace.research_workspace/: local research database/logs.test_workspace*: temporary workspaces used by tests and manual regression runs.__pycache__/,.pytest_cache/,.venv/: local Python artifacts.
source: repo docs (build sync)Edit this page on GitHub →