Claude Code集成DeepSeek-V4-pro全栈开发 - hooks 安全扫描

hooks 是什么

当 Claude Code 编辑文件、完成任务或需要输入时自动运行 shell 命令。格式化代码、发送通知、验证命令并强制执行项目规则。

你可以把 hook 理解成一条规则:

  1. 某个事件发生
  2. 匹配某个工具或场景
  3. 自动执行一个动作

这些动作可以是:

  • shell command
  • HTTP webhook
  • prompt 型判断
  • agent 型评估

hooks 最大的价值,是把"你本来每次都要手动做的检查"变成自动流程。

常见配置位置

  • ~/.claude/settings.json:用户级,对所有项目生效
  • .claude/settings.json:项目级,适合团队共享
  • .claude/settings.local.json:本地项目配置,不建议提交
  • plugin 内的 hooks/hooks.json
  • 某些 skill / subagent frontmatter 内的 component-scoped hooks

基本结构

json 复制代码
{
  "hooks": {
    "EventName": [
      {
        "matcher": "ToolPattern",
        "hooks": [
          {
            "type": "command",
            "command": "your-command-here",
            "timeout": 60
          }
        ]
      }
    ]
  }
}

关键字段说明

字段 作用 示例
hooks hook 顶层配置入口 { "PreToolUse": [...] }
matcher 匹配工具名或模式 "Write"、`"Edit
type hook 类型 "command""http""mcp_tool""prompt""agent"
command 执行的 shell 命令 "$CLAUDE_PROJECT_DIR/.claude/hooks/format.sh"
timeout 超时秒数 30
once 每会话只跑一次 true

注意:这些字段属于配置协议的一部分,不要为了中文化把它们翻掉。


matcher 怎么用

形式 含义 例子
精确匹配 只匹配某个工具 "Write"
正则匹配 匹配多个工具 `"Edit
全匹配 匹配全部工具 "*"""
MCP 工具模式 匹配 MCP 工具 "mcp__memory__.*"

如果你配的是 InstructionsLoaded,它还有几种常见 matcher 值:

matcher 值 含义
session_start 会话刚启动时加载的 instructions
nested_traversal 向下遍历目录时加载的 instructions
path_glob_match 通过 path glob 匹配加载的 instructions

如果你不确定先配什么,最常见的起点是:

  • Bash
  • Write
  • Edit|Write

五种 hook 类型

1. command(本地命令)

最常见的类型。适合:

  • shell 校验
  • 安全扫描
  • 自动格式化
  • 日志记录
json 复制代码
{
  "type": "command",
  "command": "python3 \"$CLAUDE_PROJECT_DIR/.claude/hooks/validate.py\"",
  "timeout": 60
}

2. http(HTTP 调用)

适合把事件发给 webhook 或外部系统。

json 复制代码
{
  "type": "http",
  "url": "https://example.com/hook"
}

常见用途:

  • 通知系统
  • 团队消息流
  • 外部审计系统

3. mcp_tool(MCP 工具调用)

这是上游在 v2.1.118 明确补进来的 hook 类型,适合:

  • 你已经把验证逻辑做成 MCP server
  • 不想每次再绕一层 shell
  • 希望 hook 直接调用 MCP tool

典型配置会直接指定:

  • server
  • tool

而不是本地 command 或远程 url

4. prompt(提示词)

让模型根据 prompt 判断是否该继续,常见于:

  • 任务完成检查
  • 结束前质量判断
  • prompt 合规性判断

5. agent(代理)

让 Claude 用独立 agent 做更复杂的评估,适合:

  • 架构规则检查
  • 多步验证
  • 比较复杂的质量门禁

常见事件

当前最值得先掌握的事件:

事件 什么时候触发 最常见用途
PreToolUse 工具执行前 校验、阻止、改输入
PostToolUse 工具执行后 验证、补上下文、记录
Setup 每个 session 的一次性初始化阶段 安装依赖、准备工具、生成临时环境
UserPromptSubmit 用户提交 prompt 时 prompt 校验
Stop / SubagentStop Claude / subagent 结束时 完成度判断
SessionStart / SessionEnd 会话开始 / 结束 初始化、清理、日志

更完整的生态还包括:

  • PermissionRequest
  • PermissionDenied
  • PostToolUseFailure
  • UserPromptExpansion
  • PostToolBatch
  • Notification
  • TaskCreated
  • TaskCompleted
  • CwdChanged
  • WorktreeCreate
  • WorktreeRemove

在 .claude/settings.json 里加入:

bash 复制代码
{
  "hooks": {
    "SessionEnd": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR/.claude/hooks/security-scan.sh\""
          }
        ]
      }
    ]
  }
}

在 hooks中添加脚本:

bash 复制代码
mkdir -p ~/.claude/hooks
cp security-scan.sh ~/.claude/hooks/
chmod +x ~/.claude/hooks/security-scan.sh
相关推荐
小白跃升坊31 分钟前
Codex 增强部署:基于 Codex++ 接入 DeepSeek
ai·ai编程·codex·deepseek·ai coding·codex++
AlfredZhao38 分钟前
GPT 省钱,不是别用最新模型,而是别浪费缓存
gpt·ai
doiito4 小时前
【Agent Harness】Gliding Horse 本体论系统设计:给 AI Agent 装上“语义大脑”
ai·rust·架构设计·系统设计·ai agent
小七-七牛开发者10 小时前
周一上线 | SpaceX 收购 Cursor、支付宝进入 AI 时代、DeepSeek 完成 500 亿元融资
ai·agent·token·glm·智谱·claudecode·ai coding·周一上线
doiito1 天前
【Agent Harness】为什么我把 JSON‑LD “编译成 DAG” 后,整个 Agent 平台立刻聪明了
ai·rust·架构设计·系统设计·ai agent
xiezhr1 天前
折腾半小时,终于让AI 能直接帮我写飞书文档了
ai·飞书·ai agent·飞书cli·飞书文档
岳小哥AI1 天前
Claude Fable和Claude Mythos 5同时发布:注意力机制下愈加强大的AI大模型
ai·ai基础
Artech1 天前
[MAF预定义的AIContextProvider-04]Mem0Provider——长期记忆基于的云端解决方案
ai·agent·maf·aicontextprovider·chathistorymemoryprovider·mem0provider
哥不是小萝莉2 天前
一文读懂 OpenAI Codex 源码的原理、架构与未来
ai
AlfredZhao2 天前
AI 编程工作总结:从体验问题到模块能力建设
ai·codex