开发与工程 git-hookssecurityclirustcommand-guardai-coding-agents

破坏性命令守卫 (dcg)

为 AI 编程代理阻止危险命令,保护未提交的工作免受意外删除。

FollowAgents 评估 · FARS-2.1
谨慎使用
61/ 100 五分制 3.1 / 5
1 2 3 4 5 6
1信任安全16 / 29 · 2.8/5

证据显示:工具默认启用最小化保护(仅核心git/文件系统/磁盘),其他包需显式启用;提供用户确认机制(allow-once、allowlist、DCG_BYPASS);数据流透明(stdout/stderr分离,JSON输出);敏感数据处理有限(历史记录存储本地SQLite,但未明确加密);依赖安全未充分验证(依赖版本未锁定,存在自更新功能);外部影响明确(阻止命令执行,但提供绕过方法);回滚能力有限(无自动回滚,仅建议stash);来源归属明确(作者和贡献者列出)。扣分:依赖安全未充分验证,敏感数据处理未明确加密,回滚能力有限。

2可靠稳定8 / 14 · 2.9/5

证据显示:自一致性良好(README与测试脚本一致,机器人模式输出稳定);依赖可用性未充分验证(依赖版本未锁定,自更新功能可能引入风险);失败消息清晰(提供拒绝原因和建议)。扣分:依赖可用性未充分验证。

3适用触发14 / 18 · 3.9/5

证据显示:受众明确(AI编码代理用户),场景广泛(多种代理和平台);能力边界清晰(默认启用核心包,其他包可选);触发精度高(上下文感知,区分数据与执行);环境适配良好(支持Linux/macOS/Windows/WSL)。扣分:无重大扣分。

4规范维护10 / 18 · 2.8/5

证据显示:信息架构清晰(README、docs目录);安装说明详细(curl、PowerShell);命名稳定(dcg);示例和FAQ存在(README示例);已知限制未明确列出;许可证为自定义MIT(含OpenAI/Anthropic限制),可能影响使用;版本和变更日志未明确;维护责任明确(作者和贡献者)。扣分:已知限制未明确,许可证非标准,版本和变更日志缺失。

5有效结果9 / 13 · 3.5/5

证据显示:输出可用性高(JSON和人类可读输出);边际价值高(解决实际问题);成本效益合理(性能优化,低延迟)。扣分:无重大扣分。

6证据核验4 / 8 · 2.5/5

证据显示:声明可追溯(README和测试脚本对应);跨来源佐证有限(仅仓库内证据);事实与推断分离良好(README区分功能与建议)。扣分:跨来源佐证有限。

证据充分度: 评估于 2026年8月11日 审查版本 997a650b8e21
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 许可证包含对OpenAI和Anthropic的限制,可能影响某些用户的使用。
  • 依赖版本未锁定,自更新功能可能引入供应链风险。
  • 历史记录存储未明确加密,可能包含敏感命令。
  • DCG_BYPASS环境变量可完全禁用保护,需谨慎使用。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

dcg (Destructive Command Guard) 是一个高性能钩子,拦截 AI 编程代理(如 Claude Code、Codex CLI、Gemini CLI 等)执行的破坏性命令,防止误删。它基于 Rust 开发,采用模块化“包”系统,提供 50 多个安全规则包,覆盖数据库、Kubernetes、云服务等场景。默认开启核心文件系统和 git 保护,Windows 平台额外默认启用 Windows 特定规则。安装后自动配置支持的代理钩子,也可手动配置。具有毫秒级延迟,支持 heredoc 和内联脚本扫描,以及智能上下文区分和丰富的终端输出。提供配置层级、策略模式和故障受限策略,确保安全性与灵活性。

dcg 作为钩子程序,在 AI 代理执行命令前拦截输入,解析命令内容,通过多层规则匹配(触发、提取、AST 分析)判断是否为破坏性命令。若判定为危险,则阻止执行并输出图形化拒绝面板解释原因和替代方案。支持环境变量、配置文件、代理特定配置等设置,允许用户自定义包、允许列表或使用 dcg explain 查询规则。提供扫描模式用于 CI 环境,以及测试、模拟等功能。

  1. 为防止 AI 代理意外执行 git reset --hard 或 rm -rf 而丢失未提交工作的开发者
  2. 需要为团队统一配置危险命令拦截策略的 DevOps 工程师
  3. 在 CI/CD 管道中扫描代码库中危险命令的安全审计人员
  4. 在 Windows 工作站上运行 AI 代理且需要针对 PowerShell 和 cmd 原生保护的用户
  5. 希望为内部工具或专有系统自定义安全规则包的组织
  6. 在 Codex CLI 环境中希望获得第一等钩子支持,确保被拦截命令被正确报告的开发者

这个 Agent 有哪些优点和局限?

优点
  • 毫秒级延迟,SIMD 加速过滤,性能极佳
  • 覆盖广泛,默认保护核心文件和 git 操作,并支持 50+ 可配置安全包
  • 支持多种 AI 代理和 IDE,包括 Codex CLI 的原生支持,以及 VS Code、Cursor 等
  • 智能上下文检测,区分搜索和实际执行,减少误报
局限
  • 需要安装和配置信任钩子,初次设置可能复杂
  • 规则包可能产生误报,需要调整允许列表或配置
  • 依赖具体代理的钩子机制,某些代理(如 Aider)仅支持有限集成
  • 不能防止模型编写脚本文件绕过钩子,需结合其他安全措施

如何安装或部署这个 Agent?

Linux/macOS/WSL:使用一键安装脚本:curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/main/install.sh?$(date +%s)" | bash -s -- --easy-mode。Windows 原生(PowerShell):& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/main/install.ps1"))) -EasyMode -Verify。Homebrew(macOS/Linux):brew install dicklesworthstone/tap/dcg && dcg install。

如何使用这个 Agent?

安装后,dcg 自动配置支持的代理钩子。例如,在 Claude Code 中,当代理尝试执行 git reset --hard HEAD~5 时,dcg 会拦截并阻止。可通过编辑 ~/.config/dcg/config.toml 启用更多规则包(如 database.postgresql)。使用 dcg allowlist add core.git:reset-hard 添加永久允许规则,或使用 DCG_BYPASS=1 临时绕过。使用 dcg explain "<command>" 查看为何某命令被阻止。

这个 Agent 与同类方案有什么区别?

主要比较对象是原版 Python 脚本(由 Jeffrey Emanuel 开发),dcg 是其 Rust 重写版本,性能更高,功能更丰富。另一个比较对象是 git hooks 的标准安全实践,但 dcg 提供更全面的防护和代理集成。

常见问题

dcg 是否完全免费?
是的,dcg 在项目仓库中开源,采用自定义许可证(NOASSERTION),可自由使用和修改。
哪些 AI 代理被支持?
支持包括 Claude Code、Codex CLI 0.125.0+、Gemini CLI、GitHub Copilot CLI、VS Code Copilot Chat、Cursor IDE、Hermes Agent、Posit Assistant 以及 Grok (xAI) 等。具体列表和配置细节请参考项目文档。
如果 dcg 错误地阻止了合法命令,如何解除?
可以使用 DCG_BYPASS=1 临时绕过,或使用 dcg allowlist add 添加允许规则,或使用 dcg allow-once 代码一次性放行。
dcg 的防护能否被绕过?
理论上,模型可以编写脚本文件绕过钩子,因此 dcg 是安全防线,而不是完全边界。建议结合其他安全措施。
如何配置更严格的策略?
通过 config.toml 启用 strict_git 等包,或设置 DCG_FAIL_CLOSED=1 使无法解析的输入被阻止。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents