创建第一个 Hook

从零编写 Hook 脚本并接入 Claude Code,掌握事件驱动自动化的完整创建流程

配置19 分钟

一、Hook 的输入输出机制

Hook 脚本和 Claude Code 之间通过四个通道通信:

通道方向作用
stdinClaude Code → 脚本传入 JSON 上下文数据(事件名、工具名、工具输入等)
stdout脚本 → Claude Code返回结构化 JSON,控制 Claude 的后续行为
exit code脚本 → Claude Code基础决策信号:0 放行、2 阻断、其他为非阻断错误
stderr脚本 → Claude Code调试信息通道。退出码 2 时,stderr 内容反馈给 Claude

stdin:JSON 上下文数据

事件触发时,Claude Code 将一个 JSON 对象写入脚本的 stdin。所有事件共享以下公共字段:

字段说明
session_id当前会话标识符
cwd触发时的工作目录
hook_event_name触发的事件名(如 PreToolUse

工具相关事件(PreToolUse / PostToolUse 等)额外包含 tool_nametool_input。PostToolUse 还有 tool_output

stdout:结构化 JSON 输出

退出码 0 时,Claude Code 解析 stdout 中的 JSON。通用输出字段:

字段默认值作用
continuetrue设为 false 时 Claude 立即停止处理
stopReasoncontinuefalse 时显示给用户的原因
suppressOutputfalse设为 true 时隐藏 stdout 内容
systemMessage显示给用户的警告消息
付费内容

继续阅读完整课程

购买后即可解锁全部 16 个功能模块、实战场景与深度配置。

¥199¥399
  • 30 分钟完成第一个真实任务
  • 实战场景 + 深度配置
  • 长期访问,持续更新
Hooks 完全指南4/12