项目简介
今天 GitHub Trending 排名第一的项目是 Dicklesworthstone/destructive_command_guard(简称 dcg),一个用 Rust 编写的高性能钩子工具,专为 AI 编码代理设计——在它们执行毁灭性命令之前将其拦截并阻止。
截至目前,该项目已获得 3,426 个 Star,今日新增 444 颗。
为什么需要 dcg?
AI 编码代理(Claude Code、Codex CLI、Gemini CLI、Copilot 等)偶尔会执行灾难性命令,比如 git reset --hard、rm -rf ./src、DROP TABLE users——几秒钟内摧毁数小时未提交的工作。
dcg 的解决方案很简单:在命令执行前拦截它,阻止执行并给出清晰解释和更安全的替代方案。
|
|
核心特性
| 特性 | 说明 |
|---|---|
| 零配置保护 | 开箱即用,自动拦截危险的 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
|
|
Windows(原生 PowerShell)
|
|
安装程序会自动检测平台、下载正确二进制文件、配置检测到的代理钩子,并运行自检。
50+ 模块化安全规则包
dcg 采用模块化"包"系统来组织破坏性命令模式。默认启用三个核心包:
| 包 | 说明 |
|---|---|
core.filesystem |
危险的 rm -rf(始终启用,不可禁用) |
core.git |
破坏性 git 命令(始终启用,不可禁用) |
system.disk |
mkfs、dd-to-device 等磁盘操作 |
在 Windows 上还默认启用 windows.filesystem(del /s、rd /s 等)和 windows.system(vssadmin 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、杂项
启用更多保护只需在配置文件中添加:
|
|
代理特定信任配置
dcg 自动检测调用它的 AI 代理,可按代理设置不同信任级别和规则:
|
|
Heredoc 三层架构
dcg 的 heredoc 和内联脚本扫描采用三层管道设计,兼顾性能和精度:
- Tier 1:触发检测(<100μs)——超快 RegexSet 筛选,无匹配直接 ALLOW
- Tier 2:内容提取(<1ms)——从 heredoc、here-string、内联脚本中提取代码
- Tier 3:AST 模式匹配(<5ms)——使用 tree-sitter/ast-grep 解析代码结构,检测危险模式
这意味着 python -c "os.remove('/etc/passwd')" 这类"嵌套"危险命令也能被捕获。
自定义规则包
你可以用 YAML 文件创建组织特定的安全规则包:
|
|
逃逸机制
如果你确实需要运行被阻止的命令:
| 方法 | 范围 | 操作 |
|---|---|---|
| 环境变量绕过 | 单次命令 | DCG_BYPASS=1 <command> |
| 一次性许可码 | 单次命令 | 从阻止消息中复制短码,运行 dcg allow-once <code> |
| 永久白名单 | 规则或命令 | dcg allowlist add core.git:reset-hard -r "reason" |
| 移除钩子 | 所有命令 | 删除 ~/.claude/settings.json 中的 dcg 条目 |
配置层级
dcg 支持多源分层配置,高优先级覆盖低优先级:
- 环境变量(DCG_* 前缀)——最高
- 显式配置文件(DCG_CONFIG 环境变量)
- 项目配置(仓库根目录
.dcg.toml) - 用户配置(
~/.config/dcg/config.toml) - 系统配置(
/etc/dcg/config.toml) - 编译默认值——最低
项目起源
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 是一个值得立即安装的安全工具。