SuperAPI AI 工具集

hooks

智能体与模型

查看项目

更新于 10-15 20:07

技能介绍

用途:Hooks 是在工具执行前后自动运行的脚本,用于校验、拦截危险操作、给出提示或清理。类型分三类:PreToolUse 在工具执行前运行,适合验证与阻止危险操作;PostToolUse 在工具执行后运行,适合提出建议、记录日志;Stop 在对话结束时运行,适合清理。

创建方式:编写脚本到 .claude/hooks/,通过环境变量 TOOL_NAME(Write、Edit、Bash 等)和 TOOL_INPUT(JSON 格式输入参数)读取上下文,用退出码表达结果:0 成功(允许)、1 警告(允许但显示消息)、2 阻止执行。随后执行 chmod +x .claude/hooks/my-hook.sh 赋予执行权限,再在 .claude/settings.local.json 的 hooks 字段中按 PreToolUse、PostToolUse、Stop 注册,可用 matcher 以正则匹配工具,如 "Write|Edit|Bash",hooks 项包含 type 为 command 及 command 路径。

示例用途:PreToolUse 可阻止对 main/master 的 force push、编辑 .env 时给出警告;PostToolUse 可在 git commit 后检测 schema 变更并建议创建迁移文件;Stop 可提示已合并分支并建议删除。

调试:可直接以 TOOL_NAME 与 TOOL_INPUT 环境变量运行脚本测试,并用 echo $? 检查退出码。

限制与建议:避免长时间处理,输出到 stderr 而非 stdout,仅给建议而不自动执行,用 jq 解析 JSON,jq 缺失时按失败安全原则允许(exit 0)。具体配置字段和更多细节暂未提供。