FAQ
pownie is a Claude Code plugin with 4 hand-picked skills for security work, indexed on Flowy. Install it with the command on its page. It includes offsec-debrief, offsec-intel-graph, offsec-lead. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Repo: d0gesec/pownie
I vibe-hacked my way to Top #87 Global on Hack The Box. Hall of Fame. Built entirely on Claude Code.
Pownie is the harness that got me there, a Claude Code plugin that wires up persistent intel, lifecycle hooks, and multi-agent coordination for offensive security.
The model already knows how to hack. It doesn't need playbooks, it needs hands and legs that lets its knowledge compound over long engagements. That's what this is.
What it does:
It battle-tested across hundreds of HTB machines over 2 months. From #9000+ to Hall of Fame.
This plugin does not work standalone. It requires a specific MCP server stack to function. Don't worry, just run ./setup.sh and it builds and starts everything for you.
| MCP Server | Purpose | Required |
|---|---|---|
| mcp-kali | Kali Linux command execution, sessions, background tasks, proxy | Yes |
| neo4j-mcp | Knowledge graph for attack state, credentials, attempt tracking | Yes |
| playwright | Browser automation with headed Chromium + noVNC | Optional |
| Component | What It Does |
|---|---|
| Intel Graph | Neo4j-backed knowledge graph โ tracks targets, credentials, services, vulnerabilities, shells, and flags as structured data that survives context compaction |
| Pre/Post Hooks | Automatic tracing on every Kali MCP call โ logs commands to Neo4j, extracts credentials and services from output, surfaces prior attempts before execution |
| Strategic Compaction | Context management for long offsec sessions โ phase-aware compaction with Neo4j state preservation and rich recovery files |
| Multi-Agent Orchestration | Spawns parallel teammates after recon or shell access โ CVE scouts, code analysts, system enumerators working concurrently |
| Debrief & Writeup | Post-challenge writeup generation with structured failure analysis and MEMORY.md updates |
git clone https://github.com/d0gesec/pownie.git
cd pownie
./setup.sh
The setup wizard will:
docker-compose.yml, .mcp.json, and .claude/settings.local.jsonOption A โ Marketplace install:
/plugin marketplace add d0gesec/pownie
/plugin install pownie@d0gesec
Option B โ Direct from cloned repo:
claude --plugin-dir ./pownie
The plugin activates automatically. Skills like the intel graph and strategic compaction work in the background. User-invocable skills:
/pownie:offsec-debrief โ generate writeup after completing a challengeTell Claude the ctf target and the goal. That's it.
CTF target's IP 10.10.11.42. Capture the user flag.
The plugin handles the rest in the background โ hooks fire on every tool call, credentials get extracted automatically, attempts get logged, and the intel graph builds itself as the model works.
After the initial enumeration, kick off the orchestrator to throw multiple approaches at the target in parallel.
/pownie:offsec-lead
This triggers the offsec-lead skill, which spawns 2-3 parallel Agent teammates for CVE scouts, code analysts, system enumerators, each bootstrapping from the same Neo4j intel graph. Same credentials, same disproven attack classes, no duplicate work.
Note: Multi-agent coordination is currently experimental and disabled by default. I usually engage it after the enum stage when there are multiple attack surfaces to explore concurrently.
After capturing flags, generate a structured writeup with failure analysis.
/pownie:offsec-debrief
./setup.sh # interactive โ choose components
./setup.sh --all # everything (browser + telemetry)
./setup.sh --core-only # just kali + neo4j
./setup.sh --bare # bare Kali/Linux mode (no mcp-kali container)
./setup.sh --down # stop containers
./cleanup.sh # stop containers, keep data
./cleanup.sh --volumes # also wipe neo4j data and workspace
./cleanup.sh --full # remove everything including generated files
If you're running Claude Code directly on a Kali/Linux machine instead of through mcp-kali containers:
./setup.sh --bare
This skips the kali container, sets hook matchers to fire on Bash tool calls, and only spins up Neo4j in Docker. You still get the full intel graph, strategic compaction, and all skills.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Claude Code + pownie plugin โ
โ โ
โ skills/ hooks/ .mcp.json โ
โ โโ intel-graph โโ PreToolUse โโ kali (stdio) โ
โ โโ compact โโ PostToolUse โโ neo4j (stdio) โ
โ โโ offsec-lead โโ PreCompact โโ playwright โ
โ โโ debrief (http) โ
โ โโ debrief โ
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโ
โ โ โ
โโโโโโโผโโโโโโ โโโโโโผโโโโโ โโโโโโโโผโโโโโโโ
โ pownie- โ โ pownie- โ โ pownie- โ
โ kali โ โ neo4j โ โ playwright โ
โ โ โ โ โ โ
โ mcp-kali โ โ neo4j โ โ @playwright/ โ
โ server โ โ + mcp โ โ mcp + noVNC โ
โ 1000+ โ โ bolt โ โ โ
โ sec tools โ โ :7687 โ โ :3888 :6080 โ
โโโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโโ
Every Kali MCP tool call flows through the hook pipeline:
PreToolUse (pre-exec.sh) โ queries Neo4j for prior attempts, known credentials, disproven attack classes, and active strategies on the target IP. Surfaces this as context so the agent avoids repeating failed approaches.
Agent executes command via mcp-kali
PostToolUse (post-exec.sh) โ logs the command and result to Neo4j, auto-extracts credentials and services from output, prompts for phase classification, detects shell acquisition and repeated failures.
PreCompact (pre-compact-save.sh) โ before any context compaction, queries Neo4j and writes a rich compact-state.md with targets, credentials, failed attempts, and command history for post-compaction recovery.
pownie/
โโโ .claude-plugin/
โ โโโ plugin.json # plugin manifest
โโโ skills/
โ โโโ offsec-intel-graph/ # neo4j knowledge graph schema + usage
โ โ โโโ preToolUse/pre-exec.sh # pre-execution context retrieval
โ โ โโโ postToolUse/post-exec.sh # post-execution logging + intel extraction
โ โโโ strategy-compact/ # context compaction strategy
โ โ โโโ pre-compact-save.sh # neo4j state snapshot before compaction
โ โโโ offsec-lead/ # multi-agent orchestrator
โ โโโ offsec-debrief/ # writeup generation
โโโ hooks/
โ โโโ hooks.json # event hook wiring
โโโ docker/ # build-from-source Dockerfiles
โ โโโ Dockerfile.kali
โ โโโ Dockerfile.neo4j
โ โโโ Dockerfile.playwright
โ โโโ ...
โโโ setup.sh # interactive setup wizard
โโโ cleanup.sh # teardown script
โโโ LICENSE
โโโ README.md
Generated at runtime by setup.sh (gitignored):
docker-compose.yml.mcp.json.claude/settings.local.jsonEnable the telemetry profile during setup to get Grafana + Tempo for trace visualization. Useful for debugging skills and hooks during development.
./setup.sh # answer 'y' to "Enable trace viewer"
Then open Grafana at http://localhost:3000 โ Explore โ Tempo โ search by service.name = pownie-pre-hook.
The hooks emit OTLP spans for every Kali MCP call regardless โ telemetry just gives you a UI to browse them. Without it, spans are silently dropped with zero impact on functionality.
This project is shared for educational and authorized security testing purposes only. It orchestrates unrestricted command execution inside a Kali Linux container โ use it responsibly and at your own risk. The authors assume no liability for misuse. Always ensure you have proper authorization before testing any target.
MIT
.claude-plugin/
marketplace.json
plugin.json
.gitignore
cleanup.sh
docker/
Dockerfile.kali
Dockerfile.neo4j
Dockerfile.playwright
entrypoint-playwright.sh
grafana/
provisioning/
datasources/
tempo.yaml
supervisord.conf
tempo.yaml
LICENSE
README.md
setup.sh
skills/
offsec-debrief/
SKILL.md
offsec-intel-graph/
postToolUse/
post-exec.sh
preToolUse/
pre-exec.sh
SKILL.md
offsec-lead/
SKILL.md
strategy-compact/
pre-compact-save.sh
SKILL.mdยฉ 2026 Flowy ยท Free and open source
Built for Claude Code ยท Not affiliated with Anthropic