Tori — security checks for your coding agent
Earn AI credits by building securely in Claude Code and Cursor.
Tori checks the code your coding agent writes before you ship it, tells the agent exactly how to fix what it finds, and rewards you in AI credits for building with it.
Install
Two commands, in any repo:
npx @earntori/cli login npx @earntori/cli init
Then restart Claude Code (or Cursor) in that folder and approve the tori MCP server when it asks. Nothing else changes about how you build.
What happens
Claude Code: Tori runs automatically when your agent finishes coding. If it finds something, the agent sees the finding and the fix before it can call the task done. A clean run is silent.
Cursor: the agent has Tori’s tools; ask it to “run Tori checks” before it finishes.
A finding looks like this:
[HIGH] src/webhooks.js:41 (core.webhook_signature_unverified) Webhook handler accepts requests without verifying the provider's signature. Anyone who finds the URL can forge events. How to fix: Verify the signature on the RAW request body before parsing or acting on it …
The agent fixes it, then asks Tori to verify the fix against the file. Verified fixes are what count.
Deferring a fix
If you deliberately don’t want to fix something yet, tell the agent — it records a waiver with your reason. Waived findings stop blocking, stay visible, and never earn anything. You can also put a comment on the line above the flagged code:
// tori-ignore: logging-only stub, verification comes with the real handler
Remove the comment and the finding comes back.
Rewards
When you build with Tori you’re rewarded in AI credits. Credits become a spend-capped API key you can use in Cursor, Claude Code, or anything OpenAI-compatible — see Using your credits. You’ll get an email the first time you’re rewarded, then a monthly statement — never an email per reward. What earns and how much isn’t published.
Commands and tools
CLI
npx @earntori/cli login — sign in with GitHubnpx @earntori/cli init — wire Tori into the current repo (MCP server + Claude Code hooks)npx @earntori/cli check [paths…] — run the checks by hand on changed filesnpx @earntori/cli status — balance and your AI keys
MCP tools (what the agent calls)
checks_run — check changed files, get findings with fixeschecks_resolve — verify a fix against the file’s current contentchecks_waive — record a deliberate deferral, with a reasonstatus — open, waived and resolved findings
What gets sent where
The rules run on Tori’s servers. When a check runs, the changed code files are sent over your signed-in session and evaluated; findings are stored so fixes can be verified and so they stay out of your way once waived. Nothing runs in the background on your machine — the only local files are .mcp.json, .cursor/mcp.json and .claude/settings.json in the repo, plus ~/.tori/config.json for your login. Delete them and Tori is gone.
Requirements
A GitHub account (sign-in is GitHub’s device flow) · Claude Code or Cursor · a repo with git init (Tori uses git to find changed files) · JavaScript / TypeScript projects today.
Beta
This is a beta. Tell us what it flags, what it misses, your wishlist, and what annoys you — open an issue.
Building an app or sending rewards to your own customers? That’s the Partner API.