Hacketix for Claude Code
Keep what you ship secure without wondering, or spending time and tokens on a security review you do not understand.
Hacketix is an MCP server and Claude Code plugin. As your agent builds, it reviews each change for security issues, proves the ones it can by running the attack against your code on your machine, and checks that a fix blocks the attack without breaking what the code is for. It goes deepest on Next.js + Supabase + Stripe apps.
The final comparison is in progress: Hacketix is being run against Claude Code's /security-review and six other tools on 32 sealed cases. The numbers will be here when that run is scored, with their caveats.
Review Prove Fix with your approval Verify
prove_finding reproduces the exposure, the fix goes in only with your approval, and verify_fix checks that it blocks the attack without breaking what the code is for.01Coding agents
Install with your coding agent
Copy this instruction and paste it into Claude Code. It asks the agent to do what the Install steps below say and nothing more: check the prerequisites, clone the release, install its dependencies, then tell you how to restart Claude Code with the plugin. It asks before any sudo command and changes no code in your project.
After the restart, paste the first-run prompt.
Codex and other MCP clients are untested; for them this page offers only the server command from Install: codex mcp add hacketix -- node ~/hacketix-release/hacketix/dist/src/index.js
Install the Hacketix plugin for Claude Code on this machine. Do only the steps below, and do not change any code in this project.
1. Check that `node --version` reports 22.15 or newer and that git is installed (`git --version`). If either is missing or too old, stop and tell me.
On Linux, also run: sudo apt-get install bubblewrap socat ripgrep openssl
On Ubuntu 24.04 and later, also run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
On Windows, do all of this inside WSL2. Ask me before you run any sudo command.
2. Run:
git clone git@github.com:Robertzu43/hacketix-release.git ~/hacketix-release
cd ~/hacketix-release/hacketix && npm ci --omit=dev --ignore-scripts
The clone uses SSH: my GitHub account must have accepted the invitation to hacketix-release and have an SSH key. If the clone fails, stop and tell me. If you are running as root on Linux, clone outside /root (for example /opt/hacketix-release) and use that path instead of ~/hacketix-release from here on.
3. You cannot load the plugin into this running session. Tell me to quit Claude Code and start it again in the project Hacketix should review, with:
claude --plugin-dir ~/hacketix-release/hacketix
then to type /mcp and check that a hacketix server is listed as connected (Claude Code may show its name with a plugin prefix).
4. Do not change any code in this project.
02The plugin
What it does and does not do
- Proofs
Twelve classes proven
Twelve classes have a proof: Supabase RLS and definer views, keys shipped to the browser, committed secrets, Stripe webhooks, unauthenticated writes, IDOR reads, path traversal, client-side prices, TLS verification off, JWTs without expiry, SSRF.
- Privacy
What it sends when you sign in
Signed-in Hacketix sends one small usage record per tool call: which tool ran, when, how long it took, whether it worked, which vulnerability classes it found and how the proofs and fixes came out, under a random id for your machine and each repository. It never sends code, file paths, names from your project, finding text or secret values. Records are deleted after 13 months. The full list is in the privacy document.
- Platforms
Where it runs
Linux: everything. macOS: everything except the eight classes whose proof runs route code in the OS sandbox; those come back
incomplete, never "secure". Windows: use WSL2. Node.js 22.15 or newer.
03Account
Sign in
Signed in as .
Your account token
Sign in to get a token.
Make one token per machine. It is shown once; make another if you lose it.
Put it where Hacketix reads it. macOS:
Linux and WSL2:
Without this file Hacketix works the same and sends nothing.
- You need Node.js 22.15 or newer (
node --version) and git. On Linux, alsosudo apt-get install bubblewrap socat ripgrep openssl; on Ubuntu 24.04 and later,sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0. On Windows, do all of this inside WSL2. - Accept the GitHub invitation to
hacketix-release. The clone uses SSH, so your GitHub account needs an SSH key. Running as root on Linux? Clone outside/root(for example/opt/hacketix-release) and use that path below. Then:git clone git@github.com:Robertzu43/hacketix-release.git ~/hacketix-release cd ~/hacketix-release/hacketix && npm ci --omit=dev --ignore-scripts - Optional: make a token above and run its command on this machine.
- Claude Code is the only client Hacketix has been tested with. Start it in the project Hacketix should review:
Type
cd /path/to/your-app claude --plugin-dir ~/hacketix-release/hacketix/mcp: ahacketixserver is listed as connected (Claude Code may show its name with a plugin prefix). In a repository with apackage.jsonor asupabase/folder, the session opens with Hacketix saying it has no baseline for this repository yet. - Codex and other MCP clients are untested. Hacketix is an MCP server over stdio, so a client that can start
node ~/hacketix-release/hacketix/dist/src/index.jsmay load it. The hooks and the skill belong to the Claude Code plugin, and adapters for Cursor, Codex and Gemini CLI are on the roadmap, not built. To try Codex anyway, register that same command (untested), then start Codex in your project:Without the hooks and the skill, the paste prompt below for Codex repeats the core of the server's own instructions.codex mcp add hacketix -- node ~/hacketix-release/hacketix/dist/src/index.js cd /path/to/your-app && codex - Updates:
git -C ~/hacketix-release pull && (cd ~/hacketix-release/hacketix && npm ci --omit=dev --ignore-scripts).
05First run
First run: paste this
Claude Code (the plugin already tells the agent how to work; this makes the first run visible):
Use Hacketix on this repository: call diagnose_repository, show me its report exactly as it comes back, then tell me which items are must fix, which are only suspected, and what you would fix first. Do not change any code yet.Codex or another client (untested; the plugin's hooks and skill are not loaded there, so this repeats the core of the server's own instructions):
This project has the hacketix MCP server. Before anything else, call its diagnose_repository tool on this repository's root and show me the report exactly as it comes back. After each change you make, call review_change on the repository. From now on, when Hacketix reports a finding: prove it with prove_finding before calling it a vulnerability; never call an incomplete or not_reproduced proof secure; for a reproduced finding, or an incomplete medium-confidence one (said to be unproven), propose the smallest fix with propose_fix, check it with verify_fix, show me the patch and apply it only after I approve; report anything else and change nothing; record each outcome with record_decision. Do not change any code yet.What you should see: a report that ranks what it found (must fix, should fix, needs validation), then what was not ranked and what was checked, with no file changed. On macOS the eight classes whose proof runs route code cannot run it (Hacketix reports the OS sandbox unavailable there), so they come back incomplete, or not applicable when reading the code decides it; that is expected, not a bug.
06Feedback
Feedback: a verdict you think is wrong
Sign in to send feedback.