mcp server
redpilot
π― AI-orchestrated offensive security framework. Automated recon, CVE mapping, exploit POC generation & remediation across a discovery β validation β report pipeline. CLI Β· API Β· MCP Β· dashboard. Powe
Set up
Runs on your computer. Pick your agent and operating system.
Before you start
- uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
{
"mcpServers": {
"redpilot": {
"command": "uvx",
"args": [
"redpilot"
]
}
}
}same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12
Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs
README
synced Oct 25, 2026AI enginesΒ Β· Β Google GeminiΒ Β· Β Anthropic ClaudeΒ Β· Β OllamaΒ Β· Β LM StudioΒ Β· Β Shodan
Point RedPilot at a target and it runs the engagement. The AI plans the recon, RedPilot runs the tools on your machine, and you get the findings plus a written assessment β built for Kali, bug bounty, and red-team work.
pip install "redpilot[ai]" # RedPilot + the AI providers
redpilot setup # pick your AI + database (SQLite = zero setup)
redpilot agent target.com # the AI plans β runs β reports, end to end
β οΈ Authorized testing only β see the Legal Disclaimer.
What you get
redpilot agentβ an autonomous agent: the AI chooses which modules to run, chains them, and writes the assessment.- Recon toolkit β one pipeline wrapping
subfinder,httpx,nuclei,katana,dnsx,ffufand more. - AI threat analysis after every scan β Gemini, Claude, Ollama, or LM Studio β plus PoC and remediation code on demand.
- Full attack surface β recon, network + CVE mapping, web audit, crawler, passive Shodan intel.
- Scope-safe & stealthy β engagement-scope enforcement, TOR, proxy rotation, UA randomization.
- Zero-setup storage β MongoDB, or a local SQLite file with nothing to install.
- Share it β dark-mode HTML/JSON reports, CSV export, and scan diffing.
- Run it as a platform β a headless HTTP API (REST + WebSocket), an MCP server/client, a built-in web dashboard + Prometheus metrics, a plugin SDK, a hardened Docker/Caddy deploy, and multi-engagement workspaces with RBAC.
β How it works
One target in, a written assessment out. Reach RedPilot from any surface β the CLI, the HTTP API, the web dashboard, or an MCP host β and they all drive the same engine: every active step is scope-gated and audit-logged, runs the modules on your machine, and the AI writes it up.
%%{init: {'theme':'base','themeVariables':{'fontFamily':'JetBrains Mono, ui-monospace, monospace','primaryColor':'#11161a','primaryTextColor':'#E0A82E','primaryBorderColor':'#C98B1C','lineColor':'#5B6672','clusterBkg':'#0a0e12','clusterBorder':'#1c2630'}}}%%
flowchart TD
subgraph SURF [ surfaces ]
direction LR
CLI[redpilot CLI]:::box
API[HTTP API<br/>REST Β· WebSocket]:::box
DASH[web dashboard<br/>+ /metrics]:::box
MCP[MCP server<br/>Claude Desktop]:::box
end
CLI --> SVC
API --> SVC
DASH --> API
MCP --> SVC
SVC{{ service engine }}:::hot
SVC --> GATE[/ scope check Β· RBAC Β· audit /]:::dim
GATE --> A{{ AI plans the assessment }}:::hot
A --> R[recon<br/>subdomains Β· DNS Β· WHOIS]:::box
A --> TK
A --> W[web audit<br/>headers Β· TLS Β· paths]:::box
A --> N[network<br/>nmap Β· CVE mapping]:::box
subgraph TK [recon toolkit]
direction LR
s1[subfinder<br/>assetfinder] --> s2[dnsx] --> s3[httpx] --> s4[katana<br/>hakrawler] --> s5[wayback<br/>gau] --> s6[ffuf] --> s7[nuclei]
end
R --> F[( findings )]:::hot
TK --> F
W --> F
N --> F
F --> DB[( MongoDB / SQLite )]:::dim
F --> AI[[ AI assessment<br/>router Β· cache Β· budget ]]:::hot
AI --> REP[report<br/>HTML Β· JSON Β· CSV]:::hot
classDef hot fill:#0a0e12,stroke:#E0A82E,color:#E0A82E,stroke-width:1px;
classDef box fill:#11161a,stroke:#C98B1C,color:#C6D0DA;
classDef dim fill:#11161a,stroke:#2b3a2f,color:#9AA6B2;
Run the whole chain with redpilot agent target.com (AI-planned) or redpilot pipeline target.com (deterministic discovery β validation β remediation β report), any single stage on its own (redpilot recon, redpilot toolkit, redpilot scan, β¦), or the same over the API / dashboard / MCP β all scope-gated and audit-logged through one engine.
β Core feature set
π§ AI Intelligence Suite
Connect to any leading AI model for Red Team-grade analysis. After every scan, RedPilot automatically sends findings to your configured AI and generates a module-specific intelligence report covering attack paths, exploitation techniques, CVE correlation, and actionable remediation β printed directly in the terminal.
Supported providers (all work with every command):
| Provider | Type | Shortcut |
|---|---|---|
| Google Gemini 2.0 Flash | βοΈ Remote | redpilot gemini |
| Anthropic Claude 3.5 | βοΈ Remote | redpilot claude |
| Ollama (local) | π» Streaming | redpilot ollama |
| LM Studio (local) | π» Streaming | redpilot lmstudio |
Local providers (Ollama / LM Studio) stream tokens in real-time as they are generated.
Add--no-aito any scan command to skip AI analysis.
π΅οΈ Stealth & OpsSec Engine
Every single request is wrapped in configurable operational security layers.
- Native TOR integration (
socks5://) - Rotating SOCKS5/HTTP proxy chains
- Dynamic User-Agent fingerprint rotation
- Per-module concurrency & request delay controls
π‘ Passive Shodan Intel
Set SHODAN_API_KEY in .env to enrich every recon scan with passive Shodan data β open ports, org, ISP, and country β without sending a single packet to the target.
π Reconnaissance Module
Build a complete attack surface map before firing a single payload.
- Passive subdomain enumeration via
crt.sh - Active DNS brute-forcing (12+ common prefixes)
- DNS Record audit: SPF, DMARC, AXFR zone transfer
- WHOIS registrant email exposure analysis
- Shodan passive IP intelligence (optional)
- External recon toolkit (
redpilot toolkit) β chainssubfinder,assetfinder,dnsx,httpx,katana,hakrawler,waybackurls,gau,ffuf&nucleiinto one pipeline (runredpilot toolsto check installs)
π Web Security Auditor
Deep-dive assessment of web application security posture.
- Security headers: CSP, HSTS, XFO, X-Content-Type
- Cookie flags:
Secure,HttpOnly,SameSite - Sensitive path probing:
.env,.git, admin portals - TLS/SSL: protocol versions, certificate expiry
π Network Intelligence
High-speed, configurable port scanning with automated threat correlation.
- Nmap integration with
light,normal,aggressiveprofiles - RustScan turbo-discovery (async TCP) β hand-off to Nmap for deep analysis
- Service version detection & OS fingerprinting
- Automated CVE mapping via NIST NVD API (rate-limited, supports API key)
π Reporting & Export
Generate executive-grade deliverables.
- π Dark-mode HTML Dashboard with severity-ranked findings
- π Structured JSON output for pipelines
- π CSV Export (
redpilot export) for client-ready spreadsheets - π Scan Diff (
redpilot diff) β compare any two scans visually
π§° External Recon Toolkit
Chain a suite of best-in-class open-source recon binaries into a single pipeline with redpilot toolkit. Each stage feeds the next, and every tool is optional β missing binaries are skipped gracefully (check status with redpilot tools).
subfinder / assetfinder β dnsx β httpx β katana / hakrawler
β waybackurls / gau β ffuf β nuclei
| Tool | Role | Tool | Role |
|---|---|---|---|
subfinder | Passive subdomain enum | waybackurls | Wayback URL harvesting |
assetfinder | Passive asset discovery | gau | getallurls historical fetch |
dnsx | Fast DNS resolution | ffuf | Content / directory fuzzing |
httpx | HTTP probing & fingerprinting | nuclei | Template-based vuln scanning |
katana | Next-gen crawling | hakrawler | Fast endpoint crawler |
β Demo
A 60-second tour β safe to run offline against example.com:
redpilot tools # see which recon binaries are installed
redpilot tools --install # install the Go recon suite (requires Go)
redpilot scope add example.com # define engagement scope
redpilot toolkit example.com # subfinder β httpx β katana β nuclei pipeline
redpilot report example.com --format html --with-ai # shareable HTML report + AI analysis
βΆοΈ Generate a walkthrough GIF for your fork with
scripts/demo.shβ recipe indocs/demo.md.
β Installation
From PyPI (recommended)
pip install redpilot # core
pip install "redpilot[ai]" # + Google / Claude / OpenAI-compatible providers
pip install "redpilot[intel]" # + Shodan passive intelligence
pip install "redpilot[ai,intel]" # everything
From source (for development)
git clone https://github.com/geevarghesekthomas84-sys/redpilot.git
cd redpilot
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -e ".[ai,intel,dev]" # editable install with all extras + test tools
First run
cp .env.example .env # configure providers / MongoDB / stealth
redpilot --install-completion # shell tab-completion (optional)
redpilot tools --install # install the recon toolkit binaries (needs Go)
redpilot setup # interactive configuration wizard
Requirements: Python 3.11+, Nmap, MongoDB (local or remote)
Optional: RustScan for ultra-fast port discovery Β· the recon toolkit binaries (
redpilot toolsto check) Β· Shodan via theintelextra above
β Docker / Podman
The fastest way to get running β no manual setup of MongoDB or Python environment needed.
# 1. Start MongoDB + RedPilot in one command
docker-compose up -d
# 2. Run any scan
docker-compose run redpilot recon target.com
docker-compose run redpilot scan target.com --scanner rustscan --ports 1-65535
# 3. Drop into interactive AI shell
docker-compose run redpilot shell
# Override the entire command
docker-compose run redpilot export target.com --format csv
Note:
docker-compose.ymlusesnetwork_mode: hostso Nmap/RustScan can reach real targets.
.envis automatically mounted from the project root β add your API keys there.
Podman works with the same files β swap the command:
podman compose up -d # Podman 4.4+ (uses the compose provider)
# or: podman-compose up -d
podman compose run redpilot recon target.com
On SELinux hosts (Fedora/RHEL), if a bind mount gives "permission denied", add a
:z(shared) /:Z(private) suffix to the volume β e.g../scope.json:/app/scope.json:zβ or run with--security-opt label=disable. Rootless Podman already has host networking;network_mode: hostis honored.
β Configuration
Copy .env.example to .env and configure your providers:
# βββ AI Provider (choose one) ββββββββββββββββββββββββββββββββββββ
AI_PROVIDER=google # google | claude | ollama | lmstudio
# Remote providers
GOOGLE_API_KEY=your_key
ANTHROPIC_API_KEY=your_key
# Model overrides (optional β defaults shown)
GOOGLE_MODEL=gemini-2.0-flash
ANTHROPIC_MODEL=claude-3-5-sonnet-20241022
# Local providers
OLLAMA_URL=http://localhost:11434/v1
OLLAMA_MODEL=llama3.2 # optional, auto-detected
LM_STUDIO_URL=http://localhost:1234/v1
LM_STUDIO_MODEL=your-model # optional, auto-detected from loaded model
# βββ APIs ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
NIST_API_KEY=your_key # free: https://nvd.nist.gov/developers/request-an-api-key
SHODAN_API_KEY=your_key # free: https://account.shodan.io/register
# βββ Stealth / OpsSec ββββββββββββββββββββββββββββββββββββββββββββ
USE_TOR=false
PROXY_FILE=./proxies.txt
RANDOM_USER_AGENT=true
# βββ Database ββββββββββββββββββββββββββββββββββββββββββββββββββββ
REDPILOT_DB_BACKEND=mongo # mongo (default) | sqlite
REDPILOT_MONGO_URI=mongodb://localhost:27017 # used when backend = mongo
REDPILOT_SQLITE_PATH=redpilot.db # used when backend = sqlite
No MongoDB? Use the SQLite fallback. Set
REDPILOT_DB_BACKEND=sqlite(or pick it inredpilot setup) and RedPilot stores everything in a local file β no database server needed. Great for quick/offline use.
β Usage
π Full command reference with all flags and examples β COMMANDS.md
# βββ Autonomous Agent (AI plans & chains the modules) ββββββββββββ
redpilot agent target.com # plan β confirm β run β AI assessment
redpilot agent target.com --goal "find web vulns" -y # steer it, skip the prompt
redpilot agent target.com --dry-run # preview the plan only
# βββ Reconnaissance ββββββββββββββββββββββββββββββββββββββββββββββ
redpilot recon target.com # Recon + AI + Shodan (if key set)
redpilot recon target.com --passive --no-ai # Passive OSINT only
# βββ Network Scanning ββββββββββββββββββββββββββββββββββββββββββββ
redpilot scan target.com # Nmap + AI analysis
redpilot scan target.com --scanner rustscan --ports 1-65535 # RustScan β Nmap
redpilot scan target.com --intensity aggressive # Deep scan (-sV -sC -O -A)
# βββ Web Security ββββββββββββββββββββββββββββββββββββββββββββββββ
redpilot webscan https://target.com # Full web audit + AI
redpilot crawl https://target.com --depth 3 # Spider + AI
# βββ External Recon Toolkit ββββββββββββββββββββββββββββββββββββββ
redpilot tools # Show which recon tools are installed
redpilot toolkit target.com # Full pipeline: subfinderβhttpxβkatanaβnuclei
redpilot toolkit target.com --no-nuclei --no-crawl # Passive recon only (no active scan)
redpilot toolkit target.com --fuzz --wordlist wl.txt # Add ffuf content fuzzing
redpilot toolkit target.com --nuclei-severity critical,high --output recon.json
# βββ AI Provider Shortcuts (all context-safe) ββββββββββββββββββββ
redpilot test-ai # Health check + status table
redpilot chat "How do I bypass a WAF?" # Configured provider
redpilot gemini "Explain CVE-2024-1234" # Google Gemini
redpilot claude "Write an Ansible remediation task" # Anthropic Claude
redpilot ollama "List SMB exploitation paths" # Ollama β live streaming
redpilot lmstudio "Analyze these HTTP headers" # LM Studio β live streaming
# βββ AI Analysis on past scans βββββββββββββββββββββββββββββββββββ
redpilot ai <scan_id> # Re-analyze (no re-scan)
redpilot ai <scan_id> --provider ollama # Use Ollama for this run
# βββ Exploit & Remediation βββββββββββββββββββββββββββββββββββββββ
redpilot poc <finding_id> # Generate Python exploit script
redpilot poc <finding_id> --output exploit.py
redpilot remediate <finding_id> --format ansible # Fix code (ansible/terraform/bash)
# βββ Operations ββββββββββββββββββββββββββββββββββββββββββββββββββ
redpilot export target.com --format csv # Export findings to CSV
redpilot export target.com --format json # Export findings to JSON
redpilot diff <scan_id_1> <scan_id_2> # Compare two scans
redpilot scope show # View engagement scope
redpilot scope add target.com # Add to scope
redpilot scope remove target.com # Remove from scope
redpilot watch target.com --interval 3600 --module webscan # 24/7 monitoring
redpilot report target.com --format html # Premium HTML report
redpilot history # Past scan records
redpilot shell # Interactive AI shell
redpilot update # Update RedPilot to latest
β MCP server new in 1.5
Run RedPilot as an MCP server so Claude Desktop (or any MCP host) can drive it with natural language β recon, the toolkit, scans, and the autonomous agent, all as native tools, locally.
pip install "redpilot[mcp]" # installs the MCP support
redpilot scope add target.com # authorize a target first
redpilot mcp # serve over stdio
Add it to Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"redpilot": { "command": "redpilot", "args": ["mcp"] }
}
}
Then ask Claude things like "recon target.com and summarize the risks."
Safety model (a model is calling these):
- Scope is enforced inside every tool β out-of-scope targets are refused, and there is no bypass flag exposed to the model.
agent_runis plan-only by default; active execution needs an explicitdry_run=falseand an in-scope target.- No raw-command tool β the model only selects RedPilot's fixed modules.
- Every active call is written to an audit log (
logs/audit.jsonl).
See
docs/ROADMAP_V2.mdfor the full platform plan (HTTP API, model router, secure gateway, dashboard).
β HTTP API new in 1.6
Run RedPilot as a service β everything the CLI does, over REST, with live scan
events over WebSocket. Secure by default: every endpoint except /health and
/version needs an API key, and active scans are scope-gated.
pip install "redpilot[api]"
export REDPILOT_API_KEYS="your-secret-key" # or let it print a generated one
redpilot serve # http://127.0.0.1:8000 (docs at /docs)
# start a scan (returns a job id), then stream it
curl -s -XPOST localhost:8000/scans -H "X-API-Key: $KEY" \
-H 'content-type: application/json' \
-d '{"module":"toolkit","target":"example.com"}'
# β {"job_id":"β¦","status":"running"}
# GET /jobs/{id} β status + typed findings
# WS /ws/jobs/{id} β live step/finding events
| Endpoint | What it does |
|---|---|
GET /health, GET /version | open health/version |
GET /metrics | open Prometheus metrics (aggregate only) |
GET /, GET /dashboard | built-in web console (open) |
GET /whoami | your principal (role + engagements) |
GET /engagements, POST /engagements | list / create engagements (create = lead) |
GET /scope, POST /scope | view / add engagement scope |
GET /tools | external-tool install status |
GET /audit | recent active-action audit entries |
POST /scans, POST /agent | start a scan / agent job (202 + job id) |
GET /jobs/{id} | job status + typed result |
WS /ws/jobs/{id} | live progress & findings |
GET /scans/recent, GET /findings/{id} | history / findings |
Bind
--host 0.0.0.0only behind the reverse-proxy gateway (TLS/auth) β see the roadmap. Interactive API docs are at/docs.
β Dashboard & metrics new in 1.10
The API ships a self-contained web console and Prometheus metrics β no
extra install beyond redpilot[api].
redpilot serve
open http://127.0.0.1:8000/ # the dashboard (enter your API key to connect)
curl -s localhost:8000/metrics # Prometheus scrape target
- Dashboard (
/) β a single vanilla-JS page in the CLI's amber/steel theme: connect with yourX-API-Key, see scope/tools status, launch a scan or an agent run (with dry-run), watch live events over WebSocket, and read the findings and audit tables as they fill. - Metrics (
/metrics) β scans started/completed/failed by module, findings by severity, agent runs by mode, and auth failures, in Prometheus text format. Labels are aggregate only (no target names), so the endpoint is safe to scrape without leaking engagement data. Left open so scrapers need no key. - Audit (
/audit) β key-protected tail of the JSONL audit log: the who/what/target/when record written for every active action.
β Secure deploy new in 1.8
Run the API hardened, behind a TLS reverse-proxy gateway β one command.
cd deploy
cp .env.example .env # set REDPILOT_API_KEYS (and REDPILOT_DOMAIN for real TLS)
docker compose up -d --build # Caddy gateway + API (SQLite, zero-setup)
curl -k https://localhost/health
- Caddy gateway β automatic TLS, security headers, request-size cap; opt-in mTLS and rate-limiting. Only the gateway is exposed; the API is internal.
- Hardened API container β non-root, read-only root FS (state under
/data),cap_drop: ALL,no-new-privileges, resource limits, healthcheck. - CI image scanning (Trivy) + sops/age secrets.
Full guide β mTLS, rate-limiting, secrets, and the authorized-egress note β in
SECURITY_HARDENING.md.
β Extend it new in 1.9
Plugins β add your own scan module by subclassing PluginModule and
advertising it via the redpilot.modules entry-point group:
# your plugin's pyproject.toml
[project.entry-points."redpilot.modules"]
myscan = "my_pkg.module:MyScanModule"
redpilot plugins # list discovered plugins
redpilot myscan target.com # runs like a built-in (CLI / API / MCP)
Consume external MCP servers β point RedPilot at other MCP servers (CVE/OSINT
feeds, your own tools) in Claude-Desktop shape (mcp_servers.json):
redpilot mcp-tools # list tools exposed by the configured servers
Plugins and external MCP tools run through the CLI/API/service β they are not auto-added to the autonomous agent's fixed action set (that stays curated).
Machine-readable output β every surface returns the same typed models; emit their JSON Schema so downstream tooling can validate RedPilot output:
redpilot schema --write docs/schemas # or: GET /schema over the API
Architecture, request flow, and all three extension seams (modules, providers, output consumers) are documented in
docs/ARCHITECTURE.md; the checked-in schemas live indocs/schemas/.
β Engagements & RBAC new in 1.11
Run multiple isolated engagements with role-based access control β for teams and concurrent client work. Each engagement has its own scope, audit trail, and report storage; nothing leaks between them.
# create an engagement (optionally with a signed client authorization)
export REDPILOT_AUTH_SIGNING_KEY="β¦" # minting key for authorizations
redpilot engagements --create "Acme Corp" --scope "acme.com,api.acme.com" \
--authorized-by "ciso@acme.com" --retention-days 90
redpilot engagements # list them
Roles β map API keys to a role and the engagements they may touch:
export REDPILOT_PRINCIPALS='{
"LEAD_KEY": {"name":"lead","role":"lead","engagements":["*"]},
"OP_KEY": {"name":"op","role":"operator","engagements":["acme-corp"]},
"VIEW_KEY": {"name":"client","role":"viewer","engagements":["acme-corp"]}
}'
redpilot serve
| Role | Can |
|---|---|
| viewer | read scope, tools, findings, audit |
| operator | + launch scans & active agent runs (in allowed engagements) |
| lead | + manage scope, create engagements, sign authorizations |
Over the API, send X-API-Key (β your role) and X-Engagement: <id> to pick the
workspace. GET /whoami shows your identity; GET/POST /engagements list/create
them. A viewer gets 403 on active endpoints; access outside your granted
engagements is 403; an unknown engagement is 404.
- Signed authorizations β with
REDPILOT_AUTH_SIGNING_KEYset, an engagement's authorization is a tamper-evident HMAC over its id, scope hash, authorizer, and expiry. Editing the stored scope or expiry invalidates it, and active runs are refused without a valid, unexpired signature. - Backwards-compatible β with no
REDPILOT_PRINCIPALSset, your existingREDPILOT_API_KEYSact as all-access leads and a single default engagement is used, so nothing changes until you opt in.
β AI providers
Model routing, caching & budgets (1.7+): the agent routes each task to a model you choose (
REDPILOT_MODEL_PLAN,REDPILOT_MODEL_ANALYZE, β¦, comma-separated for fallbacks), caches responses (REDPILOT_CACHE=offto disable), and bounds each run (REDPILOT_BUDGET_CALLS/REDPILOT_BUDGET_SECONDS). Unset = your provider's default.
Quick Comparison
| Provider | Type | Model | Privacy | Streaming | Best For |
|---|---|---|---|---|---|
| Google Gemini | βοΈ Remote | gemini-2.0-flash | Low | β | Fastest, largest context |
| Anthropic Claude | βοΈ Remote | claude-3-5-sonnet-20241022 | Low | β | Report writing, remediation |
| Ollama | π» Local | auto-detected | β High | β Live | Air-gapped, unlimited usage |
| LM Studio | π» Local | auto-detected | β High | β Live | Private, no data leaves host |
Ollama Setup
# 1. Install Ollama β https://ollama.com
# 2. Pull a model
ollama pull llama3.2
ollama pull qwen2.5-coder # great for exploit/remediation code
# 3. Set in .env
AI_PROVIDER=ollama
OLLAMA_URL=http://localhost:11434/v1 # default, change if remote
OLLAMA_MODEL=llama3.2 # optional β auto-detected if not set
# 4. Test connection
redpilot test-ai
# 5. Use shortcut (tokens stream in real-time)
redpilot ollama "List exploitation paths for open SMB ports"
LM Studio Setup
# 1. Download LM Studio β https://lmstudio.ai
# 2. Load any GGUF model in the app
# 3. Go to: Local Server tab β Start Server
# 4. Set in .env
AI_PROVIDER=lmstudio
LM_STUDIO_URL=http://localhost:1234/v1 # default
LM_STUDIO_MODEL=your-model-name # optional β auto-detected from loaded model
# 5. Test connection
redpilot test-ai
# 6. Use shortcut (tokens stream in real-time)
redpilot lmstudio "Analyze these HTTP headers for security risks"
All AI name variants accepted:
lmstudio,lm-studio,lm_studioall work asAI_PROVIDERvalues.
β Shodan intel
Enrich every redpilot recon scan with passive Shodan intelligence β open ports, org, ISP, and country β without sending any packets to the target.
# 1. Get a free API key β https://account.shodan.io/register
# 2. Add to .env
SHODAN_API_KEY=your_api_key
# 3. Install the Shodan library
pip install shodan
# 4. Run recon β Shodan data is fetched automatically
redpilot recon target.com
β Diff & export
# View scan history to get IDs
redpilot history
# Compare two scans β see what's new, fixed, or unchanged
redpilot diff <older_scan_id> <newer_scan_id>
# Export all findings for a target to CSV (for clients)
redpilot export target.com --format csv
redpilot export target.com --format json --output /tmp/findings.json
β Safety & hardening
RedPilot is authorized-testing-only tooling, built fail-safe. Layered controls:
- Scope enforcement β out-of-scope targets are refused (fail-closed when a scope is set); signed authorizations gate active runs.
- Overly-broad-scan rejection β wildcards,
0.0.0.0/0, and huge CIDRs are refused at the input boundary, so you can't accidentally scan the internet. - RBAC + rate limiting β roles (viewer/operator/lead) and per-key limits
(
429) over the API. - No shell execution of untrusted text β external tools run as argument
lists (never
shell=True), guarded by a destructive-command denylist; AI/target output is sanitized before it's logged, stored, or shown. - Secret redaction β API keys and tokens are scrubbed from every log sink.
- Supply chain β Trivy +
pip-audit+ a CycloneDX SBOM in CI.
# Dry-run the pipeline without touching any target (synthetic findings):
REDPILOT_MOCK=1 redpilot webscan target.com # any module / the agent honor it
REDPILOT_MOCK=1 redpilot agent target.com -y # or over the API: options {"mock": true}
Full detail β assets, trust boundaries, and a per-workflow risk classification β in
docs/THREAT_MODEL.md. Deploy hardening inSECURITY_HARDENING.md.
β Engagement scope
# Initialise scope (creates scope.json in current directory)
redpilot scope add target.com
redpilot scope add 10.0.0.0/24
# View current scope
redpilot scope show
# Remove a target
redpilot scope remove 10.0.0.0/24
# Use a custom scope file
redpilot scope show --file engagement_scope.json
β Project structure
redpilot/
βββ redpilot/
β βββ cli/ # Typer CLI β all commands
β βββ core/ # Async engine & BaseModule
β βββ agent/ # autonomous AI orchestrator (redpilot agent)
β βββ pipeline/ # staged workflow: discoveryβvalidationβremediationβreport
β βββ orchestration/# model router, response cache, run budgets
β βββ modules/ # recon, network, webscan, crawler, toolkit
β βββ service/ # UI-free facade (scope, audit, events) shared by API/MCP
β βββ api/ # FastAPI REST + WebSocket, metrics, dashboard
β βββ mcp/ # MCP server (expose tools) + client (consume servers)
β βββ plugins/ # third-party scan-module SDK + registry
β βββ workspaces/ # multi-engagement workspaces + RBAC + signed auth
β βββ utils/ # AI orchestrator, proxy, risk, validator, scope, logger
β βββ database/ # MongoDB (Motor) / SQLite async backends
β βββ reports/ # HTML & JSON report generator
βββ deploy/ # hardened Docker image + Caddy TLS gateway + compose
βββ tests/ # Pytest test suite
βββ docs/ # roadmap, demo recipe, extra docs
βββ .github/ # CI + release + security workflows, issue/PR templates
βββ Dockerfile # Python 3.12-slim + nmap + Go recon suite
βββ docker-compose.yml # MongoDB 7 + RedPilot with healthcheck
βββ scope.json # Engagement scope (auto-created)
βββ COMMANDS.md # Full command reference
βββ .env.example # Configuration template
β Contributing & releasing
Contributions are welcome β see CONTRIBUTING.md and the Code of Conduct. In short:
pip install -e ".[dev]"
pytest -q # tests
ruff check redpilot tests # lint
python -m build # wheel
CI runs these on every push and pull request. Notable changes go in CHANGELOG.md.
Releasing to PyPI is automated via Trusted Publishing:
tag a version and push, and the Release workflow builds and publishes it.
git tag v1.0.1
git push origin v1.0.1 # β builds, checks, and publishes to PyPI
One-time setup: on PyPI, add a trusted publisher for this repo pointing at the
workflow.ymlworkflow and thepypienvironment.
β Stealth & OpsSec
| Variable | Description |
|---|---|
USE_TOR=true | Route all requests through TOR (socks5://127.0.0.1:9050) |
PROXY_FILE=./proxies.txt | Rotating SOCKS5/HTTP proxy chain file |
RANDOM_USER_AGENT=true | Randomise browser User-Agent per request |
NIST_API_KEY=<key> | NIST NVD API key (10Γ CVE lookup rate β free signup) |
SHODAN_API_KEY=<key> | Passive Shodan intel in recon (free tier available) |
β Support
RedPilot is free and MIT-licensed. If it saves you time, you can support development:
β Legal disclaimer
This tool is intended strictly for authorized security testing, research, and educational purposes only. The developer assumes no liability for any misuse or damage caused. Always obtain explicit written permission from the target organization before conducting any security tests.
Built with π₯ by geevarghesekthomas84-sys
β If you find RedPilot useful, please consider starring the repository β it helps a lot!