分享
02.定义Hooks
输入“/”快速插入内容
02.定义Hooks
用户3907
用户3907
1月14日修改
Claude Code 中的 Hooks 能在工具执行之前或之后拦截并控制调用,从而让你精细掌控 Claude 在开发环境中能做与不能做的事情。
构建一个 Hook
创建 Hook 包含四个主要步骤:
•
决定使用 PreToolUse 还是 PostToolUse——PreToolUse 可阻止工具调用执行;PostToolUse 在工具已被使用后运行。
•
确定你要监控的工具调用类型——需要明确哪些工具会触发你的 Hook。
•
编写一个接收工具调用的命令——该命令通过标准输入接收关于拟执行工具调用的 JSON 数据。
•
如有需要,为 Claude 提供反馈——你的命令退出码会告知 Claude 是否允许或阻止该操作。
可用工具
Claude Code 提供多种内置工具,可用 hooks 进行监控。
要查看当前环境中具体可用的工具列表,你可以直接询问 Claude。这一点尤其重要,因为当你添加自定义 MCP 服务器后,可用工具会发生变化。
工具调用数据结构
当你的 hook 命令执行时,Claude 会通过标准输入(stdin)发送包含拟执行工具调用细节的 JSON 数据,例如:
代码块
Bash
{
"session_id": "2d6a1e4d-6...",
"transcript_path": "/Users/sg/...",
"hook_event_name": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "/code/queries/.env"
}
}