📚AI 编程官方教程中文版
官方教程中文版扩展与自动化

使用 Hooks

用 Claude Code Hooks 在生命周期事件上执行格式化、阻断、通知和审计。

Hook 是 Claude Code 的确定性自动化机制。它在特定生命周期事件发生时运行 shell command、HTTP request、prompt 或 subagent。

和 prompt 规则不同,Hook 不是“请求 Claude 记住”,而是在事件发生时直接执行。适合必须每次都发生的动作。

适合自动化什么

官方文档给出的常见模式包括:

  • Claude 等待输入时发桌面通知。
  • Edit / Write 后自动格式化。
  • 阻止修改受保护文件。
  • compaction 后重新注入上下文。
  • 审计配置变化。
  • 目录或文件变化后重新加载环境。
  • 特定 permission prompt 自动批准。

最小例子

macOS 上添加 Notification hook:

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

配置后用 /hooks 查看。官方强调 /hooks 菜单是只读浏览器;新增、修改、删除 hook 还是编辑 settings JSON,或让 Claude 帮你改配置文件。

Hook 和 Skill 的边界

Skill 适合需要模型推理的流程,例如发布 checklist、代码审查说明、API 风格指南。

Hook 适合不应依赖模型判断的动作,例如:

  • 每次编辑后跑 formatter。
  • 禁止改 .env
  • 会话结束后写审计日志。
  • 等待输入时发通知。

如果某条规则必须严格执行,用 Hook;如果只是给 Claude 一个工作方法,用 Skill。

风险边界

Hook 会自动运行命令。配置时要避免把高风险动作做成无确认自动化,例如删除文件、发布生产、推送远端、修改凭据。Hook 越靠近写操作,越要小心 matcher 和命令范围。

官方来源

On this page