dcg快速上手教程:一行命令让Claude Code不再误删你的项目文件
【免费下载链接】destructive_command_guardThe Destructive Command Guard (dcg) is for blocking dangerous git and shell commands from being executed by agents.项目地址: https://gitcode.com/GitHub_Trending/de/destructive_command_guard
如果你正在用 Claude Code 这类 AI 编程智能体写代码,那么你一定听说过dcg(Destructive Command Guard,危险命令守卫)——一个专为 AI Agent 打造的危险命令拦截工具。它像一个安全钩子(Hook)插在智能体和系统之间,在git reset --hard、rm -rf ./src、DROP TABLE这类破坏性命令真正执行之前就将其拦截,并给出原因说明和更安全的替代建议。整个过程只需一行命令安装,延迟低于 1 毫秒,几乎不占性能。
本文是一份面向新手的 dcg 快速上手教程:从 3 分钟安装、到看懂拦截提示、再到按需开启 50+ 安全包,带你完整配置好这套「AI 误删文件保险」。
为什么你需要 dcg?AI 智能体的「手滑」有多可怕
AI 编程智能体效率极高,但它们偶尔会执行灾难性命令,几秒钟内就能毁掉你几个小时未提交的工作:
| 典型事故 | 后果 |
|---|---|
git reset --hard | 所有未提交的修改直接消失 |
rm -rf ./src | 项目源码目录被递归删除 |
git push --force | 覆盖远端共享分支历史 |
docker system prune/DROP TABLE | 容器数据或数据库数据不可逆丢失 |
dcg 的解法:它注册为智能体的 PreToolUse 钩子,在每条 shell 命令执行前先做检查——命中危险模式就阻止执行,并附上清晰的解释和更安全的替代方案;安全命令则静默放行,你几乎感觉不到它的存在。
它支持 Claude Code、Codex CLI、Gemini CLI、GitHub Copilot CLI、VS Code Copilot Chat、Cursor、Grok、Posit Assistant 等主流智能体,安装时会自动检测并配置你机器上已有的 Agent。
它是怎么工作的?四道过滤,毫秒级放行
dcg 内部是一条轻量流水线(对新手只需知道结论):
- 解析:从智能体收到的 JSON 中取出即将执行的命令;
- 规范化:
/usr/bin/git reset --hard会被识别为git reset --hard; - 快速拒绝:不含
git、rm等关键词的命令(如ls、cargo build)直接放行,99% 以上命令走这条快车道; - 模式匹配:先查安全白名单(如
git checkout -b建分支),再查危险黑名单,命中即拦截。
两个特别贴心的设计:
- 上下文感知:
grep "rm -rf"里出现危险字样只是数据,不会被误拦;真正会被执行的rm -rf /才拦。 - 不只拦命令,还拦内嵌脚本:
python -c "shutil.rmtree(...)"、heredoc 里的危险代码同样会被扫描。
一键安装步骤(最快 3 分钟)
🐧Linux / macOS / WSL:克隆仓库后运行官方安装脚本即可,脚本会自动下载对应平台的二进制、校验 SHA256 签名,并自动为检测到的 AI 智能体配置钩子。
git clone https://gitcode.com/GitHub_Trending/de/destructive_command_guard cd destructive_command_guard bash install.sh --easy-mode🪟Windows(原生 PowerShell):在仓库内执行安装脚本,自动校验 SHA256 并配置钩子,del /s、rd /s、Remove-Item -Recurse等 Windows 危险命令开箱即拦:
powershell -File install.ps1 -EasyMode -Verify💡 安装脚本入口分别是 install.sh 和 install.ps1;装完后执行
dcg doctor可一键体检所有钩子配置是否正常。
安装完成后,重启你的智能体(如退出并重新打开 Claude Code)使钩子生效。至此,一行命令的保护已经就位。
眼见为实:AI 尝试误删时你会看到什么
当 Agent 想执行git reset --hard HEAD~5时,终端会弹出这样的拦截面板:
════════════════════════════════════════════════════════════ 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. ════════════════════════════════════════════════════════════命令没有执行,且 Agent 会收到「先git stash保存更改」的建议,通常会自动改走安全路线。
想亲手体验?无需真的执行任何危险命令,两条诊断指令就够:
# 模拟评估一条命令(不执行),了解它会不会被拦 dcg test "rm -rf ./build" # 追问「为什么拦」:查看命中的规则包、原因和安全建议 dcg explain "git reset --hard HEAD"最快配置方法:按需开启 50+ 安全包
默认(无配置文件)时,dcg 已强制启用最核心的三块防线:core.git(破坏性 git 命令)、core.filesystem(递归删除)和system.disk(磁盘级操作)。
要保护数据库、K8s、Docker、云资源等,只需在~/.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 ]📦 全部 50+ 安全包覆盖数据库、容器、Kubernetes、云厂商、CDN、CI/CD、密钥管理、消息队列、监控、支付、Windows 原生命令等类别,完整清单见 docs/packs/README.md。核心 git 拦截规则的实现可参考 src/packs/core/git.rs。
配置优先级(从高到低):命令行参数 → 环境变量 → 用户配置~/.config/dcg/config.toml→ 系统配置,细节见 docs/configuration.md。
命令被拦但确实要执行?三条合规出路
dcg 不是一堵死墙,为「明知故犯」的操作留了逃生通道:
| 方法 | 适用场景 | 用法 |
|---|---|---|
| 临时放行码 | 一次性运维操作 | 拦截信息中会给出 6 位短码,执行dcg allow-once <code>即可临时放行(24 小时过期) |
| 永久白名单 | 固定工作流 | dcg allowlist add core.git:reset-hard -r "原因说明" |
| 环境变量绕过 | 紧急情况 | DCG_BYPASS=1 <命令>(慎用) |
日常更推荐临时放行码:既留痕又安全,且码与具体命令一一绑定,过期自动清理。
常见问题 FAQ
Q:它会拖慢我的开发速度吗?不会。快速拒绝过滤器让 99% 的普通命令在微秒级放行,典型命令整体延迟低于 1 毫秒,终端里完全无感。
Q:为什么我grep "git reset --hard"文档没有被拦?这是特性不是 Bug——dcg 的上下文分类器能区分「数据中的危险字样」和「真正会执行的危险命令」,因此误报率很低。
Q:它能防住黑客吗?不能。dcg 的设计目标是防护「善意但会犯错」的 AI 智能体(以及手滑的你),属于防御层而非对抗恶意攻击的边界。日常仍建议配合勤 commit、勤备份。
Q:支持哪些智能体?完整的支持矩阵与按智能体定制策略(信任级别、独立白名单)见 docs/agents.md。
Q:想卸载怎么办?仓库提供 uninstall.sh(macOS/Linux)与 uninstall.ps1(Windows),会自动移除 dcg 的钩子、二进制和配置,不影响其他工具。
写在最后
给 AI 智能体「上保险」的最佳时机是事故发生之前。花 3 分钟跑完上面两步安装,你就拥有了一个默认拦截破坏性 git/文件命令、可按需扩展到 50+ 领域的守护进程——从此 Claude Code 再「手滑」,你的项目文件也安然无恙。🛡️
【免费下载链接】destructive_command_guardThe Destructive Command Guard (dcg) is for blocking dangerous git and shell commands from being executed by agents.项目地址: https://gitcode.com/GitHub_Trending/de/destructive_command_guard
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考