A hook that blocks Claude Code from sending email, posting, or paying until you approve that one action in your own terminal. The gate is free. The kit around it is USD 19.
Card or PayPal at checkout. You land on the download page right after paying. 30-day refund: email your PayPal receipt. If all you want is the gate, the free download is enough. Needs Claude Code and Node 20+. Built and run on macOS. Independent project, not affiliated with Anthropic.
A starter setup for people who let Claude Code act for them: email, a CRM, payments, customer work. It sits around a send gate, a hook that blocks Claude Code from sending, posting or paying until you approve that action. The gate itself is free and open source (MIT). The kit is what I use around it: seven rule packs that extend the gate to common business tools, a CLAUDE.md template, a memory system, two skills, three short docs on delegating and getting unstuck, and a PDF playbook that explains why each piece exists.
It comes from a setup I use day to day. I'm a home performance manager at a Portland contractor, not a software engineer. Everything specific to that company has been removed.
send-gate.mjs), approve-send.mjs, away-mode.mjstest-send-gate.mjs)install-gate.mjs, plus the 2026-10-25 test transcriptpacks/ (email and calendar, phone and SMS, chat and social, payments and invoicing, CRM, scheduling and field service, publishing), applied with apply-pack.mjs and checked by 156 more tests in test-packs.mjsCLAUDE.template.md, with the reason for each sectionmemory-starter/ (a one-fact-per-file convention and four example memories), the grill-me and dream skills, three docs on delegating, writing skills and getting unstuckPLAYBOOK.pdf, 34 pages, with a step-by-step install for people new to terminalsinstall.mjs and uninstall.mjs with --dry-run, and an effort-nudge.mjs hookCard or PayPal at checkout. 30-day refund: email your PayPal receipt.
The free gate already blocks the sends it knows about. What the USD 19 adds is coverage for more business tools through the packs, and the files and PDF for setting up the rest of your Claude Code configuration around it.
send_email or create_refund, shell commands that send mail or POST to mail, chat, SMS, CRM, accounting or payment APIs, and browser scripts that click a Send button.Anthropic's hooks guide says a hook that returns deny blocks the tool even in bypassPermissions mode. Guide: how to stop Claude Code from sending email, posts and payments.
--dangerously-skip-permissions and the gate wired in. A gated command was denied. The approve script, run from Claude's shell, exited without writing anything. After a code was typed at a pseudo-terminal, the gated command went through once. The transcript is in the zip.git push, package publishes and deploys, unless you apply the publishing pack. Some MCP tools with unusual names, until you add them.disableAllHooks, --bare, or you editing settings.json yourself) turns the gate off too. Claude's own edits to settings.json are blocked.unzip operator-kit-v1.0.zip && cd operator-kit
node install.mjs --dry-run # shows what it will copy and wire; changes nothing
node install.mjs
node tests/test-send-gate.mjs # 156 passed, 0 failed
The installer backs up your settings.json first and never overwrites a file you already have unless you pass --force. Start a new Claude Code session afterward so the hooks load.
A rule in CLAUDE.md is advice the model usually follows. A PreToolUse hook is code that runs before the tool call and can deny it. The send gate is a hook like that: it denies tools and shell commands that look like sends, posts or payments, and tells Claude to show you the exact text and recipient. You approve by typing a 4-digit code in your own terminal. Full guide.
Anthropic's hooks guide says a hook that returns permissionDecision: "deny" blocks the tool even in bypassPermissions mode or with --dangerously-skip-permissions. I confirmed it once, headless, on Claude Code 2.1.310. Settings that turn hooks off (disableAllHooks, or starting with --bare) turn the gate off too.
The approval script reads the code from the terminal a person is sitting at, and Claude's shell has no terminal. A process that can open its own pseudo-terminal could still type it, and the hook's text guard can be dodged. It is a safeguard against mistakes and over-eager automation, not a sandbox.
No. Drafts save without sending, so something like create_draft passes. Tools with send, reply, forward, publish, post, pay or refund in the name are gated.
I do (Kyle). The gate is free and MIT licensed. The USD 19 kit is the setup I use around it.
PayPal sends you back to the download page as soon as the payment goes through. If you closed the window before that, email the address below with your PayPal receipt and I'll send the link.
30 days. Email with your PayPal receipt.
The four send gate files are MIT. The rest of the kit is for personal and internal business use by the buyer and their team. Please don't resell or redistribute it.
Use WSL. Linux should behave the same as macOS, but I haven't run it there.