SuperAPI AI 工具集

hook-development

编程与开发

查看项目

更新于 10-15 23:42

技能介绍

用途:本资料是编写 Claude Code 钩子的规范指南。钩子是响应 Claude Code 事件的自动化机制,用于校验操作、执行策略、加载上下文和集成外部工具。

主要能力:钩子分两类——基于提示词(推荐,由 LLM 做上下文感知决策)和基于命令(Shell 命令,快速确定性检查)。支持的事件包括 PreToolUse(工具执行前校验、批准/拒绝、修改输入)、PostToolUse(完成后测试、lint、日志、反馈)、Stop、SubagentStop、UserPromptSubmit、SessionStart、SessionEnd、PreCompact、Notification。

使用方式:插件钩子写在 hooks/hooks.json,采用 {"hooks": {...}} 包装格式;用户设置写在 .claude/settings.json,事件直接置于顶层,两者格式不同。命令钩子示例:{"type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh", "timeout": 60};提示词钩子示例:{"type": "prompt", "prompt": "...", "timeout": 30}。路径应使用 ${CLAUDE_PLUGIN_ROOT} 保持可移植。匹配器区分大小写,支持精确、多工具、正则与通配。退出码 0 为成功,2 为阻断错误(stderr 回传给 Claude),其他为非阻断错误。输入经 stdin 传入,含 session_id、transcript_path、cwd、hook_event_name、tool_name、tool_input 等字段;输出为 JSON,PreToolUse 可返回 permissionDecision(allow/deny/ask)与 updatedInput,Stop/SubagentStop 返回 decision(approve/block)。环境变量有 $CLAUDE_PLUGIN_ROOT、$CLAUDE_PROJECT_DIR,SessionStart 可用 $CLAUDE_ENV_FILE 持久化变量。

适用场景:文件写入校验、改动后自动测试、任务完成校验、会话启动加载项目上下文等。

限制:钩子在会话启动时加载,修改配置或新增脚本需重启 Claude Code 才生效;所有匹配的钩子并行运行,彼此看不到对方输出,需按独立设计。调试可用 claude --debug,并可用 /hooks 查看已加载钩子。资料未提供收费、价格与平台信息。