破坏性命令守卫 (dcg)

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

Star 数
★ 6.2k
最近更新
今天
License
NOASSERTION
主语言
Rust

30 秒速览

运行形态
命令行工具Agent 插件 / 技能
可在哪里用
兼容但需适配Codex · Claude CodeChatGPT(部分支持)
费用
免费,无需付费服务
上手难度
低 · 几分钟可跑通
开始前需要
Rust 二进制文件(预构建或从源码构建)受支持的 AI 编码代理(例如 Claude Code、Codex CLI)Shell / 命令行
典型场景
为防止 AI 代理意外执行 git reset --hard 或 rm -rf 而丢失未提交工作的开发者
不适合
  • 需要完全离线、无法安装任何钩子的环境
  • 使用 Aider 等仅支持 git 钩子的受限集成用户
  • 期望零误报、无需维护允许列表的团队

这个 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?

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 有哪些优点和局限?

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

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

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

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
破坏性命令守卫 (dcg) 当前 61 · 存在缺口 命令行工具免费 ★ 6.2k 今天 Rust Codex · Claude Code
mirrord:将本地进程接入Kubernetes集群 55 · 缺口较多 命令行工具免费 ★ 5.4k 今天 Rust Codex · Claude Code
SkillSpec 74 · 存在缺口 命令行工具免费 ★ 707 2 个月前 Rust Codex · Claude Code
DeepTide - 为 DeepSeek 打造的 AI 编程代理 44 · 缺口较多 命令行工具免费 + 模型费 ★ 1.1k 1 个月前 Rust OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
61/ 100 五分制 3.1 / 5
本评测基于 2026年8月11日 的源码;此后该项目发布了 20 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 16/29
可靠稳定 8/14
适用触发 14/18
规范维护 10/18
有效结果 9/13
证据核验 4/8
查看各维度的扣分理由
信任安全16 / 29 · 2.8/5

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

可靠稳定8 / 14 · 2.9/5

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

适用触发14 / 18 · 3.9/5

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

规范维护10 / 18 · 2.8/5

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

有效结果9 / 13 · 3.5/5

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

证据核验4 / 8 · 2.5/5

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

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

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.15.3
    发布说明摘录
    This release closes commands that ran unguarded (Claude Code's Monitor tool, wrapper and remote-shell redirects, GNU tar helper programs, archive extraction into credential or .git paths) and a long list of false positives reported against 0.15.2. Claude Code users: refresh the hook after upgrading. The hook matcher is now Bash|PowerShell|Monitor. Run dcg install (or dcg doctor --fix); hook self-healing does the same on its next run. Existing Bash or Bash|PowerShell dcg entries are migrated in place, and unrelated hooks keep their matchers. …
    在 GitHub 查看 ↗
  2. v0.15.2
    发布说明摘录
    Security fix release. v0.15.1 can fail open under load. Please upgrade. On a busy machine the v0.15.1 hook could exit without printing a verdict for some destructive commands. Every agent reads a hook that exits silently as "allow", so those commands ran. With about sixteen hook processes running at once, 3-9% of requests for commands such as watch 'git reset' --hard (commands that only dcg's embedded-script reader can judge) were let through this way. Run one at a time, the same commands were always denied. In v0.15.2 a check that runs out of time is retried with the time the hook has …
    在 GitHub 查看 ↗
  3. v0.15.1
    发布说明摘录
    Two fixes. One made the Oh My Pi bridge let a command through unjudged; the other made the installers skip signature checking with some distro builds of cosign. Oh My Pi users: refresh the bridge after upgrading. The #504 fix is in the generated dcg-guard.ts file, not only in the dcg binary, so an existing bridge keeps the old behaviour until it is rewritten. - dcg update rewrites your user/profile bridge for you when omp is on your PATH (it runs the new installer, which runs dcg install --omp --force). It does not if you pass --no-configure. …
    在 GitHub 查看 ↗

常见问题

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 使无法解析的输入被阻止。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

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

相关 Agents