SuperAPI AI 工具集

claude-hooks-configuration

智能体与模型

查看项目

更新于 10-15 23:49

技能介绍

用途:在 settings.json 中为 Claude Code 配置生命周期钩子与事件处理器,让脚本在会话开始、工具执行前后、会话结束等时机自动触发。

主要能力:支持全部 17 个钩子事件,包括 SessionStart、SessionEnd、Stop、SubagentStop、PreToolUse、PostToolUse、PostToolUseFailure、PermissionRequest、WorktreeCreate、WorktreeRemove、TeammateIdle、TaskCompleted、ConfigChange 等。钩子类型有 command(运行 shell 命令,读 stdin,返回退出码或 JSON)、http(把数据发到 HTTPS 端点)、prompt(单轮 LLM 调用,返回 {ok: true/false})、agent(带工具访问的多轮子代理,返回 {ok: true/false})。command 钩子可设 async: true 实现后台即发即忘;任意钩子可设 once: true 使每个会话只运行一次。

使用方式:钩子配置在 .claude/settings.json,用户级路径为 ~/.claude/settings.json,项目级路径为 <project>/.claude/settings.json。结构按事件名组织,包含 matcher 与 hooks 数组,每项含 type、command、timeout 等字段。默认超时:command 为 600s,prompt 为 30s,agent 为 60s;建议始终显式设置 timeout。可查看配置:cat ~/.claude/settings.json | jq '.hooks';测试脚本:time bash ~/.claude/session-logger.sh。建议用 Claude Code 的 /hooks 菜单在修改后重载设置。

适用场景:会话开始时跑测试、linter、依赖检查;会话结束做日志、清理、保存状态;Stop/SubagentStop 做 git 状态检查与快速校验;PreToolUse 做快速校验;PostToolUse 做日志与通知。

限制与注意:SessionEnd 钩子可能因超时出现 "Hook cancelled" 错误,首选把慢操作放入后台子shell(( commands ) &>/dev/null & 后 exit 0),或显式增大 timeout;脚本报错、路径缺失或不可执行会分别导致 Hook failed、Command not found、Permission denied。另有一个独立的 starship 命令超时问题,需在 ~/.config/starship.toml 调整 command_timeout,与 Claude Code 钩子无关。未提供的收费、价格与平台信息暂未提供。