高级功能

Hooks:打造你的 专属工作流

在 Claude Code 工具调用的每个环节插入自定义逻辑——代码格式化、测试运行、安全检查,一切自动化

#Hooks #Automation #ClaudeCode #CI/CD

什么是 Claude Code Hooks?

Hooks 是 Claude Code 的事件钩子系统,允许你在工具调用前后执行自定义 shell 脚本。通过 Hooks,你可以在文件保存后自动运行 linter、在代码提交前执行测试、在操作敏感文件时触发告警——无需手动干预,完全自动化。

seo_hooks.what_is_desc2

seo_hooks.flow_user
seo_hooks.flow_user_action
seo_hooks.flow_hook
seo_hooks.flow_hook_action
seo_hooks.flow_tool
seo_hooks.flow_tool_action

Hook 类型详解

Claude Code 提供四种 Hook,覆盖工具调用的完整生命周期

seo_hooks.type1_title

工具执行前触发,可用于参数校验、权限检查、自动审批或拒绝操作

seo_hooks.type1_example

seo_hooks.type2_title

工具执行后触发,可用于自动格式化、运行测试、发送通知

seo_hooks.type2_example

seo_hooks.type3_title

Claude Code 发送通知时触发,可集成 Slack、邮件等外部通知渠道

seo_hooks.type3_example

seo_hooks.type4_title

Claude Code 结束响应时触发,可用于自动记录日志或执行清理操作

seo_hooks.type4_example

seo_hooks.usecases_title

seo_hooks.usecases_desc

1

seo_hooks.usecase1_title

seo_hooks.usecase1_desc

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "command": "if echo \"$TOOL_INPUT\" | grep -q 'git commit'; then npm run format; fi"
    }]
  }
}
2

seo_hooks.usecase2_title

seo_hooks.usecase2_desc

{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Bash",
      "command": "if echo \"$TOOL_INPUT\" | grep -q 'pytest\\|npm test'; then notify-send 'Tests completed'; fi"
    }]
  }
}
3

seo_hooks.usecase3_title

seo_hooks.usecase3_desc

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Edit|Write",
      "command": "if echo \"$TOOL_INPUT\" | grep -qE '\\.env|credentials|secrets'; then exit 2; fi"
    }]
  }
}

Headless 模式与 CI/CD

使用 claude -p 标志在 CI/CD 管道中运行 Claude Code,实现无人值守的自动化任务

seo_hooks.headless_flag_title

seo_hooks.headless_flag_desc

seo_hooks.headless_pipeline_title

seo_hooks.headless_pipeline_desc

seo_hooks.headless_json_title

seo_hooks.headless_json_desc

seo_hooks.headless_code_label
# seo_hooks.headless_code_comment
claude -p "Review this PR and suggest improvements" \
  --output-format json \
  --max-turns 5

settings.json 配置示例

在 .claude/settings.json 中定义你的 Hooks

.claude/settings.json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "command": "~/scripts/pre-bash-hook.sh"
      },
      {
        "matcher": "Edit|Write",
        "command": "~/scripts/protect-sensitive-files.sh"
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Bash",
        "command": "~/scripts/post-bash-hook.sh"
      }
    ],
    "Notification": [
      {
        "command": "~/scripts/send-notification.sh"
      }
    ],
    "Stop": [
      {
        "command": "~/scripts/on-stop.sh"
      }
    ]
  }
}

seo_hooks.best_practices_title

seo_hooks.best_practices_desc

seo_hooks.bp1_title

seo_hooks.bp1_desc

seo_hooks.bp2_title

seo_hooks.bp2_desc

seo_hooks.bp3_title

seo_hooks.bp3_desc

seo_hooks.bp4_title

seo_hooks.bp4_desc

seo_hooks.faq_title

seo_hooks.faq1_q

seo_hooks.faq1_a

seo_hooks.faq2_q

seo_hooks.faq2_a

seo_hooks.faq3_q

seo_hooks.faq3_a

seo_hooks.faq4_q

seo_hooks.faq4_a

QCode.cc 企业自动化

结合 QCode.cc API 中转与 Hooks 系统,打造企业级 AI 编程自动化流水线

seo_hooks.qcode_advantage1_title

seo_hooks.qcode_advantage1_desc

seo_hooks.qcode_advantage2_title

seo_hooks.qcode_advantage2_desc

seo_hooks.qcode_advantage3_title

seo_hooks.qcode_advantage3_desc

开始自动化你的 Claude Code 工作流

用 Hooks + QCode.cc 释放 AI 编程的全部潜力