用途:通过自然语言管理编码智能体的钩子与自动化,覆盖 Claude Code、Codex CLI、OpenCode、Devin CLI/Desktop。支持添加、列出、删除、更新、校验钩子,并把自然语言请求翻译成钩子配置,例如记录 bash 命令、编辑后格式化、阻止危险命令、完成后通知。
主要能力:各工具事件与配置位置不同。Claude Code 约 28 个事件;配置文件为 ~/.claude/settings.json、.claude/settings.json、.claude/settings.local.json。Codex 配置在 ~/.codex/config.toml 或 ~/.codex/hooks.json,项目层需受信任,默认启用,可用 [features] hooks = false 关闭。Devin 使用 .devin/hooks.v1.json 或 config.json 中的 hooks。OpenCode 不使用配置式 shell 钩子,而是 TypeScript/JavaScript 插件,事件如 tool.execute.before。
必要用法:写前先校验,例如 python3 "$SKILL_PATH/scripts/validate_hooks.py" ~/.claude/settings.json;读取配置用 cat ~/.claude/settings.json 2>/dev/null || echo '{}'。复杂钩子优先用脚本文件,放在 ~/.claude/hooks/,并 chmod +x。Claude Code PreToolUse 推荐用 stdout JSON 的 permissionDecision(allow/deny/ask/defer),ask 触发内置确认界面;不要自造环境变量或 osascript 确认。Codex PreToolUse 暂不支持 ask,应使用 deny/exit 2 或原生审批策略。
限制:修改钩子后需重启智能体才生效,钩子在启动时加载。若已有 permissions.allow 规则,ask 可能被绕过。OpenCode 的 tool.execute.* 不覆盖 MCP 工具调用,应改用 permission 配置。Codex 的 PreToolUse 拦截范围不完整,不覆盖 WebSearch 等非 shell/MCP 调用。