
想让 Claude Code 自动帮你格式化文件、拦住危险命令、不让密钥外泄,又不用每次都开口提醒?答案是 Hooks:一小段脚本,在约定的时刻自动跑。这篇是 AI Parabellum 在 10 月 30 日用 Claude Code v2.1.312 实测的教程,给了 10 个测过、能直接抄的 Hooks 例子。关键要先理解一句话:Hook 是一条规则,不是请求——CLAUDE.md 里的一行只是请模型照做,而 Hook 每次都会强制执行,不管模型记不记得。
10 个 Hook 一览:改完文件自动去掉行尾空格(PostToolUse);拦住 git push –force 和 rm -rf,–force-with-lease 仍放行(PreToolUse);不让 Claude 碰 .env、.pem 和 secrets/ 里的文件;Claude 等审批或空闲时弹一条 macOS 桌面通知(osascript,Linux 换 notify-send);把每条 shell 命令记进审计日志;测试没过就不让 Claude 停下,自动回去修(Stop);开局就把当前分支和最近 3 次提交塞进上下文(SessionStart);提示词里出现疑似 API 密钥就直接拦下;git status/diff/log 这类只读命令免审批自动放行;提交信息强制以 feat:、fix:、docs:、chore:、refactor: 或 test: 开头。脚本通过标准输入收事件 JSON,退出码 0 是放行、2 是拦截、其他是非阻塞错误。脚本都放在 .claude/hooks/ 里,chmod +x 后在 settings.json 里接线,再接受一次文件夹信任弹窗,用 /hooks 检查。注意作者也提醒了:这是一道减速带不是保险箱,纯文本匹配会被别名或变量绕过,真要防住还得配合远端分支保护。
适合已经在用 Claude Code、想把安全规则和重复动作沉淀下来的人,从第 2、3、8 条先抄最划算。想把 Claude Code 关进隔离环境里跑,可以看站内这篇 把 Claude Code 关进 Dev Container 里跑;settings.json 的写法细节可以对照 Claude Code 的 MCP 配置文件到底在哪。官方文档见 原文教程。
来源:AI Parabellum,原文:https://aiparabellum.com/10-ready-to-copy-claude-code-hooks/


没有回复内容