destructive_command_guard

给 AI 智能体装上安全锁,防止误删误推毁仓库。

Destructive Command Guard (dcg) 是一个用 Rust 编写的命令行安全工具,专门用于拦截 AI 智能体执行危险的 git 和 shell 命令。随着 AI 编码助手和自主智能体的普及,它们可能误执行如 git push --force、rm -rf 等破坏性命令,导致数据丢失或仓库损坏。dcg 通过预执行命令检查、危险模式匹配和用户确认机制,为智能体提供一道安全防线。它支持自定义规则,可灵活配置哪些命令需要拦截或警告,并能在非交互式环境中自动阻止高风险操作。该工具轻量、快速,易于集成到现有的 AI 工作流中,帮助开发者在享受 AI 自动化便利的同时,避免灾难性后果。

开源 free 智能体
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 6042
维护状态 活跃
是否开源 是
定价模式 free

项目数据

分类智能体
开发团队Dicklesworthstone
所属国家
官网地址
定价模式free
价格说明开源项目,完全免费,无付费版本。
访问状态
是否开源是
开源协议NOASSERTION
主要语言Rust
技术栈/模型ai-agents,cli,developer-tools,git,rust,safety
GitHub 星标★ 6042
30天Star增速
HF 下载量
上线时间2026-01-07 00:00:00
最近更新2026-09-22 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数8

使用教程

难度:入门 约 10 分钟 部署方式:命令行工具 8 步

环境要求

  • 支持 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. 1一键安装 dcg

    官方推荐方式,脚本自动识别平台、下载二进制、校验 SHA256,并配置各类智能体钩子与 PATH。

    curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/main/install.sh?$(date +%s)" | bash -s -- --easy-mode
  2. 2获取 dcg 绝对路径

    钩子里必须写 dcg 的绝对路径,不能写裸命令 dcg,否则非交互 shell 找不到会静默失效。

    command -v dcg
  3. 3配置 Claude Code 钩子

    把 command 换成上一步的真实绝对路径,写入 ~/.claude/settings.json,之后必须重启 Claude Code。

    {
      "hooks": {
        "PreToolUse": [
          {
            "matcher": "Bash|PowerShell",
            "hooks": [
              {
                "type": "command",
                "command": "/absolute/path/to/dcg"
              }
            ]
          }
        ]
      }
    }
  4. 4配置 Codex CLI 钩子

    Codex CLI 0.125.0+ 支持稳定钩子,安装脚本会自动合并,也可手工写入该文件。

    {
      "hooks": {
        "PreToolUse": [
          {
            "matcher": "Bash",
            "hooks": [
              {
                "type": "command",
                "command": "/absolute/path/to/dcg"
              }
            ]
          }
        ]
      }
    }
  5. 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. 6修复与自检钩子

    自动把各智能体的钩子补齐为正确匹配器,并就地迁移旧的仅 Bash 条目,避免重复注册。

    dcg doctor --fix
  7. 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. 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

项目介绍

destructive_command_guard 是基础设施领域的开源项目,由 Dicklesworthstone 开发,是 2026 年新上线的项目。

在全站 13,090 个收录项目中,它的 GitHub 星标数(6,042)位列前 8%,在基础设施分类的 1,132 个项目里位列前 11%。

近 41 天,它的 GitHub 星标从 5,738 增加到 6,042,净增 304。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-22。完全免费,无付费版本。

它主要面向的使用场景是:AI编码助手(如Copilot)执行自动化任务时,防止误操作。同类可对比的替代方案包括 shellcheck、git-hooks、safety-cli。

上一篇:sandlock

下一篇:rampart

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

Multi-account OpenAI-compatible gateway for coding models. Pooled keys, session life···

★ 213 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8684 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 439 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181484 2026-08-09