首页 > 基础资料 博客日记
Claude Code 通关手册(八):推荐 5 个 Hooks,代码质量提升 3 倍
2026-04-13 14:00:02基础资料围观1次
这是Claude Code通关手册的第八篇,推荐5个实用的Hook,代码质量提升 3 倍
上周三下午,我让 Claude Code 帮我重构一个老模块。
它干得挺快,噼里啪啦一顿输出。我切出去喝了口水,回来一看——它正准备把我一个还没有提交git的源文件直接覆盖掉。
手抖着点了“拒绝”,后背全是冷汗。
那一刻我突然意识到:不是 Claude 坏,是我太信任它了。
每次它问“我可以执行这个命令吗?”我都点“允许”,点多了就麻了。它要 rm -rf 我也点,它要改 .env 我也点——我把 AI 当成了不会犯错的神,但它只是个能力很强的实习生。
我翻了一遍 Claude Code 的文档,又刷了创始人 Boris 的 X。他分享了自己在用的几个 hooks,我全抄下来,砍掉一半,最后剩下 5 个。
装上之后,Claude 还是那个 Claude,但我再也没怕过它。
Hook 到底是什么?3 秒钟理解
你每次让 Claude 跑命令、改文件,它都会弹窗问你“行不行?”——这就是最后一道防线。
Hook 就是在弹窗之前或之后,自动跑一段你写好的脚本。
-
你想让它自动允许某些命令?Hook 能干。
-
你想让它打死也不准
rm -rf?Hook 能干。 -
你想让它每次写完代码自动格式化?Hook 也能干。
说白了,Hook 就是给 Claude 装上“自动驾驶 + 刹车片”。
Claude Code 总共支持 27 种 hook,我挑 5 个最实用的,每天救我于水火。
Hook 1:每次启动,自动给 Claude “补课”
痛点:每天早上打开 Claude Code,它都像失忆了一样。
“当前分支是什么?”
“最近改了啥?”
“TODO 文件在哪?”
你敲三行字,它回三句废话,两分钟没了。
解决方案:SessionStart hook
Claude 一启动,自动跑一个脚本,把当前分支、最近 5 条 commit、未提交的改动一股脑塞给它。
脚本长这样(你复制就行):
#!/bin/bash
echo "Current branch: $(git branch --show-current)"
echo ""
echo "Recent commits:"
git log --oneline -5
echo ""
echo "Uncommitted changes:"
git status --short
效果:Claude 一开机就知道你昨天干到哪了,冷启动时间归零。
Hook 2:打死也不准 rm -rf
痛点:Claude 有时候真的很“勇”。
它觉得临时文件太多,就想 rm -rf ./。
它觉得环境变量该更新,就想直接覆盖 .env。
你手一抖点了“允许”,哭都来不及。
解决方案:PreToolUse hook
在任何危险命令执行之前拦截。你可以选择:
allow(放行)deny(拒绝)ask(问你要不要)- 甚至偷偷改参数(比如把
rm -rf ./改成rm -rf ./dist,缩小爆炸半径)
拦截 rm -rf 的脚本核心就这几行:
if echo "$COMMAND" | grep -qE 'rm\s+-rf'; then
# 返回 deny,并说明原因
jq -n '{permissionDecision: "deny", ...}'
fi
效果:再也不用担心 Claude 把你家目录删了。
Boris 还用这个 hook 记录每一条 bash 命令——相当于审计日志,随时回溯 Claude 干过啥。
Hook 3:写完代码自动格式化,再也不卡 CI
痛点:Claude 写的代码,10 次里有 9 次没问题,但总有 1 次漏个分号、缩进不对、行尾多个空格。
CI 一跑就挂,你还得手动修,烦不烦?
解决方案:PostToolUse hook
Claude 写完文件之后,自动跑一次格式化工具。
case "$FILE_PATH" in
*.ts|*.tsx|*.js) prettier --write "$FILE_PATH" ;;
*.py) black "$FILE_PATH" ;;
*.go) gofmt -w "$FILE_PATH" ;;
esac
效果:Claude 专注写逻辑,格式问题交给脚本。CI 再也不因为空格报错了。
Boris 原话:
Claude usually generates well-formatted code out of the box, and the hook handles the last 10% to avoid formatting errors in CI later.
那 10% 不值得人管,让 hook 干。
Hook 4:Claude 说“搞定了”?先让它自己跑测试
痛点:Claude 经常自信满满:“重构完成,可以合入了!”
你信了,一跑测试——全红。
你又得回去跟它掰扯“为什么你没测边界条件”。
解决方案:Stop hook
Claude 觉得活干完了的那一刻,自动跑测试、跑 lint。
挂了就返回 block,Claude 必须继续改,直到全绿为止。
脚本核心:
if ! mvn test --quiet; then
jq -n '{decision: "block", reason: "Maven 单元测试失败,请修复后再结束。"}'
exit 0
fi
效果:Claude 变成了一个“不把测试跑通就不下班”的卷王。
你再也不用当验收员了。
Hook 5:活干完了,手机通知我
痛点:大重构经常跑十几分钟。
你切出去开会、刷手机、吃饭,回来一看——Claude 卡在一个权限问题上等了半小时,进度条一动不动。
解决方案:Stop hook + 飞书/钉钉/企业微信机器人
Claude 跑完活(无论成功还是卡住),自动往你手机发一条消息。
配置都不用写脚本,直接填 webhook:
{
"hooks": {
"Stop": [{
"hooks": [{
"type": "http",
"url": "https://open.feishu.cn/open-apis/bot/v2/hook/xxx",
"headers": { "Content-Type": "application/json" }
}]
}]
}
}
效果:Claude 跑完活,你手机“叮”一声。再也不用来回切窗口看它好了没。
不过现在 Claude Code 出了 remote control,我直接手机上看状态,这个 hook 用得少了。但如果你还没升,它依然很香。
最后:别把 AI 当魔法,把它当基础设施
Boris 有句话我特别认同:
Treat Claude Code as infrastructure, not magic.
基础设施的意思是:该有护栏的地方要有护栏,该自动化的地方要自动化。
Hooks 就是这基础设施里的“水泥”。
你不需要装 27 个,从你最疼的地方开始:
- 每次启动都要重新交代状态 → 装
SessionStart - 怕它删库跑路 → 装
PreToolUse拦危险命令 - 烦透格式问题卡 CI → 装
PostToolUse自动格式化 - 不想当验收员 → 装
Stop自动跑测试 - 想手机收通知 → 装
Stop+ 飞书机器人
5 个 hook,一下午配好,之后天天受益。
未来已来,Enjoy AI!但记得给它装好刹车。
你还有什么好用的 hook 用法?评论区交个朋友~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- CLI+Skill搭建浏览器AI自动化框架,告别一切重复枯燥任务
- Linux入门--远程登录与用户管理
- 深度学习进阶(七)Data-efficient Image Transformer
- FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了!
- 告别Token账单无底洞:OpenClaw本地部署,重塑企业数据主权的唯一解
- SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程
- GaussDB技术圈层:携手金融业DBA,共创数据库文档
- 100多行代码实现一个最简单的Agent(用ReAct)
- 多模态检索开始进入工程期:用 Sentence Transformers 搭建可落地的 Multimodal RAG
- Claude Code 通关手册(八):推荐 5 个 Hooks,代码质量提升 3 倍

