【Claude Code理论篇】Hooks :理解事件驱动的自动化钩子

Claude Code Hooks 学习 • 最终仍落盘到 settings.json,可直接编辑。——官方 8 大事件、全部字段、10+ 脚本,一步到位。或重启 Claude Code 才生效。三、配置文件结构(全局 vs 项目)四、匹配器(Matcher)语法精讲。六、可视化配置 vs 手写 JSON。进入 TUI,可增删改查。九、安全红线(官方原文提炼)八、调试与故障排查官方清单。十、一键速查表(打印贴墙)二、官方 8 大事件全表。五、官方环境变量全集。 阅读详情

Claude Code Hooks 理论篇:理解事件驱动的自动化钩子

​ 你可能已经用 CLAUDE.md 管理项目知识,用 Skills 封装可复用能力,用 MCP 接入外部工具。但有些事情,这三层都搞不定:

  • 每次 Claude 编辑文件后,自动跑 lint
  • 每次 Claude 要动 .env 文件时,直接拦截
  • 长时间任务跑完后,自动发通知到 Slack

​ 你当然可以每次在对话里提醒它"改完记得跑 lint"“别碰 .env”,但说实话,你不可能每次都记得说,而且说了它也不一定每次都照做。

​ 这些需求有个共同特点:它们不是"对话"能驱动的,而是需要在特定事件发生时自动触发。这就是 Hooks 的领地。

在这里插入图片描述

​ 如图所示,左边是传统的"对话驱动"模式,每个自动化动作都需要你主动开口。右边是 Hooks 带来的"事件驱动"模式——规则设好之后,Claude 的操作会自动触发后续流程,你可以真正地从重复性监督中解放出来。

一、Hooks 是什么

​ 当 Claude Code 中发生特定事件时,自动执行你指定的 shell 命令。

​ 打个比方:你家门口装了一个智能门铃。有人按门铃(事件发生),摄像头自动拍照并推送到你手机(自动执行)。你不需要一直盯着门口,规则设好了,它自己会跑。

  • Hooks 的思路完全一样:

    • 事件 = Claude Code 的操作(编辑文件、写文件、执行命令……)
    • 自动执行 = 你写的脚本(检查代码、拦截操作、发通知……)

    ​ 如果你用过 Git,应该对 pre-commit、post-commit 这类钩子不陌生。Hooks 就是把对象从 Git 操作换成了 Claude Code 的操作,编辑文件、运行命令、发送通知、结束回复,这些都是可以挂钩子的事件。

  • 更重要的是,Hook 的执行结果可以影响 Claude 的行为。比如你在 “编辑文件前” 挂了一个检查脚本,如果脚本返回非零退出码,这次编辑就会被阻止。Claude 会收到你的反馈,然后根据反馈调整行为。

  • 这不是被动的日志记录,而是主动的流程控制。

二、支持哪些事件

​ Claude Code 目前支持五种 Hook 事件:

事件触发时机典型用途
PreToolUseClaude 调用工具之前拦截危险操作、校验参数
例如检查要编辑的文件是不是敏感文件,如果是就拦截
PostToolUseClaude 调用工具之后自动 lint、格式化、测试
编辑完文件后自动跑 lint
NotificationClaude 发送通知时转发到 Slack、桌面通知
把通知转发到 Slack 或桌面弹窗
StopClaude 结束回复时自动化收尾工作
SubagentStop子代理结束时监控子任务完成状态

​ 其中 PreToolUse 和 PostToolUse 是最常用的两个。因为 Claude Code 的大部分操作(编辑文件、写文件、执行命令)都是通过"工具调用"实现的,你可以精确地在这些操作前后插入自己的逻辑。编辑文件用的是 Edit 工具,写新文件用的是 Write 工具,跑命令用的是 Bash 工具。你可以针对特定工具设置 Hook,比如"只在 Claude 用 Edit 工具的时候触发"。

​ 五种事件并非平级关系:PreToolUse 和 PostToolUse 围绕"工具执行"这条主线展开,是最精细的控制点;Notification 和 Stop 则是独立于具体工具的全局事件,适合做收尾和通知类的工作。

三、怎么配置

​ Hooks 的配置写在 settings.json 里,有两个位置可以放:

位置作用域适合放什么
~/.claude/settings.json全局,所有项目生效安全类规则(如敏感文件保护)
项目根目录/.claude/settings.json仅当前项目生效项目特定的规则(如跑某个 linter)

💡 如果两个地方都配了同一类 Hook,两边都会执行,不会冲突。

3.1 配置内容

​ 配置的基本结构长这样:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit",
        "hooks": [
          {
            "type": "command",
            "command": "bash /path/to/your-script.sh"
          }
        ]
      }
    ]
  }
}

3.2 内容说明

​ 看起来层级有点深,但其实就回答了三个问题:

问题对应字段上面的例子
什么时候触发?外层的 keyPreToolUse(Claude 动手之前)
对哪个工具触发?matcher"Edit"(只在编辑文件时)
触发后执行什么?command跑你写的 shell 脚本

​ matcher 可以不写,不写就表示"不管 Claude 用什么工具都触发"。

  • 这个结构支持同一个事件挂多个 hook,也支持同一个事件对不同工具配不同的 hook。灵活度很高。

四、Hook 脚本是怎么工作的

​ 这一节解释你的脚本和 Claude Code 之间是怎么"对话"的。如果你对 shell 脚本不太熟,先看个整体画面就好,细节可以等到实战篇再对照理解。

4.1 输入(Claude 怎么把信息传给你的脚本)

​ 当 Hook 触发时,Claude Code 会往你的脚本里输入一段 JSON 数据,告诉你"我正在做什么"。比如 Claude 要编辑一个文件,你收到的数据大概长这样:

{
  "tool_name": "Edit",
  "tool_input": {
    "file_path": "/path/to/file.ts",
    "old_string": "...",
    "new_string": "..."
  }
}

​ 你的脚本可以从这段 JSON 里提取信息(比如取出 file_path,看看是不是敏感文件),然后决定怎么处理。

4.2 你的脚本怎么把结果告诉 Claude

​ 你的脚本有两种方式给 Claude 反馈:

  • 第一种:打印文字。

    脚本里 echo 出来的内容会被 Claude 看到。比如你 echo "这个文件不允许修改",Claude 会读到这句话并调整后续行为。

  • 第二种:退出码。

    这是最关键的控制信号:

    • 脚本正常结束(退出码 0)= 放行,Claude 继续操作
    • 脚本报错退出(退出码非 0)= 拦截,Claude 的操作会被取消
PreToolUse(动手前)PostToolUse(做完后)
退出码 0✅ 允许操作✅ 反馈给 Claude
退出码非 0🚫 阻止操作(文件不会被改)⚠️ 告诉 Claude “有问题”(但操作已经做了)

​ 注意区别:PreToolUse 的非零退出码会真正阻止操作(文件不会被修改),而 PostToolUse 的非零退出码只是告诉 Claude “后处理发现了问题”,因为操作已经执行了。

五、注意事项

5.1 执行时间要短

​ Hook 是同步执行的,在它跑完之前 Claude 会一直等着。一个跑 3 秒的 lint 没问题,一个跑 30 秒的全量测试就不合适了。长时间的检查应该放到其他地方(比如 CI)。

5.2 先手动测试

​ 在把脚本配到 hooks 之前,先用管道模拟一下:

echo '{"tool_name":"Edit","tool_input":{"file_path":"test.ts"}}' | bash ~/scripts/guard-sensitive-files.sh
echo $?

​ 确认脚本能正确解析 JSON、返回正确的退出码、输出合理的反馈信息,再写进配置。

5.3 其他

  • jq 是必备依赖。 几乎所有 Hook 脚本都需要解析 JSON 输入,确保你的环境里装了 jq。sudo apt install jq(Ubuntu)或 brew install jq(macOS)。

  • 配置合并。 如果全局和项目级都配了同一个事件的 hook,两边都会执行。安全类的 hook(如敏感文件保护)建议放全局配置,项目特定的(如特定 linter)放项目级配置。

六、Hooks 在扩展体系中的位置

​ 回顾一下 Claude Code 的扩展体系,Hooks 补全了最后一块拼图:

层级职责触发方式
CLAUDE.md知识:项目约定和规范自动加载
Skills能力:可复用的指令集用户手动调用
MCP集成:连接外部工具和服务Claude 按需调用
Hooks自动化:事件驱动的流程控制事件自动触发,无需人工干预

​ Hooks 是这四层里唯一能做到"无人值守"的。CLAUDE.md 提供知识但不执行动作,Skills 需要你主动触发,MCP 需要 Claude 决定调用,只有 Hooks 是真正的"设好就忘"。
在这里插入图片描述

​ 四层扩展体系各司其职:知识、能力、集成、自动化,从被动到主动逐层递进。Hooks 站在最顶层,是唯一不需要人或 Claude 主动触发的那一层。

Claude Code Hooks:事件驱动的AI编程自动化实践指南 Claude Code Hooks 是一种嵌入式、事件驱动的自动化机制,它在AI代码生成过程中精准捕获 Write、Edit、UserPromptSubmit 等原子行为事件,通过结构化上下文实现零侵入式干预。其核心价值在于将模糊的‘AI输出’转化为可审计、可拦截、可编排的确定性动作,显著提升代码质量、安全合规性与团队协作效率。典型应用场景包括自动格式化(black/isort)、测试触发(pytest)、敏感路径拦截(/etc/)、密钥硬编码扫描、Git分支保护及文档同步等。本文聚焦于真实工程落地中的事件 阅读详情

相关推荐

Claude Code 完整使用教程(2026最新版)

《Claude Code 完整使用教程(2026最新版)》摘要: Claude Code 是 Anthropic 公司推出的智能编程工具,通过自然语言对话实现代码编写、调试和重构。本教程基于 v2.1.101 版本,涵盖安装配置、核心功能及最新特性。主要内容包括: 多平台安装方式(macOS/Linux/Windows) 桌面应用专属功能如并行会话、定时任务和语音模式 模型选择指南(Sonnet/Opus/Haiku) 快速入门示例:5分钟创建Node.js项目 核心功能:代码读写、命令执行、Git集成等

程序猿_三产 2万+

Claude Code Hooks 系统详解

Hooks(钩子)是 Claude Code 的事件驱动安全机制,提供实时拦截和验证能力。它就像一个"安检系统",在关键操作发生前后进行监控和干预。通俗理解: Hooks 类似于游戏的"存档系统",在危险操作前提醒、阻止,在安全操作后记录和反馈。用户请求↓Claude 决策↓[PreToolUse Hook] ← 在这里拦截和验证↓[批准/修改/拒绝]↓执行工具↓[PostToolUse Hook] ← 在这里记录和审计↓返回结果Hookify。

言之。 1万+

Claude Code Hooks:事件驱动的AI工作流自动化实践

代码钩子(Code Hooks)是软件工程中轻量、确定、可嵌入的事件拦截机制,其核心在于将大模型能力精准注入开发工作流的关键节点,而非泛化为自主Agent。结合工作流自动化(Workflow Automation)理念,它通过结构化输入输出、Schema驱动提示、上下文编织与决策执行分层等工程化设计,显著提升AI在CI/CD、Git操作、日志诊断等场景中的可靠性与落地效率。本文聚焦Claude API在真实工程环境中的Hook式集成方法,涵盖安全边界、性能熔断、输出校验与成本控制等关键实践,为开发者提供开箱

weixin_32430941的博客 291

Claude code:Hooks

本文介绍了Claude Code Hooks的轻量化扩展机制,它通过自定义脚本在AI运行的关键节点插入逻辑,无需修改源码。Hooks的设计类似于Java AOP切面编程,支持在工具执行前后、失败时等场景进行扩展。文章详细讲解了Hooks的核心事件、运行流程、匹配规则、通信协议,并提供了4个实用脚本示例:操作审计日志、代码自动格式化、拦截危险Git命令等。Hooks通过stdin/stdout进行跨语言通信,可实现安全拦截、日志记录、异常告警等功能,提升开发效率和安全性。

27届Java后端炒粉练习生,AICoding中........ 357

掌握 Claude Code Hooks:让 AI 变得更聪明!

本文介绍了Claude Code Hooks的核心功能与架构设计。该系统通过13种挂钩事件实现对AI交互流程的全面控制,包括提示验证、安全过滤、日志记录等功能。采用UV单文件脚本架构实现模块化管理,各挂钩独立运行并声明依赖。关键特性包括提示级控制、智能TTS系统、多层次安全防护和自动日志记录。文章详细解析了挂钩生命周期、错误处理机制,特别是UserPromptSubmit挂钩作为第一道防线的运作原理。该系统为AI交互提供了审计、验证和流程控制的完整解决方案。

weixin_44626085的博客 953

Github狂飙8k star,Claude Code 模板:一键搞定项目配置的高级法器

是一个npx 驱动的 CLI 工具,由社区开发者MaoTouHU让开发者从“配环境”回归“写代码”✅ 标准化的CLAUDE.md(含框架说明、最佳实践)✅ 常用命令(测试、构建、部署、调试)✅ 自动化钩子(格式化、类型检查、安全审计)✅ MCP 服务集成(数据库、文件系统、Web 搜索)在templates/下新建目录,如CLAUDE.mdhooks/.mcp.json提交 PR 即可共享给社区。是 Claude Code 生态中不可或缺的“加速器”。🚀一键生成完整 AI 编程配置。

weixin_44058951的博客 1758

Hooks才是Claude Code CLI 的革命性更新

Claude Code CLI提供了功能强大的Hooks事件及反馈机制,开发者可以使用自己熟悉的不同类型脚本来完成自定义Hooks操作,除了示例中的代码格式化、系统通知、文件保护以及敏感词拦截等还可以利用Hooks做更多事情,比如任务完成进行语音提示、任务完成自动触发commit等等都是可以的,场景越多越能感受到SubAgent虽然强大,Hooks才是Claude Code CLI的革命性创新。

zww学习笔记 529

QEMU pcie config空间访问机制

而pci_host_conf/data_le_ops的定义是在hw/pci/pci-host.c里,对于0xCF8端口的处理,因为是地址选通,所以只需要在write的时候记录、read的时候返回记录的值即可。而pci_host_config_write/read_common接口,在前256Bconfig空间的模拟中,也同样是会调用这个接口,所以后续的处理都是一样的。这是真实的硬件设计,而对于QEMU+KVM的虚机场景,显然是要基于硬件实现和虚拟化的需求设计虚机访问config空间的完整流程。

leiyanjie8995的博客 1952

Claude Code 的钩子机制(Hooks)

Hooks 是一种基于事件触发的自动执行机制。Hooks 允许我们在这些特定的事件节点上,“挂载”我们自定义的脚本或程序。这就像是给 Claude 装上了“传感器”和“触发器”。

zhangyifang_009的博客 2126

【DSP】【工程实战】从零构建C6678多核工程:CCS环境配置与启动模式详解

本文详细介绍了在CCS开发环境中从零构建TMS320C6678多核DSP工程的完整流程。内容涵盖KeyStone架构解析、工程创建、基础代码编写、链接命令文件配置、仿真器调试,并重点深入讲解了包括I2C EEPROM在内的多种一级启动模式原理与配置方法,为开发者提供了一套清晰、可复用的实战指南。

weixin_29164185的博客 418

Unity PBR实战:从零打造丝绸材质各向异性高光效果

本文详细介绍了在Unity中实现丝绸材质各向异性高光效果的PBR实战技巧。通过改造Standard Shader、适配IBL环境光以及高级效果调优,开发者可以创建出逼真的丝绸材质,展现动态光纹变化。文章包含关键代码示例和参数配置建议,特别适合需要提升材质表现力的Unity开发者。

weixin_29015483的博客 460

Claude Code 完整指南(四):Hooks(自动化事件触发)

很多人用 Claude Code 写代码,却依然在手动跑格式化、反复确认危险命令、担心漏测就结束会话。本文系统讲透 Claude Code 的 Hooks 机制,教你在会话、工具执行前后和停止阶段自动完成环境检查、危险命令拦截、敏感信息检测、格式化与测试,让“靠自觉”变成“靠系统”。通过真实脚本与可复用模板,手把手把 Claude Code 从聊天助手升级为可控、安全、高效的工程化开发系统。

阿甘兄 7469

OAI数据集申请下载全攻略:从个人NDA账号注册到数据包下载的保姆级避坑指南

本文提供OAI数据集申请下载的完整指南,涵盖从个人NDA账号注册到数据包下载的全流程。重点解析login.gov验证陷阱、浏览器兼容性问题、NDA权限申请技巧及nda-tools高效使用方法,帮助医学影像研究者避开常见技术障碍,快速获取全球骨关节炎研究数据库OAI的宝贵数据资源。

weixin_28698059的博客 752

8个场景掌握Claude Code Hooks:AI开发自动化的终极指南

Claude Code Hooks是Anthropic Claude Code平台中一项革命性的功能,它允许开发者在AI辅助编程的不同阶段自动执行自定义操作,从而显著提升开发效率和代码质量。通过智能钩子,你可以实现从代码格式化、安全检查到团队协作的全流程自动化控制,让AI开发变得更加智能和可控。 ## 场景一:开发环境自动化配置 每次启动Claude Code会话时,你是否都需要手动设置环境变

gitblog_00232的博客 1121

shopro 商城,2025年新申请的微信支付提示失败,支付提示 Get Wechat Public Cert Error 问题的修复办法

shopro 商城,最近新申请的微信支付商户 支付提示 Get Wechat Public Cert Error 问题的修复办法

行走的卡路里 1245

Power BI常见问题篇1:无法打开文档

Power BI常见问题篇1:无法打开文档

weixin_48273257的博客 3304

Claude Code Hooks Mastery高级钩子:构建复杂工作流的终极指南

Claude Code Hooks Mastery是一套强大的高级钩子系统,能够帮助开发者构建复杂且智能的工作流。通过这些钩子,您可以在Claude Code会话的关键节点注入自定义逻辑,实现自动化控制、安全验证和智能决策,从而极大提升开发效率和系统可靠性。 ## 为什么选择Claude Code Hooks Mastery? 在现代软件开发中,工作流自动化和智能化变得越来越重要。Claude

gitblog_00438的博客 1283

RK3588 MPP,RGA,DRM,QT之RGA

RK3588多路视频采用RGA来进行混合成一帧

dreamliweiming的博客 4265

深度探索Claude Code Hooks:重新定义AI辅助开发的自动化边界

你是否曾经历过这样的开发场景?在深夜调试代码时,突然意识到刚刚执行的命令可能会破坏整个项目环境;或者在处理敏感数据时,担心AI助手无意中泄露关键信息;又或者,你渴望能够自动化那些重复性的代码审查和质量检查工作,让AI助手真正成为你的开发伙伴而非简单的代码生成器。这些痛点正是Claude Code Hooks要解决的核心问题——如何在AI辅助开发中建立确定性的控制层。 Claude Code Ho

gitblog_01081的博客 622

Qwen-Image(阿里通义千问)技术浅析(一)

Qwen-Image(阿里通义千问多模态模型)是阿里巴巴推出的视觉-语言多模态大模型,能够理解图像内容并完成复杂的跨模态任务。

m0_75253143的博客 678

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

10个实战Claude Code Hooks技巧:从零掌握AI开发自动化

Claude Code Hooks是提升AI开发效率的终极利器,让你在Claude Code会话的各个阶段自动执行自定义操作。作为中级和高级开发者,掌握这些钩子技巧可以显著提升你的开发效率、代码质量和安全性。本文将带你从零开始,通过10个实战示例全面掌握Claude Code Hooks的完整应用。 ## 引言:为什么需要Claude Code Hooks? Claude Code Hooks

gitblog_00478的博客 788

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

claude code hooks

不管是什么类型的大模型agent,比如写代码的等等,它会遇到一个问题,不稳定性。Claude Code hooks是用户自定义的 shell 命令,可在 Claude Code 生命周期的不同阶段执行。钩子能对 Claude Code 的行为进行确定性控制,确保特定操作始终发生,而非依赖大型语言模型自行选择是否运行。Claude Code Hooks 是一套基于生命周期事件的自动执行机制,允许开发者在 Claude Code 执行任务的关键节点,插入由系统强制执行的脚本或命令。由操作系统执行。

sinat_28694519的博客 1193

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

3个核心技巧:掌握Claude Code Hooks Mastery的钩子系统

你是否曾想过让AI助手在每次执行命令前都进行安全检查?或者希望在特定操作后自动运行代码格式化?Claude Code Hooks Mastery的钩子系统正是为此而生。这个强大的功能允许你在AI助手执行关键操作时插入自定义逻辑,实现自动化工作流和智能决策。 ## 为什么你需要Claude Code Hooks Mastery 在AI助手的工作流程中,缺乏自动化控制常常导致效率低下。想象一下,每

gitblog_00164的博客 525

Claude Code Hooks终极指南:掌握13个钩子事件的高效实战

Claude Code Hooks是Anthropic Claude Code CLI的核心扩展机制,为开发者提供了对AI助手行为的确定性控制能力。通过13个不同的钩子事件,您可以在Claude Code的生命周期中注入自定义逻辑,实现安全验证、上下文增强、自动化工作流等高级功能。本文将深入探讨Claude Code Hooks的完整实现架构、实战应用场景和性能优化策略。 ## 钩子生命周期与架

gitblog_00854的博客 351

如何快速掌握Claude Code Hooks:面向开发者的终极自动化指南

Claude Code Hooks是AI辅助开发的革命性工具,让你能够在Claude Code会话的不同阶段自动执行自定义操作。想象一下,你的AI助手不仅能编写代码,还能自动格式化、安全检查、环境配置,甚至智能判断任务完成状态——这就是Claude Code Hooks带来的强大能力。通过13种不同的钩子事件,你可以构建一个完全自动化的开发工作流,显著提升AI编程效率和质量。 [![Claude

gitblog_00639的博客 204

微信机器人接入 12 个 AI 服务:从扫码到群聊自动回复

「@小助手,Kafka 消费者怎么接?」——你在开会,群里又堆了 20 条消息。wechat-bot(微信机器人)解决的就是这类场景:基于 Wechaty 扫码登录微信后,把收到的消息自动交给 DeepSeek、Claude、Ollama、Pi 等 AI 服务回复,同时能回溯历史消息做统计和分析。 ## 能力速览:微信机器人接哪些 AI 服务、怎么触发 先看全局,按用途分三组就够了。 - 免

gitblog_00286的博客 454
上一篇: GitHub 多账号 SSH 配置指南:让个人和工作账号共存
下一篇: 【Warp+Claude】任务完成自动通知(macOS + Warp 版)
未收敛
博客等级 码龄11年 3309粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未收敛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值