这个项目能做什么
dcg(破坏性命令防护)是一款面向AI编程代理的高性能钩子,在执行前拦截破坏性命令,通过清晰说明和更安全的替代方案进行阻止。它可防止诸如`git reset --hard`、`rm -rf ./src`或`DROP TABLE users`等可能摧毁数小时未提交工作的灾难性操作。
**支持的代理:** Claude Code、Codex CLI 0.125.0+、Gemini CLI、GitHub Copilot CLI、VS Code Copilot Chat、Cursor IDE、Hermes Agent、Posit Assistant、Grok (xAI)、Antigravity CLI、OpenCode、Oh My Pi、Crush、Pi、Aider(有限支持)和Continue(仅检测)。
**主要特性:**
- 开箱即用的零配置保护,覆盖危险的git/文件系统命令
- 50多个模块化安全包,涵盖数据库、Kubernetes、Docker、AWS/GCP/Azure、Terraform、CI/CD、密钥管理等
- 通过SIMD加速过滤实现亚毫秒级延迟
- Heredoc/内联脚本扫描(捕获`python -c "os.remove(...)"`和嵌入式shell脚本)
- 智能上下文检测(不会阻止`grep "rm -rf"`,但会阻止`rm -rf /`)
- 丰富的终端输出,包含拒绝面板、规则上下文和stderr上的建议
- 代理安全流:stdout上输出机器可读的钩子结果,stderr上输出丰富UI
- 原生Codex支持,最小化stdout JSON拒绝
- 针对CI、管道和哑终端的优雅降级
- 扫描模式,用于预提交钩子和CI集成
- 有界失败策略,明确审查/阻止结果
- 解释模式(`dcg explain "command"`)显示阻止原因
**安装:** 通过curl脚本快速安装(Linux、macOS、Windows WSL)或PowerShell安装程序用于原生Windows。自动检测平台,下载相应二进制文件,并配置支持的代理钩子。
**配置:** 使用位于`~/.config/dcg/config.toml`的TOML配置。可按类别或单个包ID启用/禁用包。代理特定配置文件允许为每个代理设置不同的信任级别、允许列表和包集合。
**默认保护(无需配置):** `core.filesystem`(危险的递归rm)、`core.git`(破坏性git命令)和`system.disk`(mkfs、dd到设备、fdisk等)始终启用。在Windows上,`windows.filesystem`和`windows.system`包也默认开启。
**逃生通道:** `DCG_BYPASS=1`环境变量用于单命令绕过,`dcg allow-once <code>`用于一次性批准,永久允许列表条目,或完全移除钩子。
**起源:** 最初由Jeffrey Emanuel编写的Python脚本,由Darin Gordon移植到Rust并进行性能优化,随后通过模块化包系统、heredoc扫描、三层架构、上下文分类、允许列表、扫描模式和双正则引擎大幅扩展。
**包类别包括:** 存储(S3、GCS、MinIO、Azure Blob)、远程(rsync、scp、ssh)、数据库(PostgreSQL、MySQL、MongoDB、Redis、SQLite、Snowflake、Supabase、Databricks、BigQuery)、容器(Docker、Compose、Podman)、Kubernetes(kubectl、helm、kustomize)、云(AWS、Azure、GCP)、CDN(Cloudflare Workers、CloudFront、Fastly)、API网关(Apigee、AWS、Kong)、基础设施(Ansible、Atmos、Pulumi、Terraform)、系统(磁盘、权限、服务)、CI/CD(CircleCI、GitHub Actions、GitLab CI、Jenkins)和密钥管理(AWS Secrets、Doppler、Infisical、1Password、Vault,以及可选加入的secret_disclosure包)。
评论
0 评分人数达到10人后显示
登录后参与讨论。