Professional AI-Powered Penetration Testing Framework
Autonomous security assessment powered by state-of-the-art language models
Features โข Quick Start โข Architecture โข Pipelines โข Security โข Docs
Zen-AI-Pentest is an autonomous, AI-driven penetration testing framework that combines cutting-edge large language models with 72+ professional security tools. Built for security professionals, bug bounty hunters, and enterprise red teams.
%%{init: {'theme': 'base', 'themeVariables': { 'background': '#0d1117', 'primaryColor': '#58a6ff', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'primaryBorderColor': '#58a6ff', 'secondaryBorderColor': '#30363d', 'tertiaryBorderColor': '#30363d', 'lineColor': '#58a6ff', 'fontSize': '14px', 'fontFamily': '-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif', 'textColor': '#ffffff', 'primaryTextColor': '#ffffff', 'secondaryTextColor': '#ffffff', 'tertiaryTextColor': '#ffffff', 'mainBkg': '#0d1117', 'nodeBorder': '#58a6ff', 'clusterBorder': '#30363d', 'clusterBkg': '#161b22', 'titleColor': '#ffffff' }}}%%
graph TB
subgraph "๐ Client Interface"
WebUI["React Dashboard<br/>Cloudflare Pages"]
CLI["Python CLI"]
API["REST API + WebSocket"]
end
subgraph "โก API Gateway"
FastAPI["FastAPI Server"]
Auth["JWT / RBAC Auth"]
WsMgr["WebSocket Manager"]
end
subgraph "๐ง AI Orchestrator"
AgentMgr["Agent Manager"]
Guardrails["๐ก๏ธ Guardrails<br/>IP/Domain Filter"]
TaskQ["๐ Task Queue"]
Risk["โ ๏ธ Risk Levels 0-3"]
State["๐ State Machine<br/>ReAct Pattern"]
end
subgraph "๐ค Agent Pool"
A1["Agent #1<br/>Recon"]
A2["Agent #2<br/>Exploit"]
A3["Agent #3<br/>Report"]
AN["Agent #N<br/>Custom"]
end
subgraph "๐ง Security Toolkit"
Nmap["nmap ยท masscan"]
Web["nuclei ยท sqlmap ยท zap ยท ffuf"]
Exploit["Metasploit ยท SearchSploit"]
Recon["amass ยท subfinder ยท httpx"]
AD["BloodHound ยท NetExec"]
OSINT["sherlock ยท theHarvester"]
end
subgraph "๐ Analysis & Reporting"
Evidence["๐ Evidence Collection<br/>Cryptographic Signatures"]
Attack["๐บ๏ธ Attack Path Analysis<br/>Cytoscape.js Graphs"]
Report["๐ Report Generator<br/>PDF ยท HTML ยท DOCX ยท JSON"]
Compliance["๐ Compliance Mapping<br/>ISO 27001 ยท PCI DSS ยท NIST"]
RiskScoring["๐ฏ Risk Scoring<br/>CVSS ยท EPSS ยท Bayesian Filter"]
end
subgraph "๐พ Data Layer"
PG[("๐ PostgreSQL<br/>Persistent State")]
Redis[("โก Redis<br/>Cache & Queue")]
FS[("๐ File Storage<br/>Reports & Evidence")]
end
WebUI --> FastAPI
CLI --> FastAPI
API --> FastAPI
FastAPI --> Auth
Auth --> AgentMgr
AgentMgr --> Guardrails
Guardrails --> TaskQ
TaskQ --> Risk
Risk --> State
State --> A1 & A2 & A3 & AN
A1 --> Nmap & Recon
A2 --> Web & Exploit
A3 --> AD & OSINT
AN --> Nmap & Web
Nmap --> Evidence
Web --> Attack
Exploit --> Evidence
Attack --> Report
State --> Report
Report --> Compliance
Report --> RiskScoring
Evidence --> PG
Attack --> PG
Compliance --> PG
RiskScoring --> Redis
Report --> FS
|
|
|
|
|
|
| Category | Tools |
|---|---|
| Network Scanning | nmap ยท masscan ยท scapy ยท tshark ยท tcpdump ยท netdiscover ยท arp-scan |
| Web Security | BurpSuite ยท SQLMap ยท Gobuster ยท OWASP ZAP ยท FFuF ยท Nikto ยท WAFW00F ยท WhatWeb ยท Nuclei |
| Exploitation | Metasploit Framework ยท SearchSploit |
| Brute Force | Hydra ยท Hashcat ยท John ยท Ncrack |
| Reconnaissance | Amass ยท Nuclei ยท TheHarvester ยท Subfinder ยท HTTPX ยท Sherlock ยท Scout |
| Active Directory | BloodHound ยท NetExec ยท Responder ยท ldapsearch ยท enum4linux |
| OSINT | Sherlock ยท Ignorant ยท TheHarvester ยท Scout |
| Code Analysis | Semgrep ยท TruffleHog ยท Gitleaks ยท Bandit |
| Container | Trivy ยท Docker ยท Kubectl |
| Wireless | Aircrack-ng ยท airmon-ng ยท airodump-ng ยท aireplay-ng |
| System | Netcat ยท Socat ยท OpenSSL ยท Proxychains ยท Tor |
8 MCP servers for AI-tool integration, registered in opencode.jsonc:
| Server | Purpose | Tools |
|---|---|---|
omni-ai |
AI chat via OmniRoute (free models) | chat, stream, vision, web_extract, list_models |
qterminal |
Shell/Docker orchestration | spawn, exec, kill, network, images, agents |
zen-agents |
11-agent orchestration | agent_run, workflow_create, full_audit, agent_list |
metasploit |
Metasploit RPC connector | module_search, module_execute, session_list |
vpn-killswitch |
Connection-loss failover | check, rotate, status, set_proxy, history |
obscura |
Encrypted secret vault | store, get, list, delete, init, export |
ip-tracker |
Visitor IP tracking | check_visitors, resolve_ip, my_public_ip |
| Type | Count | Description |
|---|---|---|
| Framework | 5 | zen-framework, agents-usage, tools, risk-engine, workflow |
| Platform | 9 | devops-docker, ci-cd, rag-vector, browser-automation, multi-language, security-review, bash, ai-delegation, solidity |
| Tools | 39 | nmap, masscan, nuclei, sqlmap, metasploit, ffuf, gobuster, bloodhound, hydra, zap, nikto, amass, subfinder, sherlock, trivy, semgrep, burpsuite, etc. |
| Modules | 42 | exploit modules (xss, sqli, ssrf, lfi, deserialization), osint modules (dns, email, whois, cert), scanners, reporting |
- E2E encrypted via
@whiskeysockets/baileys(QR code pairing) /ask <prompt>โ AI-powered security Q&A via OmniRoute/voice <text>โ TTS response via edge-tts + ffmpeg- QR displayed in web UI at
http://localhost:8080/qr.html
Automatic connection-loss detection and VPN rotation:
- Detects: 429 (rate limit), 5xx (server error), timeouts, connection refused
- Supports: WireGuard and SOCKS5 proxy
- Auto-rotates VPN endpoint on failure
- Configurable check interval (default: 15s)
git clone https://github.com/SHAdd0WTAka/zen-ai-pentest.git
cd zen-ai-pentest
cp .env.example .env
# Edit .env: set OPENCODE_API_KEY=oc_xxx
docker compose up -d
|
pip install -r requirements.txt
python database/models.py
python api/main.py
# Subdomain scanner
python scan_target_subdomains.py example.com
# Advanced CLI
python tools/subdomain_enum.py example.com --advanced |
||||||||||
# 11 specialized agent personas
deep-recon --target example.com
deep-exploit --target example.com --force
deep-audit --target example.com --phases recon,scan,exploit,report
deep-report --scan-id wf-abc123 --format pdf |
# QR pairing in browser
open http://localhost:8080/qr.html
# Commands:
/ask Scan example.com and find vulnerabilities
/voice Describe the OWASP Top 10 |
from agents.react_agent import ReActAgent, ReActAgentConfig
config = ReActAgentConfig(max_iterations=10, use_vm=True)
agent = ReActAgent(config)
result = agent.run(target="example.com", objective="Comprehensive security assessment")
print(agent.generate_report(result))# Auth
curl -X POST http://localhost:8000/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin"}'
# Create scan
curl -X POST http://localhost:8000/scans \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Network Scan","target":"192.168.1.0/24","scan_type":"network"}'
# Execute tool
curl -X POST http://localhost:8000/tools/execute \
-H "Authorization: Bearer $TOKEN" \
-d '{"tool_name":"nmap_scan","target":"scanme.nmap.org","parameters":{"ports":"22,80,443"}}'
# Generate report
curl -X POST http://localhost:8000/reports \
-H "Authorization: Bearer $TOKEN" \
-d '{"scan_id":1,"format":"pdf","template":"default"}'const ws = new WebSocket("ws://localhost:8000/ws/scans/1");
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log("Scan update:", data);
};%%{init: {'theme': 'base', 'themeVariables': { 'background': '#0d1117', 'primaryColor': '#58a6ff', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'primaryBorderColor': '#58a6ff', 'secondaryBorderColor': '#30363d', 'tertiaryBorderColor': '#30363d', 'lineColor': '#58a6ff', 'fontSize': '14px', 'fontFamily': '-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif', 'textColor': '#ffffff', 'primaryTextColor': '#ffffff', 'secondaryTextColor': '#ffffff', 'tertiaryTextColor': '#ffffff', 'mainBkg': '#0d1117', 'nodeBorder': '#58a6ff', 'clusterBorder': '#30363d', 'clusterBkg': '#161b22', 'titleColor': '#ffffff' }}}%%
graph LR
subgraph "Client"
WEB["๐ Web UI<br/>React ยท Cloudflare"]
CLI["๐ป CLI ยท Python"]
API_CLIENT["๐ REST Client"]
end
subgraph "API Gateway"
FASTAPI["FastAPI + WebSocket"]
AUTH["๐ JWT/RBAC"]
WS["๐ก WebSocket"]
end
subgraph "Orchestrator"
G["๐ก๏ธ Guardrails"]
TQ["๐ Task Queue"]
RL["โ ๏ธ Risk 0-3"]
SM["๐ State Machine"]
end
subgraph "Agents"
A1["๐ค Agent Pool<br/>Docker Sandbox"]
end
subgraph "Tools"
TOOLS["๐ง 72+ Tools<br/>nmap ยท nuclei ยท sqlmap<br/>metasploit ยท burp ยท hydra"]
end
subgraph "Analysis"
EV["๐ Evidence"]
AP["๐บ๏ธ Attack Path"]
CC["๐ Chain of Custody"]
COMP["๐ Compliance"]
REP["๐ Reports"]
RS["๐ฏ Risk Scoring"]
end
subgraph "Data"
PG[("๐ PostgreSQL")]
RD[("โก Redis")]
FS[("๐ File Store")]
end
WEB --> FASTAPI
CLI --> FASTAPI
API_CLIENT --> FASTAPI
FASTAPI --> AUTH
AUTH --> WS
WS --> G
G --> TQ --> RL --> SM
SM --> A1
A1 --> TOOLS
TOOLS --> EV & AP
SM --> REP
EV --> CC
AP --> COMP
CC --> RS
EV --> PG
AP --> PG
COMP --> PG
RS --> RD
REP --> FS
%%{init: {'theme': 'base', 'themeVariables': { 'background': '#0d1117', 'primaryColor': '#58a6ff', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'primaryBorderColor': '#58a6ff', 'secondaryBorderColor': '#30363d', 'tertiaryBorderColor': '#30363d', 'lineColor': '#58a6ff', 'fontSize': '14px', 'fontFamily': '-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif', 'textColor': '#ffffff', 'primaryTextColor': '#ffffff', 'secondaryTextColor': '#ffffff', 'tertiaryTextColor': '#ffffff', 'mainBkg': '#0d1117', 'nodeBorder': '#58a6ff', 'clusterBorder': '#30363d', 'clusterBkg': '#161b22', 'titleColor': '#ffffff' }}}%%
graph TB
subgraph "๐ User Interface"
WEB["Web Terminal :8080"]
CLI["CLI deep-*"]
WA["WhatsApp Bot"]
API["REST API :8000"]
end
subgraph "๐ง AI Inference"
OR["OmniRoute Proxy :20128"]
FREE["oc/deepseek-v4-flash-free"]
PAID["oc/gpt-4o ยท claude-3 ยท llama-3"]
HA["Hermes Agent v0.15.2<br/>95 skills ยท agency-agents"]
end
subgraph "๐ MCP Servers"
OA["omni-ai<br/>chat+vision+tools"]
QT["qterminal<br/>shell+docker"]
ZA["zen-agents<br/>11 agents"]
MS["metasploit<br/>MSF RPC"]
VK["vpn-killswitch<br/>failover"]
OB["obscura<br/>vault"]
IT["ip-tracker<br/>geo+visitors"]
end
subgraph "๐ค Agent Pool (ReAct Loop)"
coord["AgentCoordinator<br/>IDLEโPLANNINGโEXECUTINGโ<br/>OBSERVINGโREFLECTINGโCOMPLETED"]
guard["Guardrails<br/>IP blocking ยท Risk 0-3 ยท Timeout"]
A1["Recon"]
A2["Exploit"]
A3["Analysis"]
A4["RedTeam"]
A5["Social ยท Network ยท Cloud<br/>ICS ยท Mobile ยท Crypto ยท Report"]
end
subgraph "๐ง Security Toolkit"
TOOLS["72+ Tools<br/>nmap ยท masscan ยท nuclei ยท sqlmap ยท metasploit<br/>ffuf ยท gobuster ยท hydra ยท bloodhound<br/>responder ยท amass ยท subfinder ยท trivy<br/>semgrep ยท trufflehog ยท zap ยท nikto ยท burpsuite"]
end
WEB & CLI & WA & API --> OR
OR --> FREE & PAID
FREE & PAID --> HA
HA --> OA & QT & ZA & MS & VK & OB & IT
OA & QT & ZA & MS & VK & OB & IT --> coord
coord --> guard
guard --> A1 & A2 & A3 & A4 & A5
A1 & A2 & A3 & A4 & A5 --> TOOLS
All pipeline diagrams use Mermaid โ rendered automatically by GitHub.
%%{init: {'theme': 'base', 'themeVariables': { 'background': '#0d1117', 'primaryColor': '#3fb950', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'primaryBorderColor': '#3fb950', 'secondaryBorderColor': '#30363d', 'tertiaryBorderColor': '#30363d', 'lineColor': '#3fb950', 'fontSize': '14px', 'fontFamily': '-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif', 'textColor': '#ffffff', 'primaryTextColor': '#ffffff', 'secondaryTextColor': '#ffffff', 'tertiaryTextColor': '#ffffff', 'mainBkg': '#0d1117', 'nodeBorder': '#3fb950', 'clusterBorder': '#30363d', 'clusterBkg': '#161b22', 'titleColor': '#ffffff' }}}%%
graph LR
TRIG1["push main/develop"] --> TEST
TRIG2["pull_request main/develop"] --> TEST
TRIG3["workflow_dispatch"] --> TEST
TEST["๐งช test (matrix 3.11, 3.12)<br/>pytest ยท 43k+ tests"] --> RESULT["โ
Test Summary"]
style TEST fill:#3fb950,stroke:#1a7f37,color:#fffffffff
%%{init: {'theme': 'base', 'themeVariables': { 'background': '#0d1117', 'primaryColor': '#3fb950', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'primaryBorderColor': '#3fb950', 'secondaryBorderColor': '#30363d', 'tertiaryBorderColor': '#30363d', 'lineColor': '#3fb950', 'fontSize': '14px', 'fontFamily': '-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif', 'textColor': '#ffffff', 'primaryTextColor': '#ffffff', 'secondaryTextColor': '#ffffff', 'tertiaryTextColor': '#ffffff', 'mainBkg': '#0d1117', 'nodeBorder': '#3fb950', 'clusterBorder': '#30363d', 'clusterBkg': '#161b22', 'titleColor': '#ffffff' }}}%%
graph LR
TRIG1["pull_request"] --> COV
TRIG2["workflow_dispatch"] --> COV
COV["๐ coverage<br/>pytest --cov=core,agents,api,tools<br/>autonomous,risk_engine,modules,web_ui"] --> UPLOAD["๐ค Upload to Codecov"]
COV --> ARTIFACT["๐ฆ Upload artifact"]
COV --> PR["๐ฌ Comment PR"]
style COV fill:#3fb950,stroke:#1a7f37,color:#fffffffff
%%{init: {'theme': 'base', 'themeVariables': { 'background': '#0d1117', 'primaryColor': '#f85149', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'primaryBorderColor': '#f85149', 'secondaryBorderColor': '#30363d', 'tertiaryBorderColor': '#30363d', 'lineColor': '#f85149', 'fontSize': '14px', 'fontFamily': '-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif', 'textColor': '#ffffff', 'primaryTextColor': '#ffffff', 'secondaryTextColor': '#ffffff', 'tertiaryTextColor': '#ffffff', 'mainBkg': '#0d1117', 'nodeBorder': '#f85149', 'clusterBorder': '#30363d', 'clusterBkg': '#161b22', 'titleColor': '#ffffff' }}}%%
graph TB
TRIG1["pull_request main/develop"] --> SEC
TRIG2["schedule daily 6am"] --> SEC
TRIG3["workflow_dispatch"] --> SEC
subgraph SEC["๐ Security Scan"]
DEP["๐ฆ Dependency Scan<br/>Safety ยท pip-audit"]
SECRET["๐ Secret Detection<br/>TruffleHog ยท GitLeaks ยท GitGuardian"]
SAST["๐ SAST Analysis<br/>Bandit ยท Semgrep"]
IAC["๐๏ธ IaC Scan<br/>Checkov ยท Trivy Config"]
SCORE["๐ OSSF Scorecard"]
end
DEP --> SUMMARY["๐ Security Summary"]
SECRET --> SUMMARY
SAST --> SUMMARY
IAC --> SUMMARY
SCORE --> SUMMARY
SAST --> SARIF1["๐ Upload Semgrep SARIF"]
IAC --> SARIF2["๐ Upload Checkov SARIF"]
IAC --> SARIF3["๐ Upload Trivy SARIF"]
SCORE --> SARIF4["๐ Upload Scorecard SARIF"]
DEP --> ART1["๐ฆ Upload Reports"]
%%{init: {'theme': 'base', 'themeVariables': { 'background': '#0d1117', 'primaryColor': '#58a6ff', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'primaryBorderColor': '#58a6ff', 'secondaryBorderColor': '#30363d', 'tertiaryBorderColor': '#30363d', 'lineColor': '#58a6ff', 'fontSize': '14px', 'fontFamily': '-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif', 'textColor': '#ffffff', 'primaryTextColor': '#ffffff', 'secondaryTextColor': '#ffffff', 'tertiaryTextColor': '#ffffff', 'mainBkg': '#0d1117', 'nodeBorder': '#58a6ff', 'clusterBorder': '#30363d', 'clusterBkg': '#161b22', 'titleColor': '#ffffff' }}}%%
graph LR
TRIG["schedule weekly Sunday"] --> CQL
subgraph CQL["CodeQL Advanced"]
CHECKOUT["๐ฅ Checkout"]
INIT["โ๏ธ Initialize CodeQL<br/>security-extended + security-and-quality"]
BUILD["๐จ Autobuild"]
ANALYZE["๐ฌ Perform Analysis"]
end
CQL --> RES["โ
SARIF Results"]
%%{init: {'theme': 'base', 'themeVariables': { 'background': '#0d1117', 'primaryColor': '#d29922', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'primaryBorderColor': '#d29922', 'secondaryBorderColor': '#30363d', 'tertiaryBorderColor': '#30363d', 'lineColor': '#d29922', 'fontSize': '14px', 'fontFamily': '-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif', 'textColor': '#ffffff', 'primaryTextColor': '#ffffff', 'secondaryTextColor': '#ffffff', 'tertiaryTextColor': '#ffffff', 'mainBkg': '#0d1117', 'nodeBorder': '#d29922', 'clusterBorder': '#30363d', 'clusterBkg': '#161b22', 'titleColor': '#ffffff' }}}%%
graph TB
TRIG1["release published"] --> DEPLOY
TRIG2["workflow_dispatch staging/prod"] --> DEPLOY
subgraph DEPLOY["Deploy Pipeline"]
CHECK["โ
pre-deploy-check<br/>pytest + bandit"]
STAGE["๐งช deploy-staging<br/>staging.pentest.example.com"]
PROD["๐ deploy-production<br/>pentest.example.com"]
end
CHECK --> STAGE
STAGE --> PROD
PROD --> SLACK["๐ฌ Notify Slack"]
CHECK --> SUM["๐ deploy-summary"]
STAGE --> SUM
PROD --> SUM
%%{init: {'theme': 'base', 'themeVariables': { 'background': '#0d1117', 'primaryColor': '#bc8cff', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'primaryBorderColor': '#bc8cff', 'secondaryBorderColor': '#30363d', 'tertiaryBorderColor': '#30363d', 'lineColor': '#bc8cff', 'fontSize': '14px', 'fontFamily': '-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif', 'textColor': '#ffffff', 'primaryTextColor': '#ffffff', 'secondaryTextColor': '#ffffff', 'tertiaryTextColor': '#ffffff', 'mainBkg': '#0d1117', 'nodeBorder': '#bc8cff', 'clusterBorder': '#30363d', 'clusterBkg': '#161b22', 'titleColor': '#ffffff' }}}%%
graph TB
TRIG["workflow_dispatch<br/>version + prerelease"] --> PRE
PRE["๐ pre-release-checks<br/>version ยท changelog"] --> BUILD
PRE --> CHLOG["๐ changelog"]
PRE --> REL["๐ท๏ธ github-release"]
BUILD["๐ฆ build<br/>python -m build ยท twine"] --> REL
REL --> PYPI["โฌ๏ธ pypi-publish<br/>twine upload"]
REL --> DOCKER["๐ณ docker build & push<br/>ghcr.io ยท amd64 + arm64"]
REL --> DOCS["๐ docs<br/>mkdocs ยท mkdocs-material"]
PYPI --> POST["๐ฌ post-release<br/>discussion ยท milestone"]
DOCKER --> NOTIFY["๐ notify<br/>Slack + Discord"]
DOCKER --> SUMMARY["๐ release-summary"]
PYPI --> NOTIFY
PYPI --> SUMMARY
%%{init: {'theme': 'base', 'themeVariables': { 'background': '#0d1117', 'primaryColor': '#8b949e', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'primaryBorderColor': '#8b949e', 'secondaryBorderColor': '#30363d', 'tertiaryBorderColor': '#30363d', 'lineColor': '#8b949e', 'fontSize': '14px', 'fontFamily': '-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif', 'textColor': '#ffffff', 'primaryTextColor': '#ffffff', 'secondaryTextColor': '#ffffff', 'tertiaryTextColor': '#ffffff', 'mainBkg': '#0d1117', 'nodeBorder': '#8b949e', 'clusterBorder': '#30363d', 'clusterBkg': '#161b22', 'titleColor': '#ffffff' }}}%%
graph TB
TRIG["workflow_dispatch"] --> CI
subgraph CI["CI Pipeline (Legacy)"]
T["๐งช test<br/>matrix 3.10 ยท 3.11 ยท 3.12"]
L["โจ lint<br/>black ยท isort ยท flake8 ยท ruff"]
S["๐ security-scan<br/>bandit ยท safety"]
end
T --> CG["๐ coverage-gate<br/>check >= 80%"]
T --> SUM["๐ ci-summary"]
L --> SUM
S --> SUM
CG --> SUM
| Metric | Value | Status |
|---|---|---|
| Test Files | 1,145+ | โ |
| Total Tests | 43,000+ | โ Verified |
| Coverage | ~10% | |
| Target | 80%+ | ๐ฏ Goal |
# All tests
pytest tests/ -v
# With coverage
pytest tests/ --cov=. --cov-report=html --cov-report=term
# Unit tests
pytest tests/unit/ -v
# Integration
pytest tests/integration/ -v
# Security
pytest tests/security/ -v
# Exclude slow
pytest tests/ -m "not slow" -v- โ Private IP Blocking: Prevents scanning 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
- โ Loopback Protection: Blocks 127.x.x.x and ::1
- โ Local Domain Filter: Prevents .local, .internal, localhost
- โ Risk Level Control: Restricts tools by safety level (0-3)
- โ Rate Limiting: Prevents abuse
| Level | Description | Tools |
|---|---|---|
| SAFE (0) | Recon only | whois, dns, subdomain |
| NORMAL (1) | Standard scanning | + nmap, nuclei |
| ELEVATED (2) | Light exploitation | + sqlmap, exploit |
| AGGRESSIVE (3) | Full exploitation | + pivot, lateral |
bash mcp/obsidian/setup.sh
code ~/Documents/Obsidian\ Vault/Secrets/secrets.yamlcp .env.example .env
nano .env
source .envzen-ai-pentest/
โโโ api/ # FastAPI Backend
โโโ agents/ # AI Agent Implementations
โ โโโ react_agent.py # Core ReAct pattern agent (ReasonโActโObserveโReflect)
โ โโโ agent_coordinator_v3.py # Multi-agent workflow engine (11 personas)
โ โโโ guardrails.py # IP/Domain/risk-level safety filters
โ โโโ cli/ # CLI tools: deep-recon, deep-exploit, deep-report, deep-audit
โโโ core/ # Framework Core
โโโ tools/ # 72+ Security Tool Integrations
โโโ risk_engine/ # Risk Analysis (CVSS, EPSS, false positive detection)
โโโ modules/ # High-Level Modules (exploit, osint, scanners, reporting)
โ โโโ tool_orchestrator.py # Integration Bridge for containerized tools
โ โโโ exploit_modules/ # Auth bypass, command injection, deserialization, SSRF, XSS, XXE, SQLi
โ โโโ osint_modules/ # Cert transparency, DNS enum, email harvester, whois
โโโ mcp/ # MCP Servers (8 total)
โ โโโ omni-ai/ # AI chat via OmniRoute proxy
โ โโโ qterminal/ # Shell + Docker orchestration
โ โโโ zen-agents/ # 11-agent orchestration
โ โโโ metasploit/ # Metasploit RPC connector
โ โโโ vpn-killswitch/ # Connection-loss VPN rotation
โ โโโ obscura/ # Encrypted secret vault
โ โโโ ip-tracker/ # Visitor IP tracking
โโโ skills/ # 95 Hermes-compatible skills (tool-specific SKILL.md)
โ โโโ tool-*/ # 39 tool skills (nmap, sqlmap, nuclei, etc.)
โ โโโ module-*/ # 42 module skills (xss, sqli, osint, etc.)
โ โโโ zen-*/ # 5 framework skills (architecture, agents, workflow)
โโโ web_ui/ # Frontend
โ โโโ terminal/ # WebShell (FastAPI + PTY over WebSocket + Cloudflare tunnel)
โ โ โโโ server.py # Terminal server with 2FA auth
โ โ โโโ static/ # login.html, qr.html (WhatsApp pairing)
โ โ โโโ Dockerfile
โ โโโ whatsapp-bot/ # E2E WhatsApp bot (Baileys + /ask AI + /voice TTS)
โ โโโ dashboard/ # React ยท Vite ยท TypeScript
โโโ docker/ # Dockerfiles
โ โโโ hermes/ # Hermes Agent container
โ โโโ omniroute/ # OmniRoute API proxy
โ โโโ vpn-proxy/ # VPN proxy container
โโโ database/ # PostgreSQL Models
โโโ reports/ # PDF ยท HTML ยท DOCX Generator
โโโ docker-compose.yml # 6 services (terminal, whatsapp, omniroute, hermes, vpn, wg)
โโโ opencode.jsonc # OpenCode config with all 8 MCP servers
โโโ .opencode/agents/ # 267 agent prompt files
โโโ tests/ # 43,000+ Tests
โโโ docs/ # Documentation
| Document | Description |
|---|---|
| Architecture | Complete system design |
| API Reference | REST + WebSocket endpoints |
| Installation | Docker ยท Local ยท Production |
| Docker Guide | Deployment & configuration |
| Security Audit | Security assessment |
| Agent Guide | AI development partner guide |
| Benchmarks | Performance results |
| Roadmap 2026 | Future plans |
| Platform | Link |
|---|---|
| ๐ฎ Discord | discord.gg/zJZUJwK9AC |
| ๐ GitHub | github.com/SHAdd0WTAka/Zen-Ai-Pentest |
| ๐ Website | zen-ai-pentest.pages.dev |
| ๐ Dashboard | live dashboard |
๐ฑ Scan QR codes for instant mobile access
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
See CONTRIBUTING.md and CODE_OF_CONDUCT.md.
@SHAdd0WTAka Founder ยท Lead Developer |
Kimi AI AI Development Partner |
MIT License โ see LICENSE.