实战

Claude Code Hooks 实战:自动格式化、危险命令拦截、任务通知,6 个开箱即用配置

Claude Code Hooks 实战:6 个开箱即用配置——Prettier 自动格式化、rm -rf 拦截、路径保护、任务完成通知、ESLint 自动修复、会话日志。Hooks 是 100% 确定执行的。

2026/4/103分钟 阅读ClaudeEagle

CLAUDE.md 里的规则,Claude 「会尽量遵守」。Hooks 不一样——100% 确定执行

每次 Claude 编辑文件,Prettier 自动跑;每次执行危险命令,脚本自动拦截——和 Claude 「想不想」无关。


Hooks 生命周期

事件触发时机用途
PreToolUse工具调用拦截危险操作
PostToolUse工具调用格式化、lint
SessionStart会话开始初始化
SessionEnd会话结束清理、汇报
NotificationClaude 需要关注时推送通知

配置位置

json
// .claude/settings.json(项目级,团队共享)
{
  "hooks": {
    "PostToolUse": [...],
    "PreToolUse": [...]
  }
}

会话中 /hooks 查看和管理。让 Claude 帮你写:

text
"Write a hook that runs eslint after every file edit"

Hook 1:每次编辑后自动 Prettier

json
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{
        "type": "command",
        "command": "npx prettier --write \"CLAUDE_FILE_PATH_VAR\" 2>/dev/null || true"
      }]
    }]
  }
}

|| true 防止 hook 失败阻断 Claude。


Hook 2:拦截危险命令

防止 rm -rfdrop table 等破坏性操作:

json
{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "if echo \"TOOL_INPUT_VAR\" | grep -qE 'rm -rf|drop table|truncate'; then echo 'BLOCKED' >&2; exit 2; fi"
      }]
    }]
  }
}

Hook 返回 exit 2,Claude 不会执行。可扩展:force push|DELETE FROM|shutdown


Hook 3:保护特定路径

不允许写入 migrations/.envsecrets/

json
{
  "PreToolUse": [{
    "matcher": "Write|Edit",
    "hooks": [{
      "type": "command",
      "command": "echo \"CLAUDE_FILE_PATH_VAR\" | grep -qE '(migrations|.env|secrets)/' && echo 'BLOCKED: protected path' >&2 && exit 2 || exit 0"
    }]
  }]
}

Hook 4:任务完成通知

macOS 系统通知:

json
{
  "Notification": [{
    "hooks": [{
      "type": "command",
      "command": "osascript -e 'display notification \"Claude needs attention\" with title \"Claude Code\"'"
    }]
  }]
}

Hook 5:ESLint 自动修复

json
{
  "PostToolUse": [{
    "matcher": "Edit|Write",
    "hooks": [{
      "type": "command",
      "command": "npx eslint --fix \"CLAUDE_FILE_PATH_VAR\" 2>/dev/null || true"
    }]
  }]
}

链式叠加(Prettier + ESLint 同时跑):

json
{
  "matcher": "Edit|Write",
  "hooks": [
    { "type": "command", "command": "npx prettier --write \"CLAUDE_FILE_PATH_VAR\" 2>/dev/null || true" },
    { "type": "command", "command": "npx eslint --fix \"CLAUDE_FILE_PATH_VAR\" 2>/dev/null || true" }
  ]
}

Hook 6:SessionEnd 保存日志

json
{
  "SessionEnd": [{
    "hooks": [{
      "type": "command",
      "command": "echo \"$(date): Claude session ended\" >> ~/claude-sessions.log"
    }]
  }]
}

可用环境变量

变量说明
CLAUDE_FILE_PATH当前操作的文件路径
TOOL_INPUT工具调用的完整输入

CLAUDE.md 建议 vs Hooks:选哪个?

场景CLAUDE.mdHooks
风格「建议」
必须执行的操作
拦截危险命令
自动格式化

原则:建议 Claude 的放 CLAUDE.md;必须发生的用 Hooks。


来源:Claude Code Hooks 官方文档 | builder.io | 整理:ClaudeEagle

相关文章推荐

实战Claude Code Hooks 进阶:用事件钩子打造自动格式化、安全检查和部署流水线Claude Code Hooks 进阶教程:5 个实战案例覆盖自动格式化、安全守卫、commit 消息生成和通知转发。含完整配置和 Hook 输出协议详解。2026/4/7实战Claude Code Hooks 实战完全指南:自动格式化、危险命令拦截与 CI 集成(2026)Claude Code Hooks 完整实战教程:PreToolUse/PostToolUse/Stop 四种触发时机、配置文件写法(~/.claude/settings.json)、危险命令拦截脚本(exit 2 阻止机制)、AI 写完代码后自动 Black/Prettier/gofmt 格式化、任务完成推送 Bark 手机通知、文件变更日志记录、Hook 调试技巧与 Matcher 模式参考。2026/3/28实战Claude Code Hooks 实战:每次保存自动格式化、拦截危险命令、桌面通知Claude Code Hooks 实战教程:五个即用示例(桌面通知/文件自动格式化/危险命令拦截/压缩后上下文注入/配置变更审计)、Hook 配置位置(全局/项目/本地)、退出码含义(允许/上下文/阻止)、七大 Hook 事件速查表、Prompt-based AI 判断 Hook 进阶用法。2026/3/14实战Claude Code 子 Agent 实战:如何用多个 Agent 并行处理复杂任务Claude Code 子 Agent 实战指南:如何用多个独立 Agent 并行处理复杂任务。含 4 个实战示例、自定义 Agent 配置和成本优化建议。2026/4/7实战OpenClaw 与 Claude Code 协同使用实战:AI 聊天助手 + AI 编程助手的终极组合OpenClaw 与 Claude Code 协同使用的完整实战指南:两款工具的定位差异(OpenClaw=聊天AI助手框架,Claude Code=代码库直接操作的编程工具)、在 OpenClaw 中通过 exec 工具调用 Claude Code CLI(claude 命令)执行编程任务、把 OpenClaw 的 Telegram 消息转化为 Claude Code 任务(用自然语言描述→Claude Code执行→返回结果)、使用 OpenClaw Cron 定期触发 Claude Code 执行代码审查/依赖更新/测试/文档生成、CRS 代理在两者中的统一接入方案,以及常见的协同架构模式(主动触发/被动响应/定时执行)。2026/3/24实战Claude Code 自动生成 OpenAPI 文档:从代码到 Swagger UI 一键完成Claude Code 自动生成 OpenAPI(Swagger)文档完整教程:从现有代码逆向生成 OpenAPI 3.1 规范、为 FastAPI/Express/Gin 添加完整的 schema 注释、让 Claude 补全缺失的请求/响应 schema 定义、生成带真实示例值的 Swagger 文档、将 OpenAPI Spec 转为各语言客户端 SDK(openapi-generator)、保持文档与代码同步的 CI/CD 方案,以及从 Postman Collection 迁移到 OpenAPI 的方法。2026/3/20