Claude Code 风格权限规则引擎:hard/deny/ask/allow 四级规则(hard 高于全访问、不可豁免)、workspace 作用域、通配符路径保护、可视化草稿式编辑器,规则持久化于 settings.yaml。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:940842546/dsh-permissions
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
中文 | English
面向 DeepSeek Harness(dsh)的 Claude Code 风格权限规则引擎。双面 Cordis 插件:宿主侧在 tools/pre-execute 瀑布上做拦截判定,浏览器侧提供 设置 → 权限 可视化编辑器。
亮点
- 四级规则、严格优先级:
hard>deny>ask>allow。 hard高于全访问:即使会话处于全访问档(审批策略never),hard 规则依然拦截、不可豁免;ask规则跟随会话策略,全访问下自动放行。- 作用域:
global规则全局生效;按workspace的规则叠加合并(冲突时 deny 永远胜出)。 - 通配符匹配(文件类工具
read/write/edit/glob/grep/read_image):write(*.pem)—— 路径以.pem结尾write(*secret*)—— 路径包含secretwrite(.ssh)—— 路径任意位置出现.ssh片段(大小写不敏感,\//统一归一化)write(C:\users\*)—— 绝对路径前缀- 裸
write—— 该工具全部调用
- 持久化:规则存于
dsh-permissions设置命名空间,跨重启保留(<harness home>/settings.yaml)。 - 模型透明:生效规则注入系统提示(
[active-permission-rules]段)。 - 可视化编辑器:草稿式(staged)编辑——所有修改点「保存并应用」后才生效,附一键预设(保护敏感目录 / 密钥文件 / 拦截危险命令)。
界面截图
| 顶部:作用域与规则构建器 | 规则面板 / 试算器 / 决策日志 | 草稿式保存 |
|---|---|---|
![]() |
![]() |
![]() |
规则语法
| 规则 | 含义 |
|---|---|
pwsh |
该工具的全部调用 |
pwsh(npm run) |
首参以 npm run 开头 |
write(*.pem) |
文件路径以 .pem 结尾 |
write(*secret*) |
文件路径包含 secret |
write(.ssh) |
路径任意位置出现 .ssh 片段 |
pwsh(*) |
全部调用(显式写法) |
非文件工具按首参原文做前缀匹配;grep 额外匹配其 path 参数。
安装
方式 A —— 官方安装器(推荐):
dsh plugin add dsh-permissions
方式 B —— 手工补丁行: 把本仓库 cordis.patch.yml 中的 insert 列表追加到你的 profile 补丁(~/.dsh/cordis.patch.yml 或 ~/.dsh/profiles/<profile>/cordis.patch.yml),并确保包已安装到 profile 可解析的位置(~/.dsh/node_modules/dsh-permissions):
- insert:
- id: permissions
name: dsh-permissions
然后重启应用。设置 → 权限 页自动出现;引擎自带安全默认值(16 条 hard 规则保护 .ssh / .aws / .gnupg / AppData / *.pem / *.key / *.env / *.htpasswd,以及 deny: pwsh(rm -rf *))。
权限设置页
- 引擎开关、三张一键预设卡、点选式规则构建器(动作 × 工具 × 匹配方式 × 参数 → 实时预览)、四个彩色规则面板。
- 所有修改先进入草稿:点「保存并应用」前不影响 AI 行为;「放弃修改」恢复上次保存状态。
安全说明
- 引擎只会收窄会话现有的沙箱/审批姿态:
allow只跳过本插件的询问,绝不绕过 DSH 沙箱或tools.guard守卫。 - 拦截以工具错误呈现给模型(
Error: 权限规则拒绝…;hard 为硬规则拒绝(高于 full access,不可豁免)…),模型可见完整规则原文,可据此改道。 - 设置页路由(
GET/POST /api/dperm/rules)是命名空间所有者自建的端点——DSH api-proxy 的 settings 白名单刻意不暴露第三方命名空间。
开发与发布
见 PUBLISH.md:发布清单与本插件踩过的坑(客户端包 exports 必须含 ./package.json;bundle 模块 id 必须等于包名;useSyncExternalStore 不能传未绑定方法引用等)。
License
MIT
链接
同类插件
toby-bridges/api-relay-audit★ 862
从 DeepSeek Harness 对 AI API 中转站和 LLM 代理运行本地安全审计,生成 Markdown 报告,覆盖提示词注入、模型替换信号、工具调用改写、错误泄漏、流完整性和按 profile 启用的 Web3 风险。
SeaOf0/dsh-redteam-model★ 652
面向授权安全研究的 DSH 合集:九个工作模式(redteam 总控、渗透测试、代码审计、二进制分析、攻防评估、免杀对抗、应急溯源、云安全攻防、CTF 解题)与十五个运行时插件,设置页管理台支持一键部署、安装、更新与卸载。
howmp/dsh-pentest★ 566
面向 DeepSeek Harness 的授权渗透模式:以探索链路记录目标、线索、资产与漏洞,并在 Web 中可视化展示。
PerryLink/dsh-auto-review★ 218
审批链上的第二模型自动审查:只读审查子代理返回带理由的 allow/deny 结构化裁决,默认 fail-closed。
NanmiCoder/dsh-auto-mode★ 164
在 Workspace Write 与 Full access 之间增加 Auto 权限档:日常操作留在官方 workspace-write 沙箱内,由当前会话模型复核升权与破坏性调用,精确的越界访问按次放行一次,意图不明时询问,命中关键路径则拒绝。
PerryLink/dsh-permission-rules★ 117
Claude Code 风格的声明式权限规则:按序 allow/deny/ask 的 YAML 规则,在 tools/pre-execute 瀑布上匹配工具名、参数、工作区路径与 agent 身份,带完整会话日志审计、干跑模式与热重载。



社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。