From hackingtool
Runs 183+ pentest/OSINT tools (nmap, sherlock, amass, nuclei, sqlmap, etc.) for target recon, network scanning, subdomain enum, username/email investigation, web app testing, and leaked secret checks. Auto-selects Bash/WSL/Docker backend.
npx claudepluginhub akcodez/hackingtool-plugin --plugin hackingtoolThis skill uses the workspace's default tool permissions.
Claude Code runs on the user's machine. You have real Bash, real filesystem, real process execution. **Run tools immediately; the runtime wrapper handles environment details for you.**
References Nmap and Metasploit commands for host discovery, port scanning, NSE vuln checks, and basic exploitation during authorized pentests.
Guides nmap-based network reconnaissance: fast full-port SYN scans, service/version detection, NSE scripts, and output parsing. Use for enumerating services and detecting vulnerabilities.
Conducts authorized network reconnaissance with Nmap: host discovery, port scanning, service enumeration, OS fingerprinting, and NSE vulnerability detection. For security audits and compliance checks.
Share bugs, ideas, or general feedback.
Claude Code runs on the user's machine. You have real Bash, real filesystem, real process execution. Run tools immediately; the runtime wrapper handles environment details for you.
Every tool runs through ht_run.py, which:
ht_env.py to pick a backend — native on Linux/macOS, WSL on Windows with a real distro, Docker anywhere with Docker Desktop.instrumentisto/nmap, projectdiscovery/nuclei, caffix/amass, 20+ more). Falls back to kalilinux/kali-rolling for anything not mapped.sudo -n. If an error is classifiable as recoverable, handles it.status, stdout, stderr, returncode, and the command that ran.Only one pre-block exists: tools flagged interactive (they read stdin mid-run). Bypass with --force + --command if you have non-interactive args.
All scripts live at ${CLAUDE_PLUGIN_ROOT}/scripts/. Call them with python ${CLAUDE_PLUGIN_ROOT}/scripts/<script>.py .... They emit JSON on stdout.
| Script | Purpose |
|---|---|
ht_search.py | Query the tool index. Filter by --q, --category, --tag, --capability runnable_by_claude, --os linux. |
ht_env.py | Report host OS, WSL distros, Docker availability, and preferred_backend. |
ht_run.py | Execute a tool. --command "..." for a full-command override. --args "..." for append-args. --network-host for LAN scans via docker. --privileged for raw sockets / hardware. --force to bypass the interactive pre-block. |
reference/workflows.md.python ${CLAUDE_PLUGIN_ROOT}/scripts/ht_env.py tells you which backend will run. If Windows + no WSL + Docker stopped, ask the user to start Docker before Linux-only work.ht_search.py --q "<keyword>" to discover tool ids. Don't assume ids.ht_run.py <tool_id> --args "..."runnable=False) → use --command "<full command>". The wrapper still picks the backend and image for you.--network-host so the container sees your LAN.--privileged.status: ok → summarize the interesting parts of stdout; don't paste the whole output if it's long.status: error with returncode != 0 → tool ran but failed. Report stderr and decide whether to retry with different args.status: fallback → see reference/runtime-fallbacks.md. Pick the template matching the reason field.status: timeout → raise --timeout <N> or break the scan into smaller chunks.subfinder → httpx → nuclei. holehe → sherlock → maigret. Feed outputs into the next step.ht_run.py maps common tools to purpose-built images. These pull faster than Kali and have proper ENTRYPOINTs, so you just pass args:
| Tool | Image |
|---|---|
| NMAP | instrumentisto/nmap |
| Nuclei | projectdiscovery/nuclei |
| Subfinder / Httpx / Katana | projectdiscovery/* |
| Amass | caffix/amass |
| TheHarvester | secsi/theharvester |
| Holehe / Maigret / SpiderFoot | official images |
| TruffleHog / Gitleaks | official images |
| Sqlmap | paoloo/sqlmap |
| Impacket / NetExec | rflathers/impacket, byt3bl33d3r/netexec |
Override with --docker-image my/image for one-off swaps.
For one-off invocations that don't map to a hackingtool tool id — e.g. curl -I https://target, arp -a, dig @8.8.8.8 example.com — just use Bash directly. Use ht_run.py when:
${CLAUDE_PLUGIN_ROOT}/skills/pentest/reference/workflows.md — named playbooks${CLAUDE_PLUGIN_ROOT}/skills/pentest/reference/runtime-fallbacks.md — templates for each fallback reason