Claude Code 有个钩子功能,知道的人用起来像开了外挂

张开发
2026/5/30 8:28:22 15 分钟阅读
Claude Code 有个钩子功能,知道的人用起来像开了外挂
我有段时间一直有一个小困扰。每次让 Claude Code 帮我写完一段代码我都要手动跑一遍 lint手动格式化有时候还要手动更新一下 changelog。不是什么大事但每次都要做每次都要记时间久了就觉得这些明明可以自动的事为什么还在手动做后来我发现 Claude Code 有一个叫 Hooks 的配置项。配好之后我让 Claude 生成完代码它自动跑 lint自动格式化session 结束前自动把关键决策写进 changelog。全程不需要我记不需要我喊它自己做。你以为 Claude Code 是工具其实配好 Hooks 之后它是一个有记忆、有反应、会自动收尾的系统。Hooks 是什么Hooks 是 Claude Code 的一个配置项让你可以在特定事件发生时自动触发自定义 shell 命令。触发时机有四种PreToolUse工具操作前、PostToolUse工具操作后、NotificationClaude 发通知时、Stopsession 结束时。你可以在这些时间点挂载任何 shell 命令。不需要你记不需要你喊事件发生命令自动跑。配置写在~/.claude/settings.json全局或.claude/settings.json项目级里。三个最实用的场景场景一写完代码自动跑 lint 格式化Claude 每次用 Write 或 Edit 工具修改文件后自动跑 lint 修复 Prettier 格式化。你不需要记不需要在提交前补跑——它写完就处理好了。CI 不再因为格式问题打回来。场景二执行危险命令前自动拦截PreToolUse 的 Hook 如果返回非零退出码Claude 会停止执行。你可以写一个脚本检测命令里是否包含rm -rf、DROP TABLE等高风险关键词包含就阻断不包含就放行。比权限配置更灵活因为逻辑你自己控制。场景三session 结束时自动存档每次 session 结束自动把时间戳和修改文件列表写进项目日志。不需要你手动整理关掉就有记录。从一个 Hook 开始不需要一上来就配一堆。找你现在用 Claude Code 工作时最常手动做的那件事——大概率是某种格式化、lint或者提交前检查——先把那一件事挂进 PostToolUse。跑几次感觉对了再往外扩。配好之后你会有一种奇怪的感觉不是「哇这好厉害」而是「这个早就该有」。你现在用 Claude Code 有没有什么动作是每次都要手动做、但完全可以自动化的评论区说说我们一起想想能不能用 Hooks 解掉。下一篇聊多 session 并行——同一个项目同时跑多个 Claude怎么分工、怎么不打架。关注不迷路。更多深度内容与完整文章欢迎关注我的微信公众号SamLai 效率研习社主要分享AI 编程与开发效率技术趋势与工程思考实用工具与工作流

更多文章