dsh-plugins

DSH PLUGIN开发与运行时

仓库 MarvekG/dsh-plugins · npm @MarvekG/dsh-plugins

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH plugin 集合,修复冗余沙箱权限请求并优化路径查看,让 DeepSeek Harness 的 Web 界面更安全易用。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 3 复刻 0 · 未关闭 issue 0
最近更新 2026-08-26 创建于 2026-08-23
README 6.4 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:MarvekG/dsh-plugins#v0.1.0
兼容 DSH 版本0.2.0-rc.2 等 9 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名@MarvekG/dsh-plugins可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-plugins:为 DeepSeek Harness 修复冗余权限与路径打开的插件集合

  • 去除冗余权限请求
  • 浏览器查看文件路径
  • 安全渲染文件内容
  • 多入口独立加载

适用场景

GitHub 集成

上游标签

dshdsh-plugindsh-plugin-marketdsh-plugins

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方MarvekG仓库 dsh-plugins · 默认分支 main
分类开发与运行时dev
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue3 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-23 · 2026-08-26最后推送 2026-08-26
本站收录2026-08-27首次进入本站目录的时间

README 全文

6.4 KB
作者原文,中文版优先;只做安全转义,不改内容

@MarvekG/dsh-plugins

第一章:安装指南

> ⚠️ 从旧包名 @MarvekG/dsh-bug-fix 升级:必须先卸载再安装。
> 本包已更名为 @MarvekG/dsh-plugins,包名变了,不能走「更新」流程平滑切换(旧条目会残留在 profile 里)。请先执行:
>
> sh > dsh plugin --profile web remove @MarvekG/dsh-bug-fix > dsh plugin --profile web add github:MarvekG/dsh-plugins > dsh web >
>
> 卸载与重装之间不要重启 DSH Web,避免旧名缺失导致的装配告警。

1.1 从 GitHub 安装

需要先安装并确认 dsh 可以正常运行。默认从 GitHub 安装:

dsh plugin --profile web add github:MarvekG/dsh-plugins
dsh web

这里的 web 是 DSH profile 名称。如果使用其他 profile,把 web 换成对应的 profile 名称。

安装后,重启 DSH Web 即可生效。

1.2 固定版本

如果不想跟随仓库最新代码,可以在仓库地址后加 commit SHA:

github:MarvekG/dsh-plugins#

1.3 本地调试

克隆本仓库后,在仓库根目录执行:

dsh plugin --profile web add .
dsh web

1.4 卸载

从 web profile 移除插件:

dsh plugin --profile web remove @MarvekG/dsh-plugins

1.5 更新

更新时先移除旧版本,再安装新版本:

dsh plugin --profile web remove @MarvekG/dsh-plugins
dsh plugin --profile web add github:MarvekG/dsh-plugins
dsh web

本地调试时,把第二条命令替换为:

dsh plugin --profile web add .

1.6 运行测试

在插件目录执行:

npm test

1.7 多入口结构

本包使用 DSH 的子路径入口。当前入口:

@MarvekG/dsh-plugins/sandbox-same-mode
@MarvekG/dsh-plugins/path-viewer

它由 cordis.patch.yml 单独挂载。以后新增修复时,可以新增一个脚本、一个 exports 子路径和一个独立的 patch 行;每个入口拥有自己的 Cordis 生命周期,可以单独加载和卸载。

第二章:已解决的问题

本章按问题分别记录修复内容。后续新增问题时,继续在本章增加独立小节。

2.1 冗余沙箱权限请求

原始报错

session 权限已经切换为 danger-full-access 后,重试仍携带以下参数:

{
"file_path": "/home/wang/codes/StickyProxy/plugin/internal/state/store.go",
"content": "x",
"sandbox_permissions": "workspace-write",
"justification": "write the requested plugin fix outside the workspace"
}

DSH 在写入真正执行前报错:

sandbox escalation to "workspace-write" is not strictly wider than this call's current "danger-full-access" mode

为什么会报错

因为有效权限按 session 决定,工具 schema 会公开所有可能的升级目标。模型可能在较窄权限下收到重试指引,然后在 session 切换到相同或更宽权限后继续使用该参数。这个例子中,workspace-write 比当前的 danger-full-access 更窄,请求字段并没有增加能力,因此 DSH 正确地将它拒绝为非升级请求。

插件如何处理

插件会在工具注册时包装其执行函数,因此同时覆盖普通全局工具和 DSH Web 的 preset-scoped bash、pwsh、write、edit 工具。它只会在以下条件同时满足时,把升级字段删除并按当前权限执行:

  1. sandbox_permissions 是该工具 schema 明确公开的枚举值;
  2. justification 是非空字符串;
  3. 请求权限不宽于当前调用、当前 session 的有效 sandbox 权限。

此时请求只是冗余声明,因而不弹审批,也不再报 not strictly wider。

真正的权限升级和所有非法输入仍然保持原来的流程:

  • read-only → 更高权限:继续申请审批;
  • workspace-write → danger-full-access:继续申请审批;
  • 缺少说明、说明为空或参数不完整:继续报错;
  • 未被工具 schema 公开的权限值(包括伪造的同级值):仍由 DSH 原始参数校验拒绝。

插件不会绕过什么

插件不会扩大工作区,也不会修改 workspaceRoot,更不会偷偷增加权限。有效权限仍为 workspace-write 时,去掉冗余升级字段后,工作区外的请求仍可能因为沙箱工作区边界而被拒绝。

安装或更新后应重启 DSH Web,使新的 preset-scoped 工具注册时经过本插件;它不会追溯包裹重启前已存在的 session 工具定义。

2.2 点击路径改为弹出网页查看器

原始报错

在 DSH Web 里点击文件路径时报:

path open failed: path open failed: spawn powershell.exe ENOENT

为什么会报错

WSL 下 DSH 通过 powershell.exe 把路径交给 Windows 桌面打开。/etc/wsl.conf 配置了 [interop] appendWindowsPath = false 时,Windows 目录不会追加进 PATH,裸命令名 spawn 直接 ENOENT。而且「从 WSL 唤起 Windows 桌面」本就脆弱——GUI 本身就跑在 Windows 浏览器里。

插件如何处理

新增 dsh-plugins-path-viewer 条目(cordis.patch.yml 单独挂载),把原生打开换成纯浏览器方案:

  1. 在同一个 web 服务上注册带回环围栏的 GET /view?path=<绝对路径>[&line=N]:文件渲染为行号表格(HTML 转义、tab=4、超 4 MiB 截断横幅、二进制识别不渲染),目录渲染为可继续点击进入的列表页。
  2. 通过 webserver/index-inject 向 GUI 页面注入一段 head 脚本:拦截发往 /api/host.openPath、/api/host.openTextFile 的 RPC,改用 window.open('/view?path=…') 在新标签页展示,并按线上封包形状伪造成功应答({type:'server-response',rpcId,result:{ok:true,value:{opened:true}}});若新标签页被浏览器拦截,自动放行原始请求。常见源码由 highlight.js 做语法高亮,未知扩展名安全地按纯文本展示。

全程不 spawn 任何 Windows 进程。配置项:maxBytes(单次渲染字节上限)与 intercept(改道的 RPC 方法列表)。安装或更新后重启 DSH Web 生效。

第三章:许可证与友情链接

本项目基于 MIT 许可证 开源。

友情链接

  • linux.do — 开放、友好的开发者社区。

常见问题

7 问
答案由本站依据条目字段整理,不引用上游原文
dsh-plugins 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:MarvekG/dsh-plugins#v0.1.0` 即可。对应的 npm 包名是 `@MarvekG/dsh-plugins`。

dsh-plugins 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-plugins 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-plugins 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.1.7-rc.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2、0.1.3-alpha.1、0.1.2-rc.1。版本较多,只列出前 8 个。

dsh-plugins 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-plugins 有哪些功能?

去除冗余权限请求、浏览器查看文件路径、安全渲染文件内容、多入口独立加载。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

8 条
不同作者的仓库分开列,请确认你要装的是哪一个
开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

MarvekG 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。