核心问题: 你的 AI 编程环境是否已具备可靠的命令拦截能力,还是需要一个能在所有主流代理上通用的本地守护工具?
RepoDaily 采用评分
RepoDaily 将该项目的采用分评为 86/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。
包含 5 个来源、覆盖 5 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。
检测到 6 个工作流步骤、5 个下一步动作,以及 2 个命令/安装信号。
趋势热度为 +497 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。
采纳风险标记为 high,并包含 7 条安全说明与 3 条跳过条件。
2 个机会视角、4 个替代方案,以及 3 个类型化模块支撑差异化判断。
文章中包含许可证来源或许可证表述。
文章正文和元数据中检测到 8 个 AI/Agent 相关信号。
项目概览
Destructive Command Guard,简称 dcg,是一个单一的 Rust 二进制程序,以钩子方式注册到各类 AI 编程代理中。当 Claude Code、Codex CLI、Gemini CLI、GitHub Copilot CLI、VS Code Copilot Chat、Cursor、Hermes Agent 或 Grok 准备执行 shell 或 git 命令时,dcg 会先行检查,在终端看到命令之前返回拒绝决定。项目明确表示其拦截范围包括 git reset --hard、rm -rf、强制 refspec 推送等命令,目标是防止代理生成命令导致的意外数据丢失。
根据 README,该钩子覆盖 14 种代理集成。其中 Claude Code、Codex CLI 0.125.0 及以上、Gemini CLI、Copilot CLI、Cursor 为原生钩子集成。Grok 通过 dcg install --grok 获得原生 ~/.grok/hooks/dcg.json 路径,同时被 Claude 兼容层自动拾取。Antigravity CLI 通过 dcg install --agy 注入 ~/.gemini/config/hooks.json。Aider 仅支持 git 钩子,Continue 仅提供检测。OpenCode 和 Pi 分别通过社区插件和扩展配方支持。
dcg 使用 Rust 2024 版本编写,Cargo.toml 要求 rust-version 1.95,从 src/main.rs 编译为 dcg 二进制。当前版本为 v0.6.8,发布于 2026-07-15。该二进制通过 ast-grep-core 对 Bash、Python、JavaScript、TypeScript、Ruby、Go、PHP 七种语言进行基于 AST 的模式匹配,以捕获隐藏在 heredoc 和内联脚本中的破坏性负载。决策日志存储于带 FTS5 全文检索的 FrankenSQLite 中,并通过 rust-mcp-sdk 0.9.0 暴露 MCP 服务端。
README 将 dcg 定位为跨代理的统一规则层,替代各代理自带的权限确认。dcg 对所有受支持工具施加一致的规则集,默认规则包中包含 Windows 文件系统和系统包,开箱即拦截 del /s、rd /s、Remove-Item -Recurse -Force、format、vssadmin delete shadows 等命令。
为什么现在变热
- 截至 2026-07-16 的趋势窗口内获得 497 颗星,排名第 9。
- v0.6.8 于 2026-07-15 发布,修复了 Windows PowerShell 5.1 ConstrainedLanguage 路径问题;v0.6.7 于前一日发布,关闭了 stdin 驱动的数据库客户端绕过漏洞并拦截强制 refspec 推送。
- 覆盖 14 种代理集成,是少数能从单一二进制同时支持 Claude Code、Codex CLI、Gemini CLI、Copilot、Cursor、Hermes、Grok、Antigravity 的本地守护工具之一。
- 发布制品包含 SHA-256 校验和、minisign 签名、签名的 DSR SLSA 来源证明以及源码树 SPDX SBOM,对于早期 CLI 工具而言相当完备。
解决什么问题
- AI 编程代理偶尔会生成灾难性命令,例如 git reset --hard、对项目根目录的 rm -rf,或向共享分支的强制推送。
- 每个代理自带权限确认,使用三种代理的开发者面对三套不同的确认对话框和不一致的规则集。
- 破坏性负载可隐藏在 heredoc、管道 stdin 或内联脚本中,表层命令检查无法发现。
- Windows 用户面临独特的威胁面,包括 format、vssadmin delete shadows、递归 Remove-Item 调用,Unix 工具通常不覆盖这些场景。
工作原理
- 通过一行 curl 脚本安装:curl -fsSL 拉取 install.sh 并管道至 bash,传入 --easy-mode。脚本自动检测平台、下载正确二进制并配置已检测到的代理钩子。
- 在 Windows 上使用 PowerShell 安装器:irm 拉取 install.ps1,创建脚本块并传入 -EasyMode -Verify。安装器验证 SHA-256 校验和,在 minisign 可用时验证签名,在 cosign 和可信证书包均可用时验证 Sigstore 来源。
- dcg 以钩子身份注册到每个代理的配置中。对于 Grok,dcg install --grok 写入 ~/.grok/hooks/dcg.json;对于 Antigravity,dcg install --agy 写入 ~/.gemini/config/hooks.json。
- 代理准备命令时,dcg 根据规则包检查。默认包涵盖 git、shell 和 Windows 专用规则。自定义包通过 serde_yaml 从 YAML 加载,支持 glob 模式路径。
- 对于包含 heredoc 或内联脚本的命令,dcg 使用 ast-grep 配合 tree-sitter 语法树对七种语言进行 AST 级匹配,捕获多行负载中嵌套的破坏性内容。
- 拒绝决策记录到带 FTS5 全文检索的 FrankenSQLite 数据库。生产环境 fail-open 预算为 200 毫秒,与测试截止时间分开执行。
命令界面与安装路径
- 主二进制:dcg,源自 src/main.rs,包名 destructive_command_guard,版本 0.6.8。
- Linux/macOS 安装:curl -fsSL 拉取 install.sh 原始 URL,管道至 bash -s -- --easy-mode。
- Windows 安装:通过 irm 拉取 install.ps1 创建脚本块,以 -EasyMode -Verify 调用。
- 代理专属安装标志:dcg install --grok 用于原生 Grok 钩子,dcg install --agy 用于通过 ~/.gemini/config/hooks.json 配置 Antigravity CLI。
- 自检命令:dcg test,Windows 安装器使用其退出码作为验证探针。
- Windows 版本锁定:-Version vX.Y.Z,配合 -RequireMinisign 在 sidecar 或验证器不可用时直接失败关闭。
- Windows 上 Copilot 钩子路径:%COPILOT_HOME%\hooks 或 %USERPROFILE%\.copilot\hooks,以用户级别配置覆盖所有工作区。
代理集成矩阵
- 原生钩子:Claude Code、Codex CLI 0.125.0+、Gemini CLI、GitHub Copilot CLI、VS Code Copilot Chat(通过 Claude 兼容)、Cursor IDE、Hermes Agent。
- 原生独立路径:Grok (xAI),通过 ~/.grok/hooks/dcg.json,同时被 Claude 兼容层自动拾取。
- 原生配置注入:Antigravity CLI (agy),通过 dcg install --agy 写入 ~/.gemini/config/hooks.json。
- 社区插件:OpenCode,通过 aspiers/ai-config 中的 opencode 插件 dcg-guard.js。
- 扩展配方:Pi,通过 docs/pi-integration.md。
- 有限支持:Aider(仅 git 钩子)、Continue(仅检测,不拦截)。
许可证与供应链考量
LICENSE 文件为 MIT 许可证附带 OpenAI/Anthropic 附加条款。该附加条款将受限方定义为 OpenAI, L.L.C. 和 Anthropic, PBC,及其关联方和代表其行事的任何人。上述方不享有任何权利,未经版权持有人 Jeffrey Emanuel 事先书面许可,任何声称的许可均无效。附加条款还覆盖衍生作品、训练语料和评估工具链。
这意味着基于 OpenAI 或 Anthropic API 构建产品的组织,或代表这两家公司行事的承包商,在没有单独许可的情况下无法合法使用 dcg。对于不受限的独立开发者和公司,MIT 基础许可正常适用。
在供应链方面,v0.6.8 发布说明描述了在 GitHub Actions 之外手动重建全部六个二进制的过程,附带 SHA-256 校验和、minisign 签名、签名的 DSR SLSA 来源证明、源码树 SPDX SBOM,以及在 Linux、macOS 和 Windows PowerShell 5.1 上的实际安装器验证。Windows 安装器强制要求 SHA-256 校验和检查,并可选验证 minisign 和 cosign 来源。
谁适合关注
适合关注
- 你同时使用两个或更多 AI 编程代理,希望用一套规则替代各自独立的权限确认。
- 你在 Windows 上工作,需要拦截 del /s、rd /s、Remove-Item -Recurse -Force、format、vssadmin delete shadows。
- 你需要对 heredoc 和内联脚本进行检查,而非仅匹配顶层命令。
- 你不隶属于 OpenAI 或 Anthropic,可以在 MIT 基础许可下使用该软件。
可以先跳过
- 你的组织是 OpenAI 或 Anthropic 的关联方、承包商或代表其行事的实体——附加条款会使所有许可权利失效。
- 你已有集中式的命令执行策略服务器或沙箱层,在命令到达终端前即拦截。
- 你仅使用 Aider 或 Continue 且需要完整拦截——Aider 仅支持 git 钩子,Continue 仅提供检测。
风险与注意事项
MIT 许可证附带 OpenAI/Anthropic 附加条款,禁止这两家公司、其关联方及代表其行事的任何人使用,对 AI 工具生态中的一大块用户构成硬性法律边界。
- 附加条款使 OpenAI、Anthropic、其关联方和代表其行事的承包商的所有许可权利失效,包括在训练语料和评估工具链中的使用。
- 附加条款适用于衍生作品,任何基于 dcg 构建的下游产品继承同一限制。
- 执行条款包含禁令救济和胜方律师费,加大了意外违规的代价。
- 代理集成不均匀:Aider 仅支持 git 钩子,Continue 仅提供检测不拦截,若用户假设 14 种工具完全对等可能产生虚假安全感。
- v0.6.7 关闭了 stdin 驱动的数据库客户端绕过漏洞类别,此前输入通过数据库客户端管道时可能规避命令检查。
- v0.6.7 新增强制 refspec 推送拦截,并修复了 Git 仓库外的项目允许列表问题。
- Windows 安装器在安装继续前强制执行 SHA-256 校验和验证。
- 可选的 minisign 签名验证通过 -RequireMinisign 在 sidecar 或验证器缺失时失败关闭。
- 可选的 Sigstore/cosign 来源验证在 cosign 和可信证书包均可用时激活。
- 生产 fail-open 预算为 200 毫秒,与测试截止时间分开执行,避免掩盖真实延迟回退。
- 决策日志使用 FrankenSQLite 0.1.16,具备原子提交标记恢复加固和 FTS5 全文检索。
替代方案比较
| 方案 | 适用场景 | 代价 |
|---|---|---|
Claude Code 权限确认 | 你仅使用 Claude Code,且对其内置的 shell 命令确认对话框感到满意。 | 免费,内置于代理 |
手动 git 钩子 | 你希望获得轻量的 pre-commit 或 pre-push 防护,无需安装额外二进制。 | 免费,需手写脚本 |
Docker 或容器沙箱 | 你希望获得文件系统级隔离,使破坏性命令无法触及宿主机。 | 若已容器化开发环境则免费 |
| 你仅运行 Codex CLI,信任其自身钩子系统而无需跨代理规则共享。 | 免费 |
这个趋势说明了什么
为受限组织构建内部分支
隶属于 OpenAI 或 Anthropic 的公司无法在当前附加条款下使用 dcg,但其规则包格式和 heredoc 检查逻辑极具价值。以干净的 MIT 或 Apache-2.0 许可构建内部分支可在不冲突附加条款的前提下复制检测模型。
在投入分支开发前,先与法务团队确认你的组织是否属于附加条款定义的受限方。
为基础设施命令编写自定义规则包
dcg 通过 serde_yaml 加载自定义 YAML 规则包,支持 glob 模式路径。团队可为云 CLI 工具、Kubernetes 命令或数据库迁移编写领域专用包,将防护扩展到默认 git 和 shell 规则之外。
编写一个在生产环境中拦截 kubectl delete namespace 或 terraform destroy 的包,运行 dcg test 确认检测有效。
RepoDaily 判断
dcg 解决了一个真实且日益紧迫的问题——AI 编程代理生成破坏性命令。其技术基础扎实:Rust 实现、基于 AST 的 heredoc 检查、异常严谨的发布签名。OpenAI/Anthropic 许可附加条款是最主要的注意事项,它构成了一条硬性法律边界,将 AI 工具生态中的很大一部分用户排除在外。对于不受限的独立开发者和组织,dcg 是一个实用、可快速评估的守护工具,值得在任何多代理编程环境中部署。