用途:该资料讲解如何为 Claude Code 配置生命周期钩子与事件处理器,覆盖 SessionStart、SessionEnd、Stop、PreToolUse、PostToolUse,并给出避免“Hook cancelled”错误的做法。
主要能力:说明各钩子的触发时机与默认超时(均为 60 秒),提供超时建议(SessionStart 120–300s、SessionEnd 60–120s、Stop 30–60s、PreToolUse 10–30s、PostToolUse 30–60s),以及“Hook cancelled”的根因与两种解法:后台子 shell 立即退出,或在配置中显式加 timeout。
使用方式:钩子配置在 .claude/settings.json,用户级为 ~/.claude/settings.json,项目级为 <project>/.claude/settings.json;每个钩子项可含 type、command、timeout 字段。查看配置:cat ~/.claude/settings.json | jq '.hooks';计时脚本:time bash ~/.claude/session-logger.sh;追踪慢操作:bash -x ~/.claude/session-logger.sh 2>&1 | head -50;修改后可用 /hooks 菜单重载。推荐后台写法为将慢操作包在 ( ... ) &>/dev/null & 中并 exit 0。
适用场景:会话启动时跑测试、linter、依赖检查;会话结束或 /clear 时记录日志、清理、保存状态;助手停止时做 git 状态检查;工具执行前后做校验与通知。
限制:资料未提供该工具/插件的安装命令、收费与价格信息及支持平台,均暂未提供;相关 starship 超时属于独立问题,需在 ~/.config/starship.toml 调整 command_timeout(默认 500ms)等配置。