SuperAPI AI 工具集

hooks

智能体与模型

查看项目

更新于 10-15 17:25

技能介绍

用途:该技能帮助创建和配置 Claude Code 钩子,用于在 Claude Code 生命周期中的不同事件上自动执行操作,包括验证输入、格式化代码、添加上下文、控制继续或停止、自动批准或拒绝权限以及设置通知。

可用事件:PreToolUse、PostToolUse、UserPromptSubmit、Stop、SubagentStop、SessionStart、SessionEnd、PreCompact、Notification、PermissionRequest。创建任何钩子前须先获取最新文档:WebFetch https://code.claude.com/docs/en/hooks。

钩子类型: 命令式(type: "command"):快速、确定性的校验、文件操作、lint、格式化与简单规则判断。脚本从 stdin 读取 JSON 输入,按退出码返回结果:0 成功,2 阻止性错误(stderr 反馈给 Claude),其它为非阻止性错误。 提示词式(type: "prompt"):由 LLM 做上下文相关的智能判断,支持 Stop、SubagentStop、UserPromptSubmit、PreToolUse。提示词使用 $ARGUMENTS 占位符,期望返回 JSON:{"decision": "approve"|"block", "reason": "..."}。

配置位置:用户级 ~/.claude/settings.json,项目级 .claude/settings.json,本地不提交 .claude/settings.local.json。示例结构使用 hooks 键,配置 matcher(如 Bash、Write|Edit、mcp__memory__.*)与 hooks 数组(含 type、command 或 prompt、timeout)。

常用模式:PreToolUse 校验 Bash 命令;PostToolUse 在编辑后格式化代码;SessionStart 加载 git 状态与环境上下文;UserPromptSubmit 校验提示并追加时间戳;Stop 用提示词式钩子判断是否继续;PermissionRequest 自动批准安全读取操作。

环境变量:$CLAUDE_PROJECT_DIR(项目根目录)、$CLAUDE_ENV_FILE(仅 SessionStart)、$CLAUDE_CODE_REMOTE(Web 环境为 true)。

调试:用 /hooks 检查注册,确保 JSON 有效,脚本需可执行(chmod +x),用 claude --debug 查看执行细节。

安全建议:不盲信输入数据,Shell 中用 "$VAR",阻止路径穿越,使用绝对路径,跳过 .env/.git/密钥等敏感文件,设置 timeout,先在安全环境测试。

限制:完整事件输入输出 schema 需查阅官方文档;该技能资料未提供具体收费、价格与平台支持信息。