by PlamenTSV
Autonomous Web3 security audit agent for Claude Code
# Add to your Claude Code skills
git clone https://github.com/PlamenTSV/plamenAutonomous smart contract security auditor for Claude Code.
Orchestrates 18-100 AI agents across 8 phases to produce audit reports with verified PoC exploits.
Supports EVM/Solidity, Solana/Anchor, Aptos Move, and Sui Move.
Claude Code CLI, Python 3.11-3.12 + pip, Node.js 18+, Git
macOS: Also run
xcode-select --install(needed for C++ dependency compilation).Windows: Enable Developer Mode before installing (required for symlinks). Settings > System > For Developers > toggle ON. Or in admin PowerShell:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock /v AllowDevelopmentWithoutDevLicense /t REG_DWORD /d 1 /fPer-language tools (Foundry, Solana CLI, etc.) are installed automatically via
plamen setup.
Open Claude Code and paste the contents of SETUP.md. Claude handles cloning, symlink installation, and dependency setup automatically. RAG database is optional and should be built separately via plamen rag in your terminal (requires ~6GB free RAM).
Linux / macOS:
git clone https://github.com/PlamenTSV/plamen.git ~/.plamen
cd ~/.plamen && python3 plamen.py install
No comments yet. Be the first to share your thoughts!
Windows (PowerShell):
git clone https://github.com/PlamenTSV/plamen.git $HOME\.plamen
cd $HOME\.plamen; python plamen.py install
Before building the RAG database: add
SOLODIT_API_KEYto~/.claude/settings.json→"env"section (free key from solodit.cyfrin.io). This is the only place the key is reliably visible to bothplamen ragand audit agent subprocesses. A terminalexportis not sufficient — Claude Code spawns non-interactive subshells that don't source.bashrc/.zshrc.Python dependencies are installed automatically on first run. On macOS/Linux use
python3, on Windows usepython.
After install, add to PATH so you can run plamen from anywhere:
Linux (bash):
echo 'export PATH="$HOME/.plamen:$PATH"' >> ~/.bashrc && source ~/.bashrc
macOS (zsh):
echo 'export PATH="$HOME/.plamen:$PATH"' >> ~/.zshrc && source ~/.zshrc
Windows (PowerShell, one-time):
[System.Environment]::SetEnvironmentVariable("Path", "$env:USERPROFILE\.plamen;" + [System.Environment]::GetEnvironmentVariable("Path", "User"), "User")
Then use plamen from anywhere:
plamen # interactive wizard
plamen setup # install tools + build RAG
plamen rag # rebuild RAG database only
plamen uninstall # remove Plamen from ~/.claude
Important: Always use
plamen(notpython3 plamen.py) after PATH is set. Thepython3 plamen.pyform only works from inside~/.plamen/.
The installer:
~/.plamen into ~/.claude/ so Claude Code discovers Plamen's agents, rules, prompts, and commandssettings.json (additive only — won't remove your entries)mcp.json (won't overwrite your existing servers)~/.claude/hooks/ and merges hook triggers into settings.jsonCLAUDE.md between <!-- PLAMEN:START/END --> markers (preserves your content)plamen rag)Your existing Claude Code configuration is preserved.
The Plamen repo stays at ~/.plamen. The installer creates symlinks (shortcuts) in ~/.claude/ that point back to ~/.plamen/. When Claude Code reads ~/.claude/agents/depth-edge-case.md, the OS transparently reads ~/.plamen/agents/depth-edge-case.md. This means:
git pull in ~/.plamen updates symlinked files (agents, rules, skills, prompts) automaticallyplamen install after pull — CLAUDE.md, settings.json, and mcp.json are injected/merged copies, not symlinks. Without re-install, the orchestrator follows stale rules. See docs/updating.md.~/.claude/ (custom agents, commands, hooks) are untouched~/.plamen would break the symlinks — don't delete it while Plamen is installed| Platform | How links are created | Requirements |
|----------|----------------------|-------------|
| Linux / macOS | Standard symlinks (os.symlink) | None |
| Windows (directories) | Junctions (mklink /J) | None |
| Windows (files) | Symlinks (os.symlink) | Developer Mode enabled |
Migrating from v1.0.x (installed directly in
~/.claude): Close Claude Code first, then run both commands together:Linux/macOS:
mv ~/.claude ~/.plamen && cd ~/.plamen && python3 plamen.py installWindows (PowerShell):
Rename-Item $HOME\.claude $HOME\.plamen; cd $HOME\.plamen; python plamen.py installThis moves the repo to
~/.plamenand immediately recreates~/.claudewith symlinks + merged config. Claude Code will not work between the move and install — run them together.
Option B handles this automatically. These commands are for reference only.
cd ~/.plamen
# 1. Python deps (~2GB download — PyTorch for embeddings)
pip install -r requirements.txt
pip install -r custom-mcp/unified-vuln-db/requirements.txt
pip install -e custom-mcp/solana-fender
pip install -r custom-mcp/farofino-mcp/requirements.txt
pip install -e custom-mcp/slither-mcp # EVM only (needs Python 3.11+)
# 2. Build RAG database (~5 min)
export SOLODIT_API_KEY=your_key_here # free at solodit.cyfrin.io
cd custom-mcp/unified-vuln-db
python3 -m unified_vuln.indexer index -s solodit --max-pages 10
python3 -m unified_vuln.indexer index -s defihacklabs
python3 -m unified_vuln.indexer index -s immunefi
python3 -m unified_vuln.indexer index -s immunefi-competitions
cd ../..
# Note: on Windows use 'python' instead of 'python3'
# 3. Chain tools (install what you need)
curl -L https://foundry.paradigm.xyz | bash && foundryup # EVM
pip install slither-analyzer # EVM static analysis
# See docs/setup.md for Solana, Aptos, Sui, Medusa, Trident
Windows + Solana: Enable Developer Mode (Settings > System > For Developers) and install OpenSSL (
winget install ShiningLight.OpenSSL.Dev) before building. See docs/dependencies.md.
See docs/setup.md for the full guide with all per-language prerequisites.
cd ~/.plamen && git pull && plamen install
That's it. plamen install is idempotent — it re-links symlinks, re-injects the updated CLAUDE.md, and merges any new config entries. It does not wipe your RAG database, re-install toolchains, or overwrite your API keys.
Why
plamen installafter pull? Most files auto-update via symlinks, but~/.claude/CLAUDE.md(the orchestrator's rules) is injected between markers — not symlinked. Without re-install, the orchestrator follows stale rules while everything else is updated.plamenwill warn you if it detects a version mismatch.
See docs/updating.md for details on what updates automatically and what doesn't.
plamen # terminal wrapper with interactive wizard
Or inside Claude Code: /plamen
| Mode | Plan | Agents | Key Features | |------|------|--------|-------------| | Light | Pro | ~18-22 | Fast scan, all Sonnet, no fuzzing | | Core | Max | ~30-50 | Full depth, PoC verification for Medium+ | | Thorough | Max | ~40-100 | Iterative depth, invariant fuzzing, Medusa, skeptic-judge |
See docs/audit-modes.md for the full comparison.
Terminal wrapper (recommended — includes setup, cost estimation):
plamen # interactive wizard
plamen core /path/to/project # skip wizard
plamen thorough /path/to/project --proven-only # strict evidence mode
plamen setup # install tools only
Inside Claude Code:
> /plamen core
> /plamen thorough docs: whitepaper.pdf scope: scope.txt
See docs/usage.md for PATH setup and all CLI options.
| Language | Build Tool | Static Analysis | Fuzzing | |----------|-----------|----------------|---------| | EVM/Solidity | Foundry, Hardhat | Slither, Aderyn | Foundry invariant, Medusa | | Solana/Anchor | Anchor, cargo-build-sbf | Fender | Trident, proptest | | Aptos Move | aptos CLI | Move Prover | Parameterized tests | | Sui Move | sui CLI | -- | Parameterized tests |
Language detection is automatic based on config files.
| Topic | Link | |-------|------| | Full setup guide | docs/setup.md | | Updating after git pull | docs/updating.md | | Platform dependencies | docs/dependencies.md | | Audit mode comparison | docs/audit-modes.md | | Pipeline architecture | docs/architecture.md | | MCP servers & API keys | docs/mcp-servers.md | | Usage & CLI options | docs/usage.md | | Skills, rules & internals | docs/internals.md | | Repository structure | docs/repository-structure.md | | Automated setup (Claude) | [S