Claude Code 也能装护栏?这个 Hooks 插件让 AI 执行前先过安检

你有没有遇到过这种情况——让 Claude Code 跑一个命令,结果它直接给你删库跑路了?😱

今天挖到一个超实用的 Claude Code 插件,专门教你怎么给 AI 装上”安全门”。它叫 Claude Code Hooks,来自 emdashcodes 团队,在 Smithery 上有 8 次安装。

这玩意儿是干啥的?

简单说,Hooks 就是 Claude Code 的”拦截器”——在 AI 执行任何操作之前或之后,自动触发你写好的脚本。你可以:

  • 验证输入:危险命令(比如 rm -rf /)直接拦截,不让跑
  • 自动化工作流:每次写完代码自动格式化、跑 lint、发通知
  • 上下文补充:自动注入 git 状态、项目信息到对话里
  • 外部集成:对接 API、触发 CI/CD、记录日志

核心原理

Hooks 通过 settings.json 配置,监听这些事件:

事件 什么时候触发 典型用法
PreToolUse 工具执行前 拦截危险命令、权限检查
PostToolUse 工具执行后 自动格式化、lint 通知
UserPromptSubmit 用户发消息时 添加上下文、敏感信息过滤
SessionStart 会话启动/恢复 加载 git 信息、显示分支
SessionEnd 会话结束时 统计保存、清理临时文件

脚本通过 exit codes 通信:0 = 成功放行,2 = 拦截并阻断,其他 = 非阻塞错误。

怎么用?

第一步:创建 Hook 脚本

#!/usr/bin/env python3
import json, sys
data = json.load(sys.stdin)
command = data.get("tool_input", {}).get("command", "")

# 拦截危险命令
if "rm -rf /" in command:
    print("危险命令已拦截")
    sys.exit(2)  # 阻断

sys.exit(0)  # 放行

第二步:配置到 settings.json

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/validate-bash.py",
        "timeout": 60
      }]
    }]
  }
}

第三步:安装插件

在 Claude Code 里运行:

/plugin install emdashcodes-claude-code-plugins

然后选择安装 claude-code-hooks 技能即可。

为什么值得装?

老实说,Claude Code 本身已经很聪明了,但它毕竟是个 AI——你不可能 100% 相信它每次都做对的事。Hooks 让你给它加上一层”护栏”,既不限制它的能力,又能在关键时刻拦住它。

比如你团队要求所有 git push 必须走 PR,用 Hook 就可以在 PreToolUse 里检查当前分支是不是 main、是不是强制推送,是的话直接拦掉并提示走 PR 流程。

这比单纯靠”信任”要靠谱多了🙂

GitHub 链接:
https://github.com/emdashcodes/claude-code-plugins


GitHub: https://github.com/emdashcodes/claude-code-plugins

评论区

0 条评论

登录后可评论。

白鹿 13 阅读