SuperAPI AI 工具集

developing-hooks

编程与开发

查看项目

更新于 10-15 22:41

技能介绍

用途:指导为 Claude Code 插件开发事件驱动的 Hook 自动化脚本,用于校验操作、执行策略、注入上下文并集成外部工具。

主要能力:支持基于提示(prompt,推荐,使用 LLM 推理)与基于命令(command,执行 bash 做确定性检查)两类 Hook。覆盖事件:PreToolUse(执行前校验、拒绝或修改调用)、PostToolUse(响应结果、反馈、日志)、Stop 与 SubagentStop(完成度校验)、UserPromptSubmit(注入上下文或拦截)、SessionStart(加载上下文、持久化环境变量)、SessionEnd、PreCompact、Notification。

配置:插件在 hooks/hooks.json 中使用带 hooks 包装层的格式,用户设置在 .claude/settings.json 使用顶层直接格式。匹配器支持精确名、"Read|Write|Edit" 多选、"*" 通配及正则(区分大小写)。

输出与输入:Hook 通过 stdin 接收 JSON(含 session_id、cwd、hook_event_name 等;PreToolUse/PostToolUse 含 tool_name、tool_input、tool_result)。PreToolUse 可返回 permissionDecision(allow|deny|ask)与 updatedInput;Stop 返回 approve|block。退出码 0 成功、2 阻塞并将 stderr 回传、其它为非阻塞错误。命令 Hook 可用 $CLAUDE_PROJECT_DIR、$CLAUDE_PLUGIN_ROOT、$CLAUDE_ENV_FILE、$CLAUDE_CODE_REMOTE。

安全与性能:命令 Hook 需校验输入、拒绝路径穿越与敏感文件(如 .env)、引用所有变量、设置合理超时(命令默认 60s、提示默认 30s)。匹配的 Hook 并行执行,彼此看不到输出且顺序不确定,应设计为相互独立;简单确定性检查用命令 Hook,复杂推理用提示 Hook。可用标志文件或配置实现按需激活。

使用与限制:Hook 在会话启动时加载,修改配置后必须重启 Claude Code(exit 后重新运行 claude)才生效,无法热替换。可用 claude --debug 调试,用 /hooks 查看已加载 Hook,用 jq 校验输出 JSON。提供 references/patterns.md、references/migration.md、references/advanced.md 及 validate-hook-schema.sh、test-hook.sh、hook-linter.sh 等脚本;官方文档见 https://docs.claude.com/en/docs/claude-code/hooks。具体安装命令资料未提供。