代码生成后自动运行格式化工具 文件修改后自动执行测试 权限请求时自动判断是否安全并批准 提交代码前自动检查代码规范

Hooks 的四种类型
可以通过以下四种方式来处理触发的 Hook 事件:
Command Hooks (
command):最常用。运行一个本地的 Shell 命令。它会通过stdin接收事件的 JSON 数据。HTTP Hooks (
http):向指定的 URL 发送一个HTTP POST请求,将事件 JSON 作为 Payload 传给你的 Web 接口。MCP Tool Hooks (
mcp_tool):调用已经连接的 MCP(Model Context Protocol)服务器上的工具。Prompt Hooks (
prompt) / Agent Hooks (agent):将事件传给另一个单一的 Claude 模型或子智能体(Subagent)进行评估拦截。
代码编辑后自动运行 Prettier 格式化
利用 PostToolUse 事件,当 Claude 调用 Edit 或 Write 工具成功修改代码后,自动使用 jq 解析文件路径并运行 prettier,JSON配置:
{"hooks": {"PostToolUse": [{"matcher": "Edit|Write|MultiEdit","hooks": [{"type": "command","command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"}]}]}}
任务结束时触发系统通知
当你让Claude跑一个耗时很长的长任务时,你可能会离开座位。配置 Notification或Stop事件,让它在结束时给你的手机或电脑弹窗,JSON配置:
{"hooks": {"Notification": [{"matcher": "","hooks": [{"type": "command","command": "osascript -e 'display notification \"Claude 需要你的介入!\" with title \"Claude Code\"'"}]}]}}
利用 PreToolUse 保护核心文件不被 AI 修改
如果你不希望 AI 动你的 prod.env 配置文件,可以设置拦截,JSON配置:
{"hooks": {"PreToolUse": [{"matcher": "Write|Edit","hooks": [{"type": "command","command": "node -e \"const input = require('fs').readFileSync(0, 'utf-8'); if(input.includes('prod.env')) { console.log(JSON.stringify({ decision: 'block', reason: '禁止修改生产环境配置文件!' })); process.exit(1); }\""}]}]}}
Codex Hooks 官方文档地址:
https://developers.openai.com/codex/hooks?utm_source=chatgpt.comClaude Code Hooks 官方文档地址:
https://code.claude.com/docs/en/hooks?utm_source=chatgpt.com
夜雨聆风