SuperAPI AI 工具集

claude-hook-authoring

智能体与模型

查看项目

更新于 10-16 09:49

技能介绍

用途:在 Claude Code 中创建事件钩子(hooks),自动执行工作流、校验操作并对各类事件做出响应。\n\n主要能力:

  1. 两类钩子执行方式:prompt(用于复杂推理、上下文相关校验,由 LLM 判断动作是否安全)和 command(用于确定性检查、外部工具、性能场景)。
  2. 覆盖多种事件:PreToolUse(可阻断)、PostToolUse、PostToolUseFailure、PermissionRequest(可阻断)、UserPromptSubmit、Notification、Stop、SubagentStart、SubagentStop、PreCompact、SessionStart、SessionEnd。
  3. 支持 matcher 匹配工具与文件模式,如 Write、Edit|Write、、Write(.py)、mcp__memory__.*;生命周期事件使用专属 matcher(startup、resume、clear、compact、manual、auto)。
  4. 钩子通过 stdin 接收 JSON 输入,包含 session_id、cwd、hook_event_name、tool_name、tool_input 等字段;可用 $TOOL_INPUT、$TOOL_RESULT、$USER_PROMPT 等访问。
  5. 输出方式:exit 0 继续、exit 2 阻断(仅 PreToolUse)、exit 1 警告;也可输出 JSON,含 continue、systemMessage、hookSpecificOutput 等字段,PreToolUse 可经 updatedInput 修改输入、经 permissionDecision 控制权限。\n\n使用方式:把配置放在 .claude/settings.json(团队共享)、.claude/settings.local.json(本地)、~/.claude/settings.json(个人)或 plugin/hooks/hooks.json(插件,需 wrapper 结构)。命令钩子用 ${CLAUDE_PLUGIN_ROOT}、$CLAUDE_PROJECT_DIR 等环境变量保证可移植。SessionStart 可将变量写入 $CLAUDE_ENV_FILE 持久化。技能、智能体和命令也可在 frontmatter 中定义组件级钩子,仅支持 PreToolUse、PostToolUse、Stop。调试可用 claude --debug 或手动管道输入测试。\n\n适用场景:自动格式化、阻断危险命令、敏感路径与凭据校验、上下文注入、清理与完成通知、子代理使用跟踪等。\n\n限制:所有匹配钩子并行执行,彼此看不到对方输出,顺序不确定,需按独立设计。钩子修改后需重启 Claude Code 才生效,不支持热替换。应校验输入、加引号、设超时,避免记录敏感数据。具体价格与平台支持暂未提供。