Ayle5678/dsh-auto-guard

Ayle5678★ 0TypeScript最后同步: 2026-08-20

在 GitHub 打开

一款DSH (DeepSeek Harness) 插件:类似 Claude Code 中 Auto Mode 的一种命令通过机制,给 dsh中的full access 加一层 LLM 安全网的自动审批插件。

README 摘要

dsh-auto-guard DSH 插件:类似 Claude Code 中 Auto Mode 的一种命令通过机制,给 full access 加一层 LLM 安全网的自动审批 / 命令守卫。目的:1. 降低full-access模式的风险。2. 降低full-access模式使用者的焦虑感。 Auto Guard 权限预设 = danger-full-access + rules + LLM + ask ,由规则、缓存与一次性 LLM 裁决器代替人工完成大多数审批。 设计定位 - 基于 full access 兜底 :插件不限制文件系统能力,而是在 danger-full-access 之上做安全裁决,尽量不打断正常开发。 - 适配绝大多数开发情况 :日常只读命令、构建、测试等通过白名单 / 缓存直接放行。 - 危险命令交给 LLM 裁决 :大部分危险命令和可能泄露信息的命令都会经过 LLM 审查;目录删除、状态改变组合、管道等高风险场景有专门处理。 - 不承诺绝对安全 :插件不是沙箱,也不排除极少数隐秘危险命令可能通过审查;请把它当作“安全网”而不是“安全边界”。 - API 密钥不落仓库 :本项目不存储任何 API Key / Token;LLM 调用由 DSH 运行环境注入,敏感文件内容不会发送给 LLM。 功能特性 - 分层裁决 :File Tracker → 绝对黑名单 → 目录删除复核 → 复合命令处理 → 静态白名单 → 缓存 → LLM 兜底。 - 静态白名单 :默认白名单 + 用户确认放行规则,命中直接放行。 - 绝对黑名单 :危险命令直接拒绝,同时注册为 ctx.tools.guard() 单调否决,LLM 不能覆盖。 - 复合命令智能处理 : - ; 、 && 、 拆成子命令,已白名单 / 已缓存的子命令直接过,只审查未匹配的子命令; - 出现 export 、 umask 、 trap 、 cd 、 git config 等会改变后续命令运行环境的状态改变命令时,整条复合命令交给 LLM 审查; - 管道不拆分,按整体审查,但管道内的危险命令仍会被黑名单 / 目录删除 / 每次审查规则拦截。 - 动态白名单 : unknown 命令被 LLM 判为 low / medium 风险并放行后写入缓存; always-review 类命令(动态执行、依赖安装等)仍每次审查、不缓存。 - 目录删除复核流程 :要求 agent 提供 [删除理由] ,再由高思考 LLM 复核;只有 allow 才放行,其余结果转人工确认。 - 敏感路径门禁 : write / edit 命中 .env 、 .ssh 、 /etc/ 等名单时直接 ask,不审查文件内容。 - 规则可维护 :默认规则存放在用户 .dsh 目录,用户可直接修改;用户覆盖规则与默认…

在 GitHub 查看完整 README →
工具/开发dsh-plugindsh-plugins

分类