用途:该资料是 Claude Code Hooks 的核心参考,说明 Hook 如何响应 Claude Code 事件执行自定义命令、HTTP 调用、MCP 工具调用、LLM 提示或 agent 校验器,用于自动化、校验、格式化与安全控制。JSON 输入输出模式与示例模式需分别激活 /plugin-creator:hooks-io-api 与 /plugin-creator:hooks-patterns。
主要能力:列出全部 Hook 事件(如 PreToolUse、PostToolUse、PermissionRequest、SessionStart、Stop、SubagentStop、PreCompact、FileChanged 等)及其触发时机、匹配字段与常见用途;给出配置位置(用户、项目、本地、托管策略、插件 hooks.json、技能或 agent frontmatter)与结构示例;说明 command、http、mcp_tool、prompt、agent 五类处理器的字段,如 type、if、timeout、statusMessage、once、command、args、async、url、headers、prompt、model;列出各事件专用匹配器取值;说明路径占位符 ${CLAUDE_PROJECT_DIR}、${CLAUDE_PLUGIN_ROOT}、${CLAUDE_PLUGIN_DATA} 与 exec/shell 两种形式;列出环境变量及 CLAUDE_ENV_FILE 持久化方式。
使用方式:在配置文件中按 hooks.EventName 数组声明 matcher 与 hooks 处理器;命令可用 exec 形式(设置 args)或 shell 形式;调试可用 claude --debug-file /tmp/claude.log,会话中按 ctrl+O 开启 verbose,更细粒度可设 CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose;插件可用 claude plugin validate . 校验。
适用场景与限制:适用于工具调用前后校验与格式化、权限策略、会话环境初始化、上下文压缩前后处理、文件变更监控等。命令 Hook 以当前系统用户完整权限运行,需校验输入、引用变量、阻止路径穿越、使用绝对路径并避开敏感文件;Stop 与 SubagentStop 作用域不同,frontmatter 中定义的 Stop 会自动转为 SubagentStop;无匹配器事件会忽略 matcher;部分默认超时与阻塞上限等细节以资料为准。