Deny-capable module that permits no escape-hatch tool

hooks/register.ts 14 lines1import type { Register } from "claude-code";
2
3const READ_ONLY_TOOLS = new Set(["Read", "Grep"]);
4
5export const register: Register = (on) => {
6 on("classic.PreToolUse", async (_$, e, next) => {
7 const result = await next(e);
8 if (READ_ONLY_TOOLS.has(e.tool)) {
9 return result;
10 }
11 return { deny: "fixture denies everything else" };
12 });
13};
14