
destructive_command_guard
给 AI 智能体装上安全锁,防止误删误推毁仓库。
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 6316
技术标签
使用教程
环境要求
- 支持 Claude Code、Codex CLI、Gemini CLI、Cursor、Copilot CLI 等受支持的 AI 智能体之一
- 可用的 curl(Linux/macOS)或 PowerShell(Windows)
- 源码编译安装需要 Rust 与 nightly-2026-08-25 工具链
- Codex CLI 需 0.125.0 及以上版本才支持 PreToolUse 钩子
安装与启动步骤
-
1一键安装 dcg
官方推荐方式,脚本自动识别平台、下载二进制、校验 SHA256,并配置各类智能体钩子与 PATH。
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/main/install.sh?$(date +%s)" | bash -s -- --easy-mode -
2获取 dcg 绝对路径
钩子里必须写 dcg 的绝对路径,不能写裸命令 dcg,否则非交互 shell 找不到会静默失效。
command -v dcg -
3配置 Claude Code 钩子
把 command 换成上一步的真实绝对路径,写入 ~/.claude/settings.json,之后必须重启 Claude Code。
{ "hooks": { "PreToolUse": [ { "matcher": "Bash|PowerShell", "hooks": [ { "type": "command", "command": "/absolute/path/to/dcg" } ] } ] } } -
4配置 Codex CLI 钩子
Codex CLI 0.125.0+ 支持稳定钩子,安装脚本会自动合并,也可手工写入该文件。
{ "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "/absolute/path/to/dcg" } ] } ] } } -
5配置 Gemini CLI 钩子
写入 ~/.gemini/settings.json,注意钩子类型是 BeforeTool、匹配 run_shell_command,保存后重启 Gemini CLI。
{ "hooks": { "BeforeTool": [ { "matcher": "run_shell_command", "hooks": [ { "name": "dcg", "type": "command", "command": "/absolute/path/to/dcg", "timeout": 5000 } ] } ] } } -
6修复与自检钩子
自动把各智能体的钩子补齐为正确匹配器,并就地迁移旧的仅 Bash 条目,避免重复注册。
dcg doctor --fix -
7源码编译安装(可选)
需要固定版本复现时使用,先装指定 nightly 工具链,再按 tag v0.7.6 安装。
rustup toolchain install nightly-2026-08-25 cargo +nightly-2026-08-25 install --locked --git https://github.com/Dicklesworthstone/destructive_command_guard --tag v0.7.6 destructive_command_guard -
8卸载 dcg
移除二进制、各智能体钩子、配置与历史数据库,改前会提示确认,可用 --yes 跳过。
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/main/uninstall.sh | bash
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
DCG_* 环境变量 | 否 | 优先级最高的配置方式,可覆盖所有下层配置文件 | DCG_CONFIG=.dcg.toml |
~/.config/dcg/config.toml | 否 | 用户级配置,优先级低于环境变量和显式指定的文件 | /home/user/.config/dcg/config.toml |
/etc/dcg/config.toml | 否 | 系统级配置,优先级低于用户配置,高于内置默认值 | /etc/dcg/config.toml |
.dcg.toml | 否 | 仓库内自动发现的配置,只能增加强制策略,减信任项被忽略 | DCG_CONFIG=.dcg.toml dcg ... |
如何确认成功
用 command -v dcg 能输出绝对路径,dcg doctor --fix 无报错;重启智能体后执行 git reset --hard HEAD~5 应被拦截。
常见问题
Q:钩子里为什么不能直接写 dcg?
A:智能体钩子运行在非交互 shell 中,PATH 可能不含 ~/.local/bin,裸命令会找不到可执行文件而 fail open,必须写绝对路径。
Q:Windows 上为什么匹配器要写 Bash|PowerShell?
A:Windows 下 Claude Code 有独立的 Bash 和 PowerShell 两种 shell 工具,只写 Bash 会让所有 PowerShell 命令失去保护。
Q:改了钩子配置却没生效?
A:Claude Code 和 Gemini CLI 都需要在修改钩子配置后重启,重新运行安装器或 dcg doctor --fix 也可修复。
Q:自动发现的 .dcg.toml 为何部分设置无效?
A:新克隆的仓库视为不可信,其配置只能增加强制;允许覆盖、禁用规则、自定义正则等减覆盖项会被忽略。
Q:Windows 上项目 .dcg.toml 被忽略怎么办?
A:原生 Windows 会忽略自动发现的 .dcg.toml,需人工审阅后用 DCG_CONFIG=.dcg.toml 显式指定才会生效。
注意事项
- 切记不要以裸命令 dcg 注册安全钩子,必须使用 command -v dcg 得到的绝对路径
- 修改任何智能体的钩子配置后都要重启对应工具才会生效
- 仓库内 .dcg.toml 默认只具备增加强制的权限,需要完全信任时用 DCG_CONFIG=.dcg.toml 显式指定
- 源码安装固定使用 tag v0.7.6 与 nightly-2026-08-25 工具链,不要随意更换版本
核心亮点
- 用 Rust 编写,性能高,内存安全,适合作为命令行守护进程常驻。
- 针对 AI 智能体场景设计,能识别并拦截 git push --force 等高风险命令。
- 支持自定义规则,用户可根据需要调整拦截策略,灵活性强。
不足之处
- 项目较新,文档和社区生态尚待完善。
- 仅覆盖 git 和 shell 命令,对其他工具链的破坏性操作支持有限。
适用场景
- AI 编码助手(如 Copilot)执行自动化任务时,防止误操作。
- CI/CD 流水线中,作为安全网拦截智能体发出的危险命令。
- 本地开发环境,保护开发者自己的自动化脚本免于意外破坏。
替代项目
shellcheck、git-hooks、safety-cli
同类项目推荐
openinference
开源
给 AI 应用装上标准监控,一键追踪 LLM 调用全链路
OpenTelemetry Instrumentation for AI Observability
llm-inference-at-scale
开源
把大模型从能跑到稳定省钱的实战手册
A Practitioner handbook for production llm serving.
nano-vllm-prefillonly
开源
砍掉解码只留 prefill,判别式大模型推理更快更省
A specialized optimization of nano-vllm for prefill-only inference tasks, designed f···
toolport
开源
一个端口管所有 AI 工具,省 token 又安全
Local-first MCP gateway. Set up MCP servers once and use them in every AI client, wi···
ai-dial-core
开源
一套 API 统一接入多家大模型,业务代码不用改
The main component of AI DIAL, which provides unified API to different chat completi···
xllm
开源
一套引擎,跑遍各类模型和加速器,推理更快更省心。
A high-performance inference engine for LLM, VLM and DiT models, optimized for diver···
lancedb
开源
嵌入式向量检索,少运维多搜索,多模态 AI 即插即用
Developer-friendly OSS embedded retrieval library for multimodal AI. Search More; Ma···
terraform-provider-iterative
开源
用 Terraform 管 ML 云资源,自动救回竞价实例,训练完自动关停省钱。
☁️ Terraform plugin for machine learning workloads: spot instance recovery & auto-···
AI-Worker-Proxy
开源
一键部署,统一接入多模型,自动故障转移
OpenAI-compatible AI proxy: Anthropic Claude, Google Gemini, GPT-6, Cloudflare AI. F···