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.
Review Prove Fix with your approval Verify
prove_finding reproduces the attack; your agent drafts the fix (check the session, delete only the owner’s note), which goes in only with your approval; verify_fix checks that it blocks the attack while your own use still works.Start here
Get started
Six steps, in this order. Each one tells you what you should see when it worked.
- Sign in with your email. Use the Sign in form, then open the link we email you.
You should see: “Signed in as” and your email. - In Your account token, click Make a token, then copy the command for your computer (macOS, or Linux and WSL2) and paste it into Terminal. On a Mac, open Terminal with Cmd+Space, type Terminal, press Enter.
You should see: nothing printed; the token is saved. Never share the token. - Copy the Install with your coding agent instruction. Start Claude Code by typing
claudein Terminal, paste the instruction, press Enter.
You should see: Claude checks Node and git, downloads Hacketix and tells you to restart. Then type/exit. - Start Claude Code in your project with Hacketix:
cd /path/to/your-app claude --plugin-dir ~/hacketix-release/hacketix
You should see: Claude Code opens in your project. - Type
/mcp.
You should see: ahacketixserver marked connected (its name may have a plugin prefix). Press Esc. - Copy the first-run prompt, paste it, press Enter.
You should see: a report that ranks what Hacketix found; no file changes. Then keep working as usual: Hacketix checks Claude’s edits as it goes.
Stuck? Tell us in the WhatsApp community (opens in a new tab)
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 never runs sudo: it shows you the sudo commands to run in your own terminal and waits for you. It 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 Windows, do all of this inside WSL2.
Never run sudo yourself: your shell has no terminal where I could type my password. On Linux, show me this command to run in my own terminal:
sudo apt-get install bubblewrap socat ripgrep openssl
On Ubuntu 24.04 and later, also show me this one:
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
Then wait for me to say done before you continue.
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
Works with your AI coding agent
Hacketix is an MCP server: it plugs into the agent you already write code with. Today it is tested end to end with Claude Code. Cursor, Codex, Gemini CLI and other MCP-capable agents can connect to the same server, and full support for them is on the way.
03Account
Sign in
Signed in as .
Your account token
Using Hacketix means accepting these terms; Hacketix monitors usage to detect abuse, such as copying or distilling the tool, and may suspend access.
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:
Hacketix uses this file to know it is you; keep it private.
- 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 - Make a token above and run its command on this machine: Hacketix needs it.
- 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
Feedback and comments are welcome in the Hacketix community on WhatsApp.
Join the WhatsApp community (opens in a new tab)Sign in to send feedback.