用途:DCG 是 Claude Code 的 PreToolUse 钩子,在 AI 代理执行 Bash 命令前拦截破坏性操作,避免误删未提交改动、覆盖远程历史或删除文件。
主要能力:采用白名单优先架构,先匹配安全模式再匹配危险模式;默认放行未识别命令(fail-safe)。核心 pack 始终启用,包括 core.git 与 core.filesystem;可选 pack 覆盖 PostgreSQL、MySQL、MongoDB、Redis、SQLite、Docker、Compose、Podman、kubectl、Helm、Kustomize、AWS、GCP、Azure、Terraform、Ansible、Pulumi、磁盘与权限操作、包管理器等。可拦截 git reset --hard、git checkout --、git clean -f、git push --force、git branch -D、git stash drop/clear、临时目录外的 rm -rf 等。
使用方式:安装可执行 curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/master/install.sh?$(date +%s)" | bash,或 cargo +nightly install --git https://github.com/Dicklesworthstone/destructive_command_guard。在 ~/.claude/settings.json 的 hooks.PreToolUse 中配置 matcher 为 Bash、command 为 dcg,然后重启 Claude Code。可用 echo '{"tool_name":"Bash","tool_input":{"command":"git reset --hard"}}' | dcg 手动测试。pack 通过 ~/.config/dcg/config.toml 或环境变量 DCG_PACKS、DCG_DISABLE、DCG_VERBOSE、DCG_COLOR、DCG_BYPASS 配置。
适用场景:使用 Claude Code 等 AI 编码代理、希望防止代理误执行破坏性 git 或文件系统命令的开发者。
限制:不防御恶意行为者,不检查非 Bash 命令(如 Python/JavaScript 写文件、API 调用),不检查脚本内部命令,不保护已提交但未推送的工作。DCG 假设代理善意但会犯错,只捕获无心之失。具体收费与价格暂未提供。