Claude Hooks logo

Claude Hooks

打开

Claude Code 里的确定性 shell 钩子。在编辑、停止和权限事件上跑命令,也支持基于提示和 HTTP 的钩子。

分享:

Claude Hooks

Claude Hooks 是用户定义的 shell 命令,Claude Code 在生命周期固定点执行。官方文档强调它和技能的差别:钩子是确定性的。格式化、通知、保护文件拦截、权限自动批准总会跑,而不是等模型想起来。需要判断时可以用基于提示或智能体的钩子。也有给远端监听器用的 HTTP 钩子。

当前指南的例子包括:Claude 等输入时的桌面通知、编辑后自动格式化、拦截对保护文件的写入、压缩后回注上下文、审计配置变更、目录变化时重载环境。匹配器可按工具名和参数过滤。钩子写在设置文件(用户或项目)里,不要写在聊天里。

核心功能

  • 生命周期 shell:文档提到 UserPromptSubmit、PreToolUse、PostToolUse、Stop,以及通知类钩子。
  • 输入输出约定:从 stdin 读 JSON,可返回结构化 JSON 或退出码。
  • 匹配器:把钩子限制在某个工具或参数模式。
  • 基于提示和智能体的钩子:规则不是正则时再用模型。
  • 不是技能:技能教,钩子执行。

适用场景

  • 每次编辑后格式化和 lint
  • 禁止写入密钥或生成文件
  • 智能体在等待时通知你,这样可以离开终端。

定价

钩子随 Claude Code 提供,没有单独 SKU。你仍付跑会话的 Claude 方案或 API。再核 claude.com/pricing

快速开始

  1. Automate actions with hooks
  2. 按入门走查,在设置文件里加 hooks 块。
  3. 先做通知钩子,再做 PostToolUse 格式化。
  4. 需要 schema 时用该指南链出的 hooks reference。

常见问题

钩子能拦住 Claude 吗?

能。官方例子包括拦截编辑和自动批准特定权限。依赖拦截前先读退出码和 JSON 输出规则。

钩子和技能?

技能是按需加载的说明。钩子在事件上总会触发。两者一起用:技能管流程,钩子管闸门。

放在哪?

设置文件里,也可以打进 插件

替代方案

使用技巧

  1. 钩子保持短而无聊。太长的 LLM 钩子会变成第二个智能体。
  2. 记录钩子失败。沉默的格式化器会浪费整场会话。
  3. 回看 reference 里的事件名。集合已经超出早期五事件博文。

总结

钩子让 Claude Code 服从仓库。从 hooks 指南 开始,先加通知和格式化,再打包其余。

评论

还没有评论。成为第一个评论的人!