Claude Code Hooks:被忽略的核心功能
所有人都在聊提示词(prompting)。没人聊 hooks。
Hooks 是在 Claude Code 事件发生时自动运行的 Shell 命令——工具执行前、工具完成后、或会话启动时。它们是你和 AI agent 之间的可编程层。
为什么 hooks 很重要
Claude Code 默认体验已经不错了。但 hooks 让它变成你的工具。它们能帮你:
- 在错误发生之前阻止它
- 自动执行项目规范
- 在正确的时机注入上下文
- 建立不拖慢你速度的防护栏
一个简单的例子
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"command": "echo 'Use python3, not python' && [[ \"$TOOL_INPUT\" != *'python '* ]]"
}
]
}
}
就这一行配置,帮我避免了一个在 macOS 上每周都会犯的错误——macOS 上根本没有 python,只有 python3。
真正有用的三种模式
经过几个月的每日使用,三种 hook 模式被验证为真正有用的:
- 安全网 — 拦截危险命令(
rm -rf、git push --force) - 上下文注入 — 在会话启动时注入项目状态
- 规范执行 — 确保输出符合你的标准
其它都是过度设计。从这三种开始就够了。
下一步
后续我会对每种模式做深度拆解,附带我工作流中的真实案例。核心洞察:hooks 最强大的时候,恰恰是你感觉不到它存在的时候。最好的 hook 就是那种你忘了它存在、因为它默默就生效了的 hook。