caffeinate process. Your Mac will not sleep while Claude is working.yay (case-insensitive). If found, fires Raycast confetti cannon immediately. That's the whole hook.Three checks run in sequence on every Bash command:
① Catastrophe blocker — kills commands like rm -rf /, disk formats, or anything that would destroy the machine. Exit 2 = blocked.
② Test output filter — if the command runs a test suite, only failures come back. 500 passing lines get dropped. Claude sees what matters.
③ RTK token rewrite — transparently rewrites git status → rtk git status, git diff → rtk git diff, etc. Saves 60–90% of tokens on dev operations. You never see it happen.
git push. Auto-detects project type and runs whatever applies: tsc --noEmit, vite build, vitest. Push is blocked if any step fails.~/.claude/CLAUDE.md (must edit manually), and rejects settings.json writes containing invalid keys like mcpServers..typ files inside jobs/. These are generated output — not source. Read report_state.json instead..py → ruff check --fix + ruff format.sh → shellcheck.ts → tsc --noEmit (first 20 lines)
git push. If yes, fires Raycast confetti. Ships deserve a celebration./simplify skill completes. Code cleanup is worth celebrating too.\a AND a macOS native notification: "Claude Code finished" with the Glass sound. So you can tab away while it works. Skipped in claude -p mode.Fires and forgets. Claude doesn't wait for it. Can't block or rewrite anything.
Returns exit code 2 to completely stop the tool call. Claude sees the error message and must change course.
Returns a modified version of the input. Claude runs the new version, not the original. Transparent to Claude.
Configured in etc/ project settings. Doesn't apply in other projects.