Claude Hooks 进阶指南:从原理到实战配置

发布时间:2026/7/8 4:23:02
Claude Hooks 进阶指南:从原理到实战配置 Claude 进阶使用_hooks什么是 hookshooks的英文翻译是勾子他就是在程序运行到指定节点会触发的一个节点你可以在这个节点做一些事情就是这样。比如你先想象一下你家门口装了一个门铃。正常情况下你要有人按门铃你才知道外面有人。但是如果装了一个人体感应器呢只要有人走到门口它就自动亮灯、录像、发通知你根本不用去按任何按钮。Claude 的 Hooks本质上就是这种感应器。hooks 都有哪些作者在官方文档选了几个比较常用的简单说明一下想要更多更具体的一定要去看官方文档。Hook触发时机什么时候触发常见用途举个例子PreToolUseClaude 准备调用工具之前拦截、检查、限制操作在执行rm -rf、修改生产环境文件之前先确认禁止编辑某些目录PostToolUseClaude 调用工具完成之后自动执行后续任务修改代码后自动运行eslint、prettier、单元测试UserPromptSubmit用户刚发送消息时对用户输入做预处理自动补充项目规范、团队约定、代码风格到 Prompt 中StopClaude 完成回答准备结束时收尾工作自动生成工作总结、保存日志、记录本次修改内容NotificationClaude 需要通知用户时自定义通知方式任务完成后发送系统通知、播放提示音、推送到 Slackhooks 怎么配置文档中已经说明了只要在setting.json中配置就可以了并给出了案例下面这段意思是 claude 准备使用命令rm *的时候会执行项目目录下.claude/hooks/block-rm.sh的脚本{ hooks: { PreToolUse: [ { matcher: Bash, hooks: [ { type: command, if: Bash(rm *), command: ${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh, args: [] } ] } ] } }我们写一个简单的就是在 claude 停止工作的时候给一个提示把下面的代码放进项目的setting.json注意这个提示的命令是 mac 的原生命令windows不可用{ hooks: { Stop: [ { hooks: [ { type: command, command: osascript -e beep -e display dialog \Claude 已完成任务\ buttons {\确定\} default button \确定\ } ] } ] } }效果展示当然了也可以在需要授权的时候让他进行提示