用途:为 Claude Code 提供 hooks 的创建、配置与使用指导,让用户在不修改核心代码的前提下,对 Claude 的行为做项目级自动化、安全校验与工作流定制。
主要能力:支持多种事件钩子,包括 PreToolUse(工具执行前,可阻断)、PostToolUse(执行后,不可阻断)、UserPromptSubmit、Stop、SubagentStop、SessionStart、SessionEnd、PreCompact、Notification。钩子分两类:command 类型执行 shell 命令,适合简单校验、日志、外部工具与桌面通知;prompt 类型由 LLM 评估提示,适合复杂判断与自然语言校验。可用 matcher 按工具名匹配,支持精确匹配、正则多工具(如 Write|Edit)、MCP 工具(如 mcp__.*),不写 matcher 则对所有工具生效。
使用方式:在项目 .claude/hooks.json 或用户 ~/.claude/hooks.json 中配置 hooks。命令钩子通过 stdin 接收 JSON,可选通过 stdout 返回 JSON;阻断型钩子可返回 decision(approve 或 block)与 reason。可用环境变量 $CLAUDE_PROJECT_DIR、${CLAUDE_PLUGIN_ROOT},prompt 钩子用 $ARGUMENTS。建议用 claude --debug 测试,并用 jq 校验配置。
适用场景:命令日志与审计、拦截破坏性 git 命令、编辑后自动格式化、会话开始时注入上下文、需要输入时发送桌面通知等。
限制与注意:需防止 Stop 钩子无限循环(检查 stop_hook_active),设置合理超时,脚本需可执行权限,使用绝对路径避免路径注入,阻断型钩子应保守使用。具体收费、平台支持等资料暂未提供。