一、Hook 是什么
Hook 是你预设在 Claude Code 工作流中的自动触发器。当 Claude Code 执行到特定操作——调用工具、完成任务、发出通知——你指定的处理器会自动运行。
它和 CLAUDE.md、Rules 的区别在于确定性。CLAUDE.md 和 Rules 是行为指引,Claude 读了通常会遵守,但本质是建议,偶尔会偏离。Hook 是代码级执行,事件触发了就一定运行,没有"看情况"的空间。
Hook 不做什么:
- 不能触发斜杠命令或工具调用——只能通过 stdout、stderr 和退出码与 Claude Code 通信
- 不能撤销已完成的操作——PostToolUse 处理器在工具执行之后运行,操作已经发生
- 有超时限制——command 类型默认 600 秒,prompt 类型默认 30 秒,agent 类型默认 60 秒
二、四种 Hook 类型
Claude Code 支持四种类型的 Hook,覆盖从确定性脚本到 AI 判断的完整光谱。
command 和 http 是确定性执行——脚本逻辑或 HTTP 请求,结果完全由你的代码决定。