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

Illustration. A route handler deletes a note without checking who asks. 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.

  1. 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.
  2. 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.
  3. Copy the Install with your coding agent instruction. Start Claude Code by typing claude in Terminal, paste the instruction, press Enter.
    You should see: Claude checks Node and git, downloads Hacketix and tells you to restart. Then type /exit.
  4. Start Claude Code in your project with Hacketix:
    Terminal
    cd /path/to/your-app
    claude --plugin-dir ~/hacketix-release/hacketix

    You should see: Claude Code opens in your project.
  5. Type /mcp.
    You should see: a hacketix server marked connected (its name may have a plugin prefix). Press Esc.
  6. 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

Paste into Claude Code
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.

Your token

Put it where Hacketix reads it. macOS:

Terminal

Linux and WSL2:

Terminal

Hacketix uses this file to know it is you; keep it private.

04By hand

Install

Or let your coding agent run these steps: copy the instruction.

  1. You need Node.js 22.15 or newer (node --version) and git. On Linux, also sudo 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.
  2. 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:
    Terminal
    git clone git@github.com:Robertzu43/hacketix-release.git ~/hacketix-release
    cd ~/hacketix-release/hacketix && npm ci --omit=dev --ignore-scripts
  3. Make a token above and run its command on this machine: Hacketix needs it.
  4. Claude Code is the only client Hacketix has been tested with. Start it in the project Hacketix should review:
    Terminal
    cd /path/to/your-app
    claude --plugin-dir ~/hacketix-release/hacketix
    Type /mcp: a hacketix server is listed as connected (Claude Code may show its name with a plugin prefix). In a repository with a package.json or a supabase/ folder, the session opens with Hacketix saying it has no baseline for this repository yet.
  5. 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.js may 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:
    Terminal
    codex mcp add hacketix -- node ~/hacketix-release/hacketix/dist/src/index.js
    cd /path/to/your-app && codex
    Without the hooks and the skill, the paste prompt below for Codex repeats the core of the server's own instructions.
  6. 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):

Prompt
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):

Prompt
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.