dsh-desktop-safe-market:先审查、再安装的 DSH 插件市场

前言

DSH 生态强调「一切皆插件」。目录通常解决“有哪些插件可用”,但安装前还有一个更直接的问题:这个插件是否应该进入当前 profile。

bruc3van/dsh-desktop-safe-market 是一个面向 DeepSeek Harness(DSH)的社区插件市场,定位是“先审查、再安装”。它把上游精选短名单和安装前的 Agent 审查放在同一个入口里,插件自身不执行安装,也没有能执行安装的接口。

它不是官方应用商店,而是社区维护的 DSH 插件市场。

这是什么

一句话:一个先审查、再安装的 DSH 插件市场。

  • 维护者:bruc3van
  • 许可证:MIT
  • 入口:在 DSH 设置中新增“安全市场”导航项,分为“插件”和“技能”两页
  • 覆盖端:浏览器、CLI 与桌面客户端共用同一个 profile,三处都会出现该导航项
  • 兼容:0.3.0 同时兼容旧版单体 Client Runtime 与新版拆分后的 Session/Workspace Controller

核心功能

精选来源

市场列表来自 awesome-dsh-plugin 每日快照管线的人工精选产物,而不是 GitHub topic 原始抓取。上游会剔除非插件、归档/停用仓库,并按类目均衡发牌。插件读取目录快照中的 market.json,并在 Host 侧重校验后发给浏览器。

安全安装

“安全安装”不会直接安装。它会连接一个新会话,把安全审查提示词填入输入框,但不发送。是否发送由用户按回车决定。

提示词要求 Agent 实际读仓库代码,确认干净后才执行官方安装命令。安装优先级如下:

1、npm 包
2、最新 release tag 的预构建 tarball
3、前两者都没有时,从默认分支装源码,并锁到具体 commit

插件不执行安装

插件自身没有能执行安装的接口。安装命令写在提示词里,由 Agent 执行。审查与安装在结构上不可分割,绕不过去。

已安装面板

“插件”页包含已安装面板,列出当前 profile 通过包安装的插件,以及桌面客户端自动装进来的市场插件。面板支持停用/启用和卸载。桌面客户端自动装进来的市场插件以该面板作为唯一移除入口。

技能页

“技能”页列出当前会话能解析到的技能,包括名称、说明、来源 provider 与调用策略,可搜索。当前技能页只读,还不能装技能。

安全升级

已安装过的插件卡片会标出“已安装 vX.Y.Z”,按钮变为“安全升级”。安全升级会先让 Agent 确认上游最新版本;如果不比当前新,则直接回“已是最新”、不做任何改动;确有新版才继续完整审查。

默认关闭与网络边界

安全市场默认关闭。开启后才会从 GitHub 读取目录快照;关闭时插件不发起任何网络请求。默认关闭状态下,Remote 接口直接拒绝,无法绕过开关读取目录。

来源切换与文件校验

默认从 GitHub raw 读取 market.json。不可达或出错时,自动切换同一文件的 jsDelivr CDN 镜像,并记住可用来源。

市场文件在 Host 侧重新校验后才发给浏览器,并持久化到 $DSH_HOME/storages/safe_market.json;重启后使用 ETag 条件请求。

仓库链接由 owner/name 重新拼装,不采信市场文件中的地址。默认分支名进入提示词前经过模式校验,不合格回落 main。配置 profile 名必须匹配 [A-Za-z0-9][A-Za-z0-9._-]{0,63},否则插件拒绝启动。

安装与启用

1、从 npm 安装到 web profile:

dsh plugin --profile web add dsh-desktop-safe-market

2、安装完成后,重启 dsh web 或桌面客户端,使设置中的“安全市场”导航项生效。

3、如果锁定 v0.3.0,使用 GitHub release tarball:

dsh plugin --profile web add https://github.com/bruc3van/dsh-desktop-safe-market/archive/refs/tags/v0.3.0.tar.gz

4、也可以把安装交给 Agent,使用这段提示词:

帮我安装 DSH 安全市场:用官方命令 dsh plugin --profile web add dsh-desktop-safe-market 装进 web profile,完成后提醒我重启 dsh web 才会生效。

首次使用时,在“插件”页点击“启用安全市场”。开启后,市场才会读取目录快照;关闭时不发起网络请求。

典型用法

安全安装一个插件

1、在“插件”页打开“全部插件”视图,按 Star 数排名浏览。
2、点插件卡片的“安全安装”。
3、插件连接一个新会话,并把审查提示词填入输入框。
4、你按回车发送,Agent 开始读取仓库代码并审查。
5、Agent 确认干净后,按官方命令执行安装;如果从源码安装,需要处理 pnpm allowBuilds 授权。
6、用下面命令确认实际安装的版本:

dsh plugin --profile web list

源码安装时的 allowBuilds

从源码安装时,pnpm 的 allowBuilds 门禁会要求确认允许该仓库代码在安装时执行。提示词要求 Agent 将打印的键原样交给用户确认,并写入 pnpm-workspace.yaml 后重跑。

管理已安装插件

在已安装面板中:

  • 停用/启用插件会立即生效,且重启后依旧有效。
  • 卸载用户插件会在 profile 目录执行 pnpm remove,并清理相关条目;失败时仍会改清单并在面板说明。
  • 桌面客户端装进来的市场插件,面板是唯一移除入口;如果客户端仍开启“接入内置安全市场”,下次启动可能重新装回。

升级已安装插件

对已安装插件点“安全升级”。Agent 先确认上游最新版本;只有确有新版本时,才继续审查和安装。

覆盖配置

可在 ~/.dsh/profiles/web/cordis.patch.yml 覆盖 catalogBasemarketSize

# 按实际部署填写
catalogBase: <catalogBase>
marketSize: <marketSize>

具体值按部署环境填写,不把某个默认值当作所有环境都适用。

适用场景与注意

适合:

  • 使用 DSH web、CLI 或桌面客户端,并希望在插件安装前保留一次人工确认。
  • 需要在设置中查看当前 profile 的已安装插件、桌面客户端接入插件,以及当前会话可解析到的技能。

注意:

  • 收录不代表安全背书;Agent 的审查是有依据的辅助判断,不是安全结论。
  • 插件以当前 dsh 进程权限运行。安装前应检查源码与许可证;本插件许可证为 MIT
  • 市场里看不到安装进度,因为安装命令由 Agent 执行,而不是插件执行。
  • 不体检、不重新审计已安装插件;已安装面板可查看、停用、卸载,但不会重新审计已装代码。
  • 技能页只读,还不能装技能。
  • 导航图标是皮肤级替换;壳结构变化时最坏退回齿轮,不影响功能。

链接

  • 插件仓库:https://github.com/bruc3van/dsh-desktop-safe-market
  • 上游目录仓库:https://github.com/bruc3van/awesome-dsh-plugin
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜