Featured image of post dcg — AI 编码代理的毁灭性命令守卫

dcg — AI 编码代理的毁灭性命令守卫

dcg(Destructive Command Guard)是一个高性能钩子工具,能在 AI 编码代理执行危险命令前拦截并阻止,保护你的代码免遭意外破坏。支持 Claude Code、Codex CLI、Gemini CLI、Copilot CLI 等主流代理,提供 50+ 安全规则包,亚毫秒级延迟。

项目简介

今天 GitHub Trending 排名第一的项目是 Dicklesworthstone/destructive_command_guard(简称 dcg),一个用 Rust 编写的高性能钩子工具,专为 AI 编码代理设计——在它们执行毁灭性命令之前将其拦截并阻止。

截至目前,该项目已获得 3,426 个 Star,今日新增 444 颗。

为什么需要 dcg?

AI 编码代理(Claude Code、Codex CLI、Gemini CLI、Copilot 等)偶尔会执行灾难性命令,比如 git reset --hardrm -rf ./srcDROP TABLE users——几秒钟内摧毁数小时未提交的工作。

dcg 的解决方案很简单:在命令执行前拦截它,阻止执行并给出清晰解释和更安全的替代方案。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# AI 代理尝试运行:
$ git reset --hard HEAD~5

# dcg 拦截并阻止:
════════════════════════════════════════════════════════════════
BLOCKED  dcg
────────────────────────────────────────────────────────────────
Reason:  git reset --hard destroys uncommitted changes

Command: git reset --hard HEAD~5

Tip: Consider using 'git stash' first to save your changes.
════════════════════════════════════════════════════════════════

核心特性

特性 说明
零配置保护 开箱即用,自动拦截危险的 git/文件系统命令
50+ 安全规则包 涵盖数据库、Kubernetes、Docker、AWS/GCP/Azure、Terraform 等
亚毫秒级延迟 SIMD 加速过滤,你几乎感觉不到它的存在
Heredoc/内联脚本扫描 能捕获 python -c "os.remove(...)" 等嵌入式脚本中的危险操作
智能上下文检测 不阻止 grep "rm -rf"(数据),但阻止 rm -rf /(执行)
丰富的终端输出 人类可读的拒绝面板、规则上下文和建议
代理安全流 机器可读的 JSON 输出在 stdout,丰富的 UI 在 stderr
原生 Codex 支持 Codex CLI 0.125.0+ 可靠地接收并执行拒绝消息
优雅降级 CI、管道、哑终端和无色环境均有适配输出
扫描模式 支持 pre-commit 钩子和 CI 集成,在代码审查中捕获危险命令
故障开放设计 永不因超时或解析错误阻止你的工作流
解释模式 dcg explain "command" 精确展示为什么某命令被阻止

支持的 AI 编码代理

dcg 目前支持以下代理:

  • Claude Code
  • Codex CLI(0.125.0+)
  • Gemini CLI
  • GitHub Copilot CLI
  • VS Code Copilot Chat
  • Cursor IDE
  • Hermes Agent
  • Grok (xAI)(原生 ~/.grok/hooks/ 加 Claude 兼容层)
  • Antigravity CLI(agy)
  • OpenCode(社区插件)
  • Pi(扩展配方)
  • Aider(仅 git hooks)
  • Continue(仅检测)

快速安装

Linux / macOS / WSL

1
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/main/install.sh?$(date +%s)" | bash -s -- --easy-mode

Windows(原生 PowerShell)

1
& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/main/install.ps1"))) -EasyMode -Verify

安装程序会自动检测平台、下载正确二进制文件、配置检测到的代理钩子,并运行自检。

50+ 模块化安全规则包

dcg 采用模块化"包"系统来组织破坏性命令模式。默认启用三个核心包:

说明
core.filesystem 危险的 rm -rf(始终启用,不可禁用)
core.git 破坏性 git 命令(始终启用,不可禁用)
system.disk mkfsdd-to-device 等磁盘操作

在 Windows 上还默认启用 windows.filesystemdel /srd /s 等)和 windows.systemvssadmin delete shadows 等)。

其他所有包均为按需启用,涵盖:

  • 数据库:PostgreSQL、MySQL、MongoDB、Redis、SQLite、Supabase
  • 容器:Docker、Docker Compose、Podman
  • Kubernetes:kubectl、Helm、Kustomize
  • 云服务商:AWS、Azure、GCP
  • 基础设施:Ansible、Terraform、Pulumi、Atmos
  • CI/CD:GitHub Actions、GitLab CI、Jenkins、CircleCI
  • 密钥管理:Vault、1Password、Doppler、AWS Secrets
  • 存储:S3、GCS、MinIO、Azure Blob
  • 消息队列:Kafka、RabbitMQ、NATS、SQS/SNS
  • 搜索引擎:Elasticsearch、OpenSearch、Meilisearch、Algolia
  • 监控:Datadog、New Relic、PagerDuty、Prometheus、Splunk
  • 支付:Stripe、Braintree、Square
  • DNS:Cloudflare、Route53
  • CDN:Cloudflare Workers、CloudFront、Fastly
  • API 网关:Apigee、AWS API Gateway、Kong
  • 邮件:Mailgun、Postmark、SendGrid、SES
  • 特性开关:LaunchDarkly、Flipt、Split、Unleash
  • 负载均衡:ELB、HAProxy、nginx、Traefik
  • 备份:Borg、rclone、restic、Velero
  • 平台:GitHub、GitLab、Kamal、Modal、Railway
  • Windows:文件系统、系统操作、PowerShell、杂项

启用更多保护只需在配置文件中添加:

1
2
3
4
5
6
7
8
# ~/.config/dcg/config.toml
[packs]
enabled = [
    "database.postgresql",    # 阻止 DROP TABLE、TRUNCATE
    "kubernetes.kubectl",     # 阻止 kubectl delete namespace
    "cloud.aws",              # 阻止 aws ec2 terminate-instances
    "containers.docker",      # 阻止 docker system prune
]

代理特定信任配置

dcg 自动检测调用它的 AI 代理,可按代理设置不同信任级别和规则:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 对 Claude Code 更信任——更宽的白名单,更少的包
[agents.claude-code]
trust_level = "high"
additional_allowlist = ["npm run build", "cargo test"]
disabled_packs = ["kubernetes"]

# 对未知代理更严格——额外规则,无白名单绕过
[agents.unknown]
trust_level = "low"
extra_packs = ["paranoid"]
disabled_allowlist = true

Heredoc 三层架构

dcg 的 heredoc 和内联脚本扫描采用三层管道设计,兼顾性能和精度:

  1. Tier 1:触发检测(<100μs)——超快 RegexSet 筛选,无匹配直接 ALLOW
  2. Tier 2:内容提取(<1ms)——从 heredoc、here-string、内联脚本中提取代码
  3. Tier 3:AST 模式匹配(<5ms)——使用 tree-sitter/ast-grep 解析代码结构,检测危险模式

这意味着 python -c "os.remove('/etc/passwd')" 这类"嵌套"危险命令也能被捕获。

自定义规则包

你可以用 YAML 文件创建组织特定的安全规则包:

1
2
3
4
5
[packs]
custom_paths = [
    "~/.config/dcg/packs/*.yaml",      # 用户包
    ".dcg/packs/*.yaml",               # 项目本地包
]

逃逸机制

如果你确实需要运行被阻止的命令:

方法 范围 操作
环境变量绕过 单次命令 DCG_BYPASS=1 <command>
一次性许可码 单次命令 从阻止消息中复制短码,运行 dcg allow-once <code>
永久白名单 规则或命令 dcg allowlist add core.git:reset-hard -r "reason"
移除钩子 所有命令 删除 ~/.claude/settings.json 中的 dcg 条目

配置层级

dcg 支持多源分层配置,高优先级覆盖低优先级:

  1. 环境变量(DCG_* 前缀)——最高
  2. 显式配置文件(DCG_CONFIG 环境变量)
  3. 项目配置(仓库根目录 .dcg.toml
  4. 用户配置(~/.config/dcg/config.toml
  5. 系统配置(/etc/dcg/config.toml
  6. 编译默认值——最低

项目起源

dcg 最初由 Jeffrey Emanuel 以 Python 脚本形式创建,后来由 Darin Gordon 完成 Rust 移植并添加性能优化(SIMD 加速、懒加载正则等)。Jeffrey 随后大幅扩展了 Rust 版,增加了模块化包系统(50+ 安全包)、heredoc/内联脚本扫描、三层架构、上下文分类、白名单、扫描模式等特性。

项目采用 MIT 许可证。

总结

随着 AI 编码代理日益普及,它们执行破坏性命令的风险也在增加。dcg 提供了一个零配置、亚毫秒级、覆盖 50+ 安全领域的防护层,让 AI 代理在帮你写代码的同时不会意外摧毁你的工作。如果你正在使用 Claude Code、Codex CLI、Gemini CLI 等任何 AI 编码代理,dcg 是一个值得立即安装的安全工具。