用途:DCG 作为 Claude Code 的 PreToolUse 钩子,在 Bash 工具调用执行前拦截破坏性命令,防止误删未提交工作、强制推送、清空暂存等操作。其威胁模型假设智能体出于善意但可能犯错,用于捕获无心之失而非对抗恶意攻击。
主要能力:采用白名单优先架构,先检查安全模式再检查破坏性模式,未识别命令默认放行(fail-safe)。通过 stdin 接收 JSON,返回退出码 0(放行)或 2(阻止)。处理流程分四阶段:JSON 解析、命令规范化(去除 /usr/bin/git 等绝对路径)、SIMD 快速拒绝过滤、模式匹配。使用 memchr 提供硬件加速子串搜索,Aho-Corasick 实现多模式匹配。内置 34 个安全模式和 16 个破坏性模式,支持 49+ 模块化安全包,按类别组织(git、文件系统、数据库、容器、Kubernetes、云厂商、基础设施等)。核心包 core.git 和 core.filesystem 始终启用,其他包通过 ~/.config/dcg/config.toml 或 DCG_PACKS 环境变量配置。dcg scan 子命令可审计文件中的破坏性命令上下文,适合 CI 集成。
使用方式:通过 GitHub 安装,支持 cargo +nightly install 或预编译二进制(Linux、macOS、Windows WSL)。环境变量包括 DCG_PACKS(启用包)、DCG_DISABLE(禁用包)、DCG_VERBOSE、DCG_BYPASS(完全绕过)、DCG_COLOR。修改 ~/.claude/settings.json 后需重启 Claude Code。
适用场景:配置智能体安全防护、为生产环境启用数据库或云包、CI 中审计破坏性命令。
限制:仅检查直接的 Bash 工具调用,不检查 shell 脚本内容;未发布在 crates.io;需要 Rust nightly(edition 2024);无法阻止恶意用户绕过钩子。