An open source plugin for enabeling claude to gain offensive pentesting capabilities
> /plugin marketplace add Stickman230/claude-pentest> /plugin install pentest@claude-pentest
Repo: Stickman230/claude-pentest
What's inside
For authorized security testing only. Always obtain written permission before testing any system you do not own.
claude-pentest is a Claude Code plugin that gives Claude structured penetration testing capabilities. It is not a script or scanner, it is an agent coordination framework: the /pentest:pentest command coordinates the engagement from the main session — it runs reconnaissance, asks a planner agent for a deployment plan, then deploys specialized executor agents (each following a strict 4-phase workflow) in parallel, spending the time budget on escalation, and requiring operator approval before any active exploitation begins. Every finding ships with a working PoC, captured HTTP evidence, and a Playwright screenshot.
Key principles:
poc.py and poc_output.txtoutputs/{engagement}/First Add Marketplace
# Add marketplace from inside claude code
/plugin marketplace add Stickman230/claude-pentest
Then Install plugin
# Install plugin from inside claude code
/plugin install pentest@claude-pentest
The plugin installs into your project's .claude/ directory. Once installed, all agents, skills, and slash commands are available in any Claude Code session.
For server-side testing (nmap, sqlmap, gobuster, Metasploit, etc.), the plugin can connect to a remote Kali Linux REST API. Without it, agents fall back to whatever tools are available locally via Bash.
Setup: Deploy MCP-Kali-Server on a Kali Linux host reachable from your machine, then run /pentest:pentest-kali in Claude Code to connect and save the configuration. The server URL and tool availability are written to .pentest-mks.json and picked up automatically at engagement launch.
The recommended way to start an engagement is via the guided slash command:
/pentest:pentest
This walks you through scope collection, attack profile selection, optional Kali server configuration, then runs the engagement itself (pre-flight → recon → planning → executor deployment → time-budget loop → report). See Slash Commands below for the full command reference.
Five slash commands are included for guided session management. They are auto-discovered by Claude Code and invoked by name.
Purpose: Guided engagement launcher and orchestrator — collects scope, attack profile, and Kali server configuration, then runs the engagement from the main session (the command owns dispatch because the harness allows only one level of subagent nesting).
Flow:
.pentest-scope.json) — if found, offers to reuse it or enter new scope. Collects the scope fields if entering new scope: target, engagement name, out-of-scope restrictions, time budget (the quota the engagement spends), authentication credentials, thoroughness level (Light / Medium / Deep / Full), and deliverable formats. Target, scope, auth, and time budget are free-text prompts; thoroughness and deliverable formats are multiple choice.pentest-attacks.json) — if found, offers to use it or run the full suite. If no profile is found, offers inline mode selection (Full / Web app / API & cloud / Custom).pentest-mks.json) — if active, displays tool availability and asks whether to use MKS endpoints; if none is configured, offers to connect one inline (URL prompt + /health check) so you don't have to run a separate command and relaunchpentester-orchestrator planner for a deployment plan → presents the plan for approval → deploys the specialized executor agents in parallel → time-budget quota loop (escalation) → aggregates → writes pentest-report.json + report.mdIsolation note: If isolation is selected in step 2, Claude constrains itself to pentest plugin agents and skills for the duration of the session. This constraint is lifted when /pentest:pentest-exit runs or /clear resets the context.
Purpose: Define or update engagement scope without launching a pentest. Useful for preparing scope ahead of time or updating scope mid-engagement.
Flow:
.pentest-scope.json and displays current scope if found.pentest-scope.json with status: pendingPurpose: Define which attack categories the engagement should cover, without launching a pentest. Saves the profile for reuse across sessions.
Flow:
.pentest-attacks.json and displays it if found; offers update or keep.pentest-attacks.jsonPresets:
Purpose: Connect a remote Metasploit-Kali Server (MKS) REST API (see Kali MCP) and configure agents to prefer its endpoints over local Bash equivalents.
Flow:
http://192.168.1.10:5000)/health endpoint.pentest-mks.json with status: activeWhen MKS is active, the time-budget loop runs post-exploitation if a CVE or RCE finding is confirmed — deploying Metasploit via the MKS endpoint. It never runs speculatively.
Purpose: Structured session close — reads findings, flushes unsaved notes, outputs a severity-bucketed summary, resets session state, and lifts the isolation constraint.
Flow:
outputs/{name}/ folder)outputs/{name}/findings/ (Schema A) or outputs/{name}/processed/findings/ (Schema B) — whichever the engagement used.pentest-scope.json and .pentest-attacks.json to status: pending — a subsequent /pentest:pentest will offer to reuse them rather than assuming they are still active/clear to fully reset the context window before the next engagementNote: Engagement outputs remain in outputs/{name}/ after /clear.
Three JSON files persist session configuration at the project root. They decouple preparation from launch — you can define scope, attack profile, and Kali server connection independently, then launch when ready.
| File | Written by | Purpose |
|---|---|---|
.pentest-scope.json | /pentest:pentest-scope, /pentest:pentest | Target, engagement name, out-of-scope, auth, timing (time budget/quota), thoroughness, output_formats, and status: pending|active |
.pentest-attacks.json | /pentest:pentest-attacks, /pentest:pentest | Attack mode and selected categories with skill/executor mapping, and status: pending|active |
.pentest-mks.json | /pentest:pentest-kali | Kali server URL, essential tool availability flags, and status: active |
/pentest:pentest-scope → writes .pentest-scope.json (status: pending)
/pentest:pentest-attacks → writes .pentest-attacks.json (status: pending)
/pentest:pentest-kali → writes .pentest-mks.json (status: active)
↓
/pentest:pentest reads all three files at launch:
• scope found → offers reuse or new scope; sets status: active on confirm
• attacks found → offers reuse or full suite
• MKS found → offers MKS tools or skip; carries mks_active into the engagement
↓
The command runs the engagement: pre-flight → recon → planner → approval →
executor deployment → time-budget loop → report. Scope and MKS are already resolved.
↓
/pentest:pentest-exit resets scope and attacks to status: pending.
.pentest-mks.json is left active (server connection persists across engagements).
Prepare ahead, launch when ready:
/pentest:pentest-scope # define scope
/pentest:pentest-attacks # define attack profile
/pentest:pentest-kali # connect Kali server (optional)
/pentest:pentest # launch — all three are detected and offered for reuse
Quick launch (no pre-configuration):
FAQ
claude-pentest is a Claude Code plugin with 7 hand-picked skills for security work, indexed on Flowy. Install it with the command on its page. It includes authenticating, common-appsec-patterns, cve-testing. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it