🏆 Flagship result: RedAmon solves 101 / 104 (97.1%) of the XBOW web-security benchmark fully black-box. Every solve ships a complete, unedited raw agent session and a reproducible, step-by-step walkthrough: open any row and read exactly how the flag fell, tool call by tool call. Auditable, line by line. See the XBOW Validation Benchmark scorecard.
📊 Coverage, measured and self-scored: the Bug Bounty Coverage — The Full Taxonomy Audit (PDF, 124 pages) audits RedAmon against all 397 classes of web bug-bounty finding, one line at a time, naming the exact module, skill or scanner behind every verdict, and scoring the recon pipeline and the agentic system separately against their own remit. It is deliberately self-critical, it records what is missing as plainly as what is covered: 134 classes complete, 210 in the build backlog, 44 deliberately excluded, with one explicit decision for every class.
Roadmap & Community Contributions
We maintain a public Project Board with upcoming features open for community contributions. Pick a task and submit a PR!
Want to contribute? See CONTRIBUTING.md for how to get started.
Maintainers
Anthropic Cyber Verification Program: the team behind RedAmon is approved under Anthropic's Cyber Verification Program.
Quick Start
Prerequisites
- Docker Engine 28.0.0 or newer & Docker Compose v2+ (check with
docker version --format '{{.Server.Version}}')- macOS: Docker Desktop, with Memory raised to at least 4 GB (8 GB with
--gvm) in Settings → Resources. Clone under~/so the path is inside the default File Sharing list. - Windows: Docker Desktop with the WSL2 backend, run from inside the WSL2 filesystem (
~/), not/mnt/c/.
- macOS: Docker Desktop, with Memory raised to at least 4 GB (8 GB with
That's it. No Node.js, Python, or security tools needed on your host.
Minimum System Requirements
Without OpenVAS runs 7 containers: webapp, postgres, neo4j, agent, kali-sandbox, recon-orchestrator, and docker-broker (a filtering Docker-socket proxy that the recon orchestrator's spawned scan containers go through, so they can only launch the known tool images). With OpenVAS adds 4 more runtime containers (gvmd, ospd-openvas, gvm-postgres, gvm-redis) plus ~8 one-shot data-init containers for vulnerability feeds (~170K+ NVTs). First launch takes ~30 minutes for GVM feed synchronization. Dynamic recon and scan containers are spawned on-demand during operations and require additional resources.
Disk sizing for a real deployment. The figures above are bare minimums to build and run the stack (fixed platform footprint: ~70 GB without OpenVAS, ~95 GB with - measured by true on-disk image size after deduplicating the shared Kali base layers). For an always-on server running real engagements, add ~100 GB of free space for operational data - the Neo4j attack graph, scan artifacts/outputs, Postgres, and container logs all grow with use. That means 200 GB without OpenVAS, 250 GB with OpenVAS, each leaving well over 100 GB free for operations. See the deployment guide for the full breakdown.
1. Clone & Install
git clone https://github.com/samugit83/redamon.git
cd redamon
# Without GVM (lighter, faster startup):
./redamon.sh install
# With GVM / OpenVAS (full stack, ~30 min first run):
./redamon.sh install --gvm
The script builds all images and starts the services.
2. Create Admin Account
At the end of the install (and on every ./redamon.sh up or ./redamon.sh update if no admin exists), you will be prompted in the terminal:
[WARN] No admin user found. Let's create one.
Admin name: Your Name
Admin email: [email protected]
Admin password: ********
Confirm password: ********
- Admin name -- display name shown in the UI (e.g.
Admin, your name, anything you want). - Admin email -- used to log in at
http://localhost:3000/login. - Admin password -- minimum 12 characters.
After creation, open http://localhost:3000 and sign in with the email and password you just set.
No prompt appeared? On a heavy first boot (especially
--gvm, or a small VM) the webapp can take a while to come up, so the automatic prompt may be skipped. Create the admin at any time with:./redamon.sh create-adminIt waits for the webapp, then prompts for the same details. It is safe to re-run: reusing an existing admin's email resets that password, a new email adds another admin.
What the admin can do:
- Switch between all users via the user dropdown in the header (including users without a password).
- Create new users (with or without a password) and assign them
adminorstandardroles. - Set or change any user's password.
- Delete users (except themselves).
- Access the Users management page from the header navigation.
Standard users can only log in (if they have a password set by an admin), change their own password, and use the app within their own scope. They cannot switch users, create users, or access user management.
If you forget the admin password, reset it from the terminal:
./redamon.sh reset-password # reset an EXISTING user's password
./redamon.sh create-admin # create the first admin, or reset an admin by re-entering its email
Use create-admin when no admin exists yet (it upserts on email); reset-password only updates a user that already exists.
3. Configure
Open http://localhost:3000/settings (gear icon in the header) to configure everything. No .env file is needed.
- LLM Providers -- add API keys for OpenAI, Anthropic, OpenRouter, AWS Bedrock, or any OpenAI-compatible endpoint (Ollama, vLLM, Groq, etc.). Each provider can be tested before saving. The model selector in project settings dynamically fetches available models from configured providers.
- API Keys -- Tavily, Shodan, SerpAPI, NVD, Vulners, URLScan, and threat intelligence keys (Censys, FOFA, OTX, Netlas, VirusTotal, ZoomEye, CriminalIP) to enable extended agent capabilities (web search, OSINT, CVE lookups, passive threat intel). Uncover multi-engine search keys (Quake, Hunter, PublicWWW, HunterHow, Google, Onyphe, Driftnet) expand target discovery across 13 search engines -- shared keys (Shodan, Censys, FOFA, etc.) are automatically reused. Supports key rotation -- configure multiple keys per tool with automatic round-robin rotation to avoid rate limits.
- Tunneling -- configure ngrok or chisel for reverse shell tunneling. Changes apply immediately without container restarts.
All settings are stored per-user in the database. See the AI Model Providers wiki page for detailed setup instructions.
4. Open the Webapp
Go to http://localhost:3000 -- create a project, configure your target, and start scanning.
For a detailed walkthrough of every feature, check the Wiki.
Prefer video? Watch the Product Demos playlist on YouTube for step-by-step tutorials.
Having issues? See the Troubleshooting guide or the Wiki Troubleshooting page.
Management Commands
All lifecycle management is handled by a single script:
Flags can be combined:
./redamon.sh install --gvm --kbase
Updating to a New Version
Just run:
./redamon.sh update
The script pulls the latest code from GitHub, detects which Dockerfiles and source files changed, rebuilds only the affected images, and restarts the updated services. Your databases, scan results, and reports are preserved -- volumes are never deleted.
One-time note when a release adds a new background service.
updatere-execs the freshly-pulled script so new build/start rules apply automatically -- but only for the script version you are updating from. When updating from a version that predates this self-heal (i.e. your first update onto it), run./redamon.sh uponce right afterupdateso any newly added core service is started:./redamon.sh update && ./redamon.sh up
upis idempotent -- it starts only what is missing and leaves running containers untouched. After this one-time step, plain./redamon.sh updatehandles everything on its own.
Upgrading across 6.9 (repository reorganization). 6.9 grouped the top-level directories under
scanners/,services/,testing/,tooling/anddocs/.git pullmoves only tracked files, so data that git does not track -- the knowledge-base index, past scan outputs, and the single-host deploy.envand TLS material -- would otherwise be left behind at the old paths.update(andup/status) migrate it for you automatically and print what moved. If any file was written by a container as root and could not be moved, finish it with:sudo ./redamon.sh migrate-layout
The webapp also checks for updates automatically and shows a notification in the UI when a new version is available.
Deploy to a Server (Production)
The Quick Start above runs RedAmon locally on localhost. To run a shared, internet-reachable instance on a Linux server (EC2, DigitalOcean, Hetzner, or bare metal), use the single-host deploy in tooling/deploy/single-host/. It drives redamon.sh over SSH from your laptop and wraps the stack in the internet-facing security layer RedAmon omits by default: nginx + TLS (Let's Encrypt), a host firewall, SSH hardening, and fail2ban, with a single public HTTPS origin so only the login page is reachable and everything else stays bound to loopback.
cd tooling/deploy/single-host
cp .env.example .env # set HOST_IP, DOMAIN, SSH_KEY_PATH, OPERATOR_ALLOW_CIDRS,
# LETSENCRYPT_EMAIL, ADMIN_* ...
./deploy.sh init # first build takes 30-60 min, then log in at https://<domain>/
Full walkthrough: Wiki: Deploying to a Server. Complete reference: tooling/deploy/single-host/README.md.
Development Mode
For contributors and active development with Next.js fast refresh:
./redamon.sh up dev # auto-detects GVM mode from install
Tool images are built automatically on first run if they don't exist yet. The dev override swaps the production webapp image for a dev container with your source code volume-mounted. Every file save triggers instant hot-reload in the browser.
When to Rebuild vs Restart
Rebuild a single service:
docker compose build <service> # Rebuild one image
docker compose up -d --no-deps <service> # Restart only that service
Common dev commands:
docker compose ps # Check service status
docker compose logs -f <service> # Follow logs for a service
docker compose down # Stop all (preserves volumes)
docker compose --profile tools down --rmi local # Remove built images
docker compose --profile tools down --rmi local --volumes --remove-orphans # Full cleanup
Reclaim disk space:
docker system df # Show Docker disk usage (add -v for per-image breakdown)
docker image prune -f # Remove dangling images (auto-run by `./redamon.sh install` and `update`)
docker builder prune -f # Drop unused build cache (auto-run after every successful build; opt out with REDAMON_NO_AUTO_PRUNE=1)
docker builder prune -af # Drop ALL build cache, including what the current images reuse -- frees no extra disk and makes the next rebuild cold
docker container prune -f # Remove stopped containers
For a complete development reference -- hot-reload rules, common commands, important rules, and AI-assisted coding guidelines -- see the Developer Guide.
Knowledge Base (RAG-Enhanced Web Search)
The agent's web_search tool includes a local Knowledge Base -- a RAG pipeline that searches curated security datasets (GTFOBins, LOLBAS, OWASP WSTG, NVD CVEs, ExploitDB, Nuclei templates, and agent skill docs) before falling back to Tavily web search. When the KB returns a high-confidence match, Tavily is skipped entirely for faster, offline-capable results.
How it works: When the KB is enabled, install / up / update builds a lightweight KB index (~1,200 chunks in 10-15 min on CPU). At query time, the agent runs a hybrid retrieval pipeline (FAISS vector search + Neo4j fulltext), reranks with a cross-encoder, and checks a confidence threshold. If the score is high enough, results come from the local KB. Otherwise, it falls back to Tavily or merges both.
Default behavior: The KB is opt-in. ./redamon.sh install produces a lightweight install (~4.4 GB lighter, Tavily-only web search). To enable the local KB, pass --kbase:
./redamon.sh install --kbase
On first install with --kbase, RedAmon detects your hardware (GPU / CPU / API) and offers a quick-start profile. The choice is persisted, so subsequent update / up commands respect it without re-passing the flag.
Speed up ingestion with API embeddings: By default, embeddings run locally on CPU/GPU. On CPU-only machines, large datasets (ExploitDB, NVD) can take hours. You can offload embedding to an external API by creating a .env file from the template:
cp .env.example .env
Then configure the embedding API in .env:
Example with Ollama (free, local, no API key cost):
KB_EMBEDDING_USE_API=true
KB_EMBEDDING_API_BASE_URL=http://host.docker.internal:11434/v1
KB_EMBEDDING_API_KEY=ollama
KB_EMBEDDING_API_MODEL=nomic-embed-text
Important: Ingestion and query must use the same model. If you switch models, rebuild the index:
make -C services/knowledge_base kb-rebuild-lite MODE=docker
Manage the KB:
./redamon.sh kb build lite # Build with lite profile (~30-60s with API)
./redamon.sh kb build standard # Add NVD CVEs
./redamon.sh kb update nvd # Incremental NVD refresh
./redamon.sh kb stats # Show index statistics
./redamon.sh kb rebuild lite # Wipe and rebuild from scratch
For full technical documentation -- query pipeline, data sources, ingestion profiles, scoring, security model -- see the Knowledge Base Technical Reference or the Wiki: Knowledge Base & Web Search.
Table of Contents
- Full Wiki Documentation
- Overview
- Built for Enterprise, Secure by Design
- Security & Threat Model
- Feature Highlights
- System Architecture
- Components
- Documentation
- Troubleshooting
- RedAmon HackLab
- Community Showcase
- Legal
Overview
RedAmon is a modular, containerized penetration testing framework that chains automated reconnaissance, AI-driven exploitation, and graph-powered intelligence into a single, end-to-end offensive security pipeline. Every component runs inside Docker (no tools installed on your host) and communicates through well-defined APIs so each layer can evolve independently.
The platform is built around six pillars:
Built for Enterprise, Secure by Design
RedAmon is engineered to drop into a real security organization, not just a researcher's laptop.
- Secure by design, STRIDE threat-modeled. The whole platform is assessed end to end under STRIDE and hardened in independently verified waves: code-level privilege separation, a filtering Docker broker in front of the host socket, fail-closed auth, SSRF egress guards, secret redaction, append-only audit trails, and a non-disableable guardrail that blocks government, military, and intergovernmental targets. See the Security Posture and Threat Model.
- Fully isolated and containerized. Every tool, scanner, and agent runs in its own container with no host-level execution. Scan jobs are spawned as ephemeral sibling containers with their own filesystem and network namespace, then torn down on completion, keeping the host clean and containing the blast radius of any exploit.
- Governed and multi-tenant. Multi-user / multi-project tenancy with admin and standard roles, DB-level
user_id + project_idscoping on every node, Rules-of-Engagement enforcement, human-in-the-loop approval gates, and 500+ per-project settings give teams the control an enterprise engagement requires.
Deploy to a server in one command. Beyond local localhost, RedAmon ships a hardened single-host deploy that stands up a shared, internet-reachable instance and wraps the stack in nginx + TLS (Let's Encrypt), a host firewall, SSH hardening, and fail2ban, exposing a single public HTTPS origin:
cd tooling/deploy/single-host
cp .env.example .env # set DOMAIN, HOST_IP, SSH_KEY_PATH, ADMIN_* ...
./deploy.sh init # builds the full stack and brings it up over SSH
Full walkthrough: Wiki: Deploying to a Server.
Security & Threat Model
RedAmon is offensive software, so we hold it to the standard it tests others by. It is engineered secure by design and has been assessed end to end under the STRIDE methodology (Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege), with findings remediated in sequenced, independently verified waves.
This is not a marketing claim. It is grounded in a published, evidence-based analysis you can read:
- Security Posture - the full defense-in-depth control catalog: every layer implemented, mapped to the code.
- Threat Model - the assets, trust boundaries, data flows, entry points, and network surface the analysis was built on.
Highlights of what is implemented:
- Code-level privilege separation. The target-facing worker is the least trusted component and holds no secrets; a filtering docker-broker stands between the orchestrator and the host Docker socket (image allowlist, denies
--privileged, host-root binds, dangerous capabilities). - Two deployment postures, one trust model. Local (backends bound to loopback) and a hardened public-internet deploy that adds nginx + TLS, an operator gate, login rate-limiting, and a single public origin.
- Fail-closed by default. Unset auth tokens reject rather than serve, default database credentials are refused and rotated, WebSockets require a signed ticket plus a server-side same-origin check, and every request is scoped to its authenticated owner (per-user access control with anti-enumeration 404s).
- Defense in depth. SSRF egress guards, secret redaction in logs, append-only audit trails, container-escape hardening, decompression and concurrency caps, and supply-chain pinning (sha256 + commit pins).
- A non-disableable hard guardrail blocks government, military, and intergovernmental targets regardless of configuration.
- Third-party plugins are contained, not trusted. The plugin platform installs only from an Ed25519-signed catalog, runs each plugin under its own UID in a runner with no internet and no database or LLM credentials, reaches the stack only through a two-route proxy that re-authorizes every call, and lets a plugin change the agent's instructions only through text a person approves.
- Verified, release-gated remediation. Fixes ship in sequenced waves, each independently verified with live exploit reproduction before and after the patch. See the Changelog security entries.
Found a vulnerability? See our Security Policy for private disclosure.
Feature Highlights
Reconnaissance Pipeline
A fully automated, end-to-end external attack-surface mapper running inside a Kali Linux container. Give it one input (a root domain, a subdomain list, IP/CIDR ranges, or a Domain batch: a list of hostnames grouped by domain and scanned one group after another into a single graph) and the pipeline returns a complete, structured picture of the target: every subdomain, every live host, every open port, every HTTP service with its technology stack, every crawled endpoint and discovered parameter, every CVE the target is likely vulnerable to, plus dedicated scanners for GraphQL APIs, subdomain takeovers, hidden virtual hosts behind reverse proxies, web cache poisoning & deception, and an Adversarial AI Surface layer that tags AI runtimes / vector DBs / LLM frontends / proxies / MCP servers / chat / completion / embedding / RAG endpoints and prompt-injectable parameters using header / favicon / title / path / parameter-name signatures, then actively confirms them with a dedicated AI Surface Recon module (benign chat-shape probes, MCP handshake + tool-poisoning scan, vector-DB reads — no LLM calls).
Everything runs on a fan-out / fan-in architecture: each phase fires as many tools in parallel as the work allows, then converges before the next phase begins. 40+ industry tools integrate into one coordinated workflow, wildcard DNS poisoning is filtered out automatically with puredns, and stealth mode keeps the entire pipeline running on passive sources only when active probing is off-limits. Findings stream into the Neo4j knowledge graph on a background thread so the scan never blocks on database writes, and the raw JSON is preserved for download. The detailed tool-by-tool breakdown is in the matrix below.
Recon Pipeline Tool Matrix
*Amass can run in active mode when configured. Knockpy performs active DNS probing.
Partial Recon
Run any single tool from the pipeline independently without re-running the entire scan. Up to 12 partial recons can run in parallel per project, each with independent logs, stop controls, and status badges visible in both the Graph toolbar and Project Settings header. Each tool section has a play button that opens a modal where you can review existing graph data, add custom targets (subdomains, IPs, ports, or URLs), and launch the tool in isolation. Results are merged back into the Neo4j graph using MERGE operations -- duplicates are updated, not recreated. The tool runs with all project settings (timeouts, wordlists, API keys, proxy) applied automatically. All pipeline tools support partial recon.
AI in Pipeline
Optional LLM-augmented decision points wired inside the recon pipeline where static look-ups historically drift -- Nuclei prunes its tag list to the detected tech stack, the WAF classifier catches header-stripped Cloudflare/AWS WAF/Imperva, and many others across FFuf, Nuclei false-positive filtering, and subdomain-takeover disambiguation. Each hook is a cascade fallback after the static path with a deterministic safe fallback, so an LLM outage cannot break a scan. One master toggle in the Target tab governs them all.
The recon pipeline uses TypeSafe Jev, a typed decision model, for nine decisions: what kind of page each URL is, which host Hakrawler crawls first, which directories and extensions FFuf fuzzes, whether a tool failed or just found nothing, which Nuclei tags to run, whether a WAF is in front, whether a takeover is real, and which serialization format a flagged blob is. Jev needs a token on the project owner's account; see how it works in the Jev Meets the Recon Pipeline walkthrough on redamon.org.
AI Gauntlet: Offensive AI/LLM Testing
Where the recon pipeline finds the AI surface, the AI Gauntlet attacks it. Pick the discovered LLM endpoints (or type a custom URL), choose a tool, confirm the Rules of Engagement, and launch: a short-lived container runs the target through four industry red-team tools -- garak (broad single-shot scanner, 40 probe families), PyRIT (bounded multi-turn jailbreaks), Giskard (LLM-assisted safety scan), and promptfoo (dataset red-team eval) -- measuring an Attack Success Rate per attack and writing the confirmed weaknesses back onto the graph as OWASP-LLM / MITRE-ATLAS-mapped Vulnerability findings with evidence transcripts.
It is deterministic (seeds, fixed bounds, pinned tool versions) and runs with zero external egress: every judge / grader / embedding call is forced to a local Ollama model, so no payload or transcript ever leaves your machine. Off by default and RoE-gated, with live phase-by-phase progress, and findings surfaced in the Red Zone AI Gauntlet Vulnerabilities table and the pentest report.
GVM Vulnerability Scanner
GVM/OpenVAS performs deep network-level vulnerability assessment with 170,000+ NVTs, probing services at the protocol layer for misconfigurations, outdated software, default credentials, and known CVEs. Complements Nuclei's web-layer findings. Seven pre-configured scan profiles from quick host discovery (~2 min) to exhaustive deep scanning (~8 hours). Findings are stored as Vulnerability nodes in Neo4j alongside the recon graph.
AI Agent Orchestrator
A LangGraph-based autonomous agent implementing the ReAct pattern. It progresses through three phases: Informational (intelligence gathering, graph queries, Shodan, Google dorking), Exploitation (Metasploit, Hydra credential testing, social engineering simulation), and Post-Exploitation (enumeration, lateral movement). The agent executes 14 security tools via MCP servers inside a Kali sandbox, supports parallel tool execution via Wave Runner, and provides real-time chat interaction with guidance, stop/resume, and approval workflows. Deep Think mode enables structured strategic analysis before acting.
Agent Tool Arsenal
All MCP tools run inside a Kali Linux sandbox container. Workspace FS and Background Jobs tools run in-process inside the agent container and operate exclusively on the per-project workspace at /workspace/<projectId>/ -- path validation rejects every traversal trick (project-id injection, symlink escape, zip-slip, tar-slip). See Agent Workspace wiki page for the full reference. Tools marked as dangerous require manual confirmation before execution. Stealth mode restricts active tools to passive-only or single-target operations. Note: WPScan is licensed under the WPScan Public Source License (not MIT). Free for pentesting assessments and personal use; commercial use may require a separate license from wpscan.com.
MCP Tool Plugins (extending the agent's tool arsenal)
Beyond the 5 built-in MCP servers above, you can plug any Model-Context-Protocol server into the agent as a tool plugin (Shodan, GitHub, Censys, Hugging Face, mitmproxy, your own internal MCPs) without editing code, rebuilding containers, or running migrations. Open Global Settings → MCP Tool Plugins.
Two paths: pick one of 39 prefilled Quick-Add presets (OSINT, threat-intel, cloud, web-app scanners, reporting, reverse engineering; categories tagged on every card), or click Add MCP for a manual config. Three transports supported: stdio, sse, streamable_http. The orange Discover and add new tools button runs a live list_tools() against the draft, returns within 30 seconds, and auto-imports each discovered tool with its name, description, and a JSON-Schema-derived args_format (types, enums, defaults, min/max, per-property descriptions). Save → tools auto-appear in every project's Tool Matrix and in the agent's system prompt within ~1 second. No agent restart, no prisma db push.
Full operator manual (every form field, all 39 presets, the auth flow, the live discovery workflow, validation rules, troubleshooting, and the storage / security model): MCP Tool Plugins wiki page.
MCP Server: Your Own Agent Connecting Into RedAmon
The mirror image of the plugins above. Instead of RedAmon's agent reaching out to tools, your agent connects in and drives RedAmon: your Claude Code session, an internal triage assistant, a nightly CI job, anything that speaks the Model Context Protocol. Mint an access token in Global Settings → MCP Server and it gets 48 tools behind 17 permissions: list projects, read scan status and settings, query the attack-surface graph in plain English or raw Cypher, read findings / suppressed findings / remediations, see why a finding ranks where it does and read its evidence, submit a quoted evidence review (RedAmon recomputes the score; the agent never sets one), record a triage verdict, start or stop a Priority Board run (spaced and capped per project), mute and unmute findings behind their own opt-in permission, run saved graph views, compare saved scan versions, get an attack-surface overview, exploit paths and blast radius, start / stop / queue a recon run, open an engagement, manage recon presets, and (off by default, behind three independent switches) run a command in the Kali sandbox.
The token acts as you, inside your own projects. It is re-checked on every call, so a revoke takes effect on the agent's next call rather than its next reconnect; every graph read is rewritten to match only your tenant's nodes and runs in a read-only Neo4j session; and every write is a positive allowlist. Deliberately not exposed: the agent chat, deleting projects, your API keys, re-pointing a project's target, the engagement record, Mute Rules, setting a finding's score directly, changing a verdict a person made in the app, and any graph write beyond verdicts, reviews, triage runs and (opt-in) mutes. MCP_SERVER_ENABLED is off after a normal install and refused over plain HTTP on a server deploy, and MCP_DISABLED_TOOLS withdraws a single misbehaving tool without taking the whole surface down.
Agent Onboarding (teaching your agent how to use RedAmon)
Connecting an agent tells it that the tools exist. It does not tell it what RedAmon is, what the recon pipeline produces, or which of the 48 tools to reach for first. Agent Onboarding writes those instructions for you. Pick one of 14 Agent Profiles (bug bounty, penetration testing, continuous attack-surface monitoring, vulnerability management, triage assistance, asset inventory / CMDB, compliance evidence, DevSecOps CI gating, reporting, M&A and third-party risk, threat-intel correlation, SOC enrichment, research and training, or custom) and RedAmon ticks the permissions that job needs and generates a pack tailored to it: a SKILL.md plus reference files covering the operating model, the graph's shape, the tool sequence for that job, the traps specific to it, and tool by tool exactly what this token can and cannot do. The tool facts are read from the server's own live tool list at export time, so a pack can never describe a tool differently from how the server serves it. Clients that never load a skill file (Cursor, Windsurf, Cline, Goose, Gemini CLI, Codex CLI) receive a shorter version of the same guidance inline the moment they connect.
No profile ever ticks kali:exec or recon:overwrite for you, not even the ones that recommend them: a shell on a target-facing box and an irreversible graph wipe should never arrive as the side effect of choosing an item from a dropdown.
Agent Skills teach RedAmon's agent. Agent Onboarding teaches yours.
Wiki: MCP Server | Wiki: MCP API Reference | Technical: README.MCP.SERVER.md
Agent Workspace: Per-Project Filesystem, Background Jobs, Auto-Offload
Watch the demo: RedAmon Agent Workspace: AI Runs 4 Parallel Pentests and Writes Its Own Report (YouTube)
Every project gets a persistent /workspace/<projectId>/ directory that the agent, the kali-sandbox, and you (through the FileSystem Drawer in the Red Zone) all see at the same time. Four purpose-built folders are auto-created and protected from rename/delete: notes/ for the agent's scratch work and draft reports, tool-outputs/ for auto-offloaded huge outputs, jobs/ for background-job logs, and uploads/ for files you drop in for the agent to read. The agent is taught the layout on every think step via a WORKSPACE_LAYOUT_BLOCK, and when you drop files into uploads/ the block surfaces them under a CHECK THESE NOW directive so the agent reads them before continuing whatever else it was doing.
The agent gets 24 filesystem tools (fs_read, fs_write, fs_edit, fs_multi_edit, fs_undo_edit, fs_grep, fs_glob, fs_find, fs_diff, fs_symbols, fs_archive, fs_extract, and more) plus 5 background-job tools (job_spawn, job_status, job_wait, job_cancel, job_list). Long scans like nuclei or hydra detach as asyncio tasks and stream output to jobs/<id>.log, so the agent can fs_grep for hits mid-flight without blocking the next reasoning step. Outputs over 20 KB automatically offload to tool-outputs/<utc-iso>-<tool>.txt and the LLM receives a head/tail stub plus the file path, so a 5 MB Playwright DOM dump never derails the context window. The drawer surfaces all of this with breadcrumb navigation, drag-and-drop upload, inline preview, SHA-256 properties, per-folder tar.gz download, and a Jobs tab with live status badges and cancel.
Path validation rejects every traversal trick (project-id injection, symlink escape, zip-slip, tar-slip, protected-folder bypass via normalization) and is server-enforced. Jobs survive agent restart via on-disk metadata: orphan running jobs flip to interrupted on boot so the UI never shows a forever-spinning row.
Full operator manual (every drawer feature, all 29 workspace tools, the auto-offload policy map, the four protected folders, fireteam coordination patterns via
fs_diff vs_last_read, and the path-validation safety model): Agent Workspace wiki page.
Fireteam: Parallel Specialist Sub-Agents
The agent's most powerful execution mode. When an objective decomposes into independent investigation angles (auth surface, route map, header policy; or 5 candidate CVEs to triage in parallel), the root agent fans out into N specialist sub-agents that work concurrently inside the same backend, each running its own multi-step ReAct loop with a focused mission. This is RedAmon's implementation of the Scatter-Gather ReAct (SG-ReAct) architectural pattern: a root agent that decides when to fan out, a bounded fireteam of specialists that work in parallel, and a fan-in step that merges their findings back into a single consolidated worldview.
Every safety guarantee that applies to the root agent also applies to every member: hard guardrails, soft guardrails, phase gating, Rules of Engagement, and dangerous-tool confirmations (handled per-member, in parallel; N members can each be awaiting your approval on their own panel simultaneously without serializing). Recursion is forbidden (a member cannot itself deploy a fireteam) and every wave has a hard cap on members, an iteration budget per member, and a wall-clock timeout. The result is wall-clock parallelism without coordination chaos, predictable termination, and an audit trail where every action is attributable to the specialist that produced it.
Wiki: Fireteam (Parallel Specialists) | Technical: README.AGENTIC_SYSTEM.md
AI Model Providers
Supports 5 providers and 400+ models: OpenAI (GPT-5.2, GPT-5, GPT-4.1), Anthropic (Claude Opus 4.6, Sonnet 4.5), OpenRouter (300+ models), AWS Bedrock, and any OpenAI-compatible endpoint (Ollama, vLLM, LM Studio, Groq, etc.). Models are dynamically fetched, no hardcoded lists.
OpenAI-compatible provider settings include a reasoning effort control. Enable it to send reasoning_effort with low, medium, high, or max; leave it disabled to send nothing and use the model's default. Enable it only for thinking-capable models: a model without the thinking capability rejects a level, and the agent transparently retries without it. The available effort levels are model-dependent. Canonical OpenAI providers and unrelated OpenAI-compatible endpoints keep their existing behavior.
Attack Surface Graph
A Neo4j knowledge graph with 19 node types and 20+ relationship types, the single source of truth for the target's attack surface. The agent queries it before every decision via natural language → Cypher translation.
EvoGraph: Attack Chain Evolution
A persistent, evolutionary graph tracking everything the AI agent does: tool executions, discoveries, failures, and strategic decisions. Structured chain context replaces flat execution traces, improving agent efficiency by 25%+. Cross-session memory means the agent never starts from zero.
Multi-Session Parallel Attack Chains
Launch multiple concurrent agent sessions against the same project. Each session creates its own AttackChain in EvoGraph. New sessions automatically load findings and failure lessons from all prior sessions, avoiding redundant work.
TrafficMind: HTTP Traffic Capture
RedAmon's built-in, engagement-scoped proxy history: a credential-free man-in-the-middle proxy (powered by mitmproxy) sits between every offensive tool and its target, records the full request/response of each HTTP transaction, tags it with who produced it (project / user / run / tool via a signed HMAC context tag), and stores it in Postgres through a trusted, INSERT-only ingest worker. Think of an always-on HTTP history, except it turns on with a toggle, attributes every request to its source, and is queryable by the operator and the AI agent.
Capture is off by default and gated at two levels (a global master switch that runs the proxy, plus a per-project routing toggle). Eight recon tools and eight agent HTTP tools (execute_curl, execute_httpx, execute_playwright, execute_nuclei, execute_katana, execute_ffuf, execute_arjun, execute_wpscan) are routed, so both the pipeline's and the agent's own crawl/fuzz/scan traffic is captured, searchable, and replayable. The proxy holds no secrets, an SSRF egress guard with a DNS-rebinding IP pin keeps it from pivoting into internal infrastructure, sensitive headers are redacted, and passive signals (reflected params, missing security headers, cookie-flag issues) are computed for free on every response. A TrafficMind view in the top navigation exposes the corpus as a paginated, filterable, proxy-style table with a request/response detail drawer, CSV/JSON export, and reference-counted body cleanup.
The agent works the corpus through a single code-native tool, proxy_brain: it writes Python against a pre-imported redamon SDK and composes the attack itself (loops, conditionals, crypto, oracles) rather than picking from a fixed menu. The SDK's read calls (search, get, sitemap, params, grep, diff, to_curl, query) run in any phase; its active calls (replay, batch, fuzz) send live traffic and are gated to the exploitation phases, as is browser(id), which drives a real Chromium to confirm bugs that only surface after JavaScript runs (DOM-based XSS, SPA-only routes, JS-minted CSRF). proxy_brain runs in the Kali sandbox but holds no database credential: it reaches the corpus only through the agent's /traffic/exec (read), /traffic/replay (active) and /traffic/browser (browser) endpoints, tenant-scoped by a signed tag the sandbox cannot forge, host-pinned to the origin on every send, budget-capped, stealth-restricted, and re-captured. The agent reads its own on-demand cookbook with redamon.manual(). See docs/readmes/README.TRAFFIC.md for the architecture.
**[Wiki: