Dicklesworthstone/destructive_command_guard
A fast Rust safety hook that blocks destructive shell, git, and filesystem commands before AI coding agents run them. 50+ security packs (databases, Kubernetes, Docker, cloud, Terraform), heredoc/inline-script scanning, CI scan mode, and explain mode; works with Claude Code, Codex, Gemini, Copilot, Cursor, and more.
Destructive Command Guard (dcg)
它是什么
Destructive Command Guard (dcg) 是一个高性能的 Hook,位于 AI 编码助手(Claude、Codex、Gemini、GitHub Copilot、Cursor 等)与 Shell 之间。当助手尝试执行可能删除或损坏代码、数据或基础设施的指令时,dcg 会拦截该请求,并根据庞大的安全规则库(称为 packs)进行评估,随后以清晰的解释拦截该指令或允许其执行。
为何重要
AI 编码代理正日益被用于自动编写和执行代码。单一错误的指令,例如 git reset --hard、rm -rf / 或 aws ec2 terminate-instances,可能会导致数小时的工作成果付诸流水或导致生产服务中断。dcg 为这些代理提供了零配置保护,在破坏性指令触及文件系统、版本控制系统或云端供应商之前将其拦截。
核心功能 (如 README 所述)
| 功能 | 说明 |
|---|---|
| 广泛的代理支持 | 支持 Claude Code、Codex CLI、Gemini CLI、GitHub Copilot CLI、VS Code Copilot Chat、Cursor、Hermes Agent、Posit Assistant、Grok (xAI)、Oh My Pi 等。 |
| 模块化“规则包” | 50 多个预先编写的规则包,涵盖文件系统、Git、数据库、Docker、Kubernetes、AWS/GCP/Azure、Terraform 等。规则包可针对个别代理或全局启用/停用。 |
| 亚毫秒级延迟 | SIMD 加速的正则表达式过滤功能,让用户几乎感觉不到防护层的存在。 |
| Heredoc / 内嵌脚本扫描 | 检测隐藏在 python -c、Shell 脚本或 heredocs 中的危险指令。 |
| 智能上下文检测 | 区分看起来像指令的数据(例如 grep "rm -rf")与实际的可执行指令。 |
| 丰富的终端 UI | 在 stderr 上显示人类可读的拒绝面板,包含原因与更安全的替代方案。 |
| 机器可读输出 | 为预期 Hook 协议的代理(例如 Codex)在 stdout 上输出 JSON 拒绝负载。 |
| 解释模式 | dcg explain "<command>" 可显示指令为何会被拦截。 |
| CI / 预提交扫描 | dcg 可在扫描模式下执行,以在代码审查期间捕捉危险指令。 |
| 绕过与允许列表 | 通过 DCG_BYPASS=1、一次性允许代码或永久允许列表条目进行临时绕过。 |
| 代理专属配置文件 | 针对不同代理设置不同的信任等级与规则集(例如对 Claude 较宽松,对未知代理较严格)。 |
| 跨平台安装程序 | 适用于 Linux/macOS 的单行 curl 安装程序,以及适用于原生 Windows 的 PowerShell 安装程序,并可选签名验证。 |
运作方式 (概览)
- 安装 – 安装程序会放置一个二进制文件(
dcg或dcg.exe)并在目标 AI 代理的配置目录中注册 Hook 文件(例如~/.claude/settings.json)。 - 调用 – 当代理想要执行指令时,它会调用该 Hook。Hook 会接收指令字符串与一些元数据。
- 评估 – dcg 使用编译后的正则表达式将指令与已启用的规则包进行比对。规则包按类别分组(例如
core.filesystem、database.postgresql)。 - 决策 – 根据规则的严重程度(
critical、high、medium等),结果为:- deny – 拦截指令,打印带有提示的彩色面板,并向代理回传 JSON 拒绝信息。
- ask – 若代理协议支持,则请求人工审核。
- warn / log – 允许指令执行但记录该事件。
- 输出 –
stderr上的人类友好信息;stdout上的机器友好 JSON。 - 配置 – 用户编辑
~/.config/dcg/config.toml以启用额外规则包、调整策略或设置代理专属配置文件。
适用对象
- 开发者:依赖 Claude、Copilot、Gemini 或其他基于 LLM 的编码助手,并希望建立防范意外破坏性指令的安全网。
- 团队:将 AI 代理整合至 CI 管线中;dcg 可作为预提交 Hook 执行,以防止危险指令被提交。
- 运维 / DevOps 工程师:使用 AI 代理管理云端资源、容器或 Kubernetes,并需要防范意外的
terraform destroy、kubectl delete或aws ec2 terminate-instances。
入门指南 (来自 README 的快速步骤)
# 单行安装 (Linux/macOS/WSL)
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/main/install.sh?$(date +%s)" | bash -s -- --easy-mode
安装程序会检测您的平台、尽可能验证签名、将 dcg 加入您的 PATH、执行自测,并为所有支持的代理配置 Hook。
安装后,默认配置已保护最严重的指令(core.filesystem、core.git、system.disk 以及 Windows 专属规则包)。若要增加更多保护,请编辑 ~/.config/dcg/config.toml:
[packs]
enabled = [
"database.postgresql",
"containers.docker",
"cloud.aws",
]
限制与考量 (根据 README)
- 核心规则包(
core.filesystem、core.git)始终会被评估;它们无法被停用,但可以针对个别规则放宽策略。 - 该 Hook 仅适用于支持 Claude 风格 Hook 协议的代理;对于其他代理,它可能会退回到仅检测模式。
- 存在绕过机制;滥用可能会重新引入风险,因此应谨慎使用。
- 新增过多规则包可能会增加内存使用量,但 SIMD 引擎可将延迟保持在亚毫秒级。
简而言之: dcg 是一个基于 Rust 的安全层,可拦截 AI 编码助手发出的指令,将其与全面的规则集进行比对,并拦截任何可能导致不可逆损害的操作,同时保持足够快的速度,让用户几乎感觉不到它的存在。
相关
- 项目
- 项目
- 项目
- 项目
- 项目