前言¶
对 DSH 插件使用者来说,第三方仓库、包名、版本和安装命令常常需要分别确认。DSH Marketplace 是 ouyangyipeng 维护的非官方社区插件,把 GitHub topic:dsh-plugin 的实时社区仓库放进 DeepSeek Harness 的 设置 → 插件 → Marketplace,并支持插件发现、搜索、检查、安装、更新和卸载。下面介绍安装、接口、缓存、安全边界和配置。
核心能力¶
- 将 GitHub
topic:dsh-plugin的实时社区仓库放进 DeepSeek Harness 的 设置 → 插件 → Marketplace - 支持插件发现、搜索、检查、安装、更新和卸载
- DS-Harness Desktop 从
desktop-v0.2.0起离线内置固定版本 Marketplace - 支持标准 DSH Web profile 安装、更新、卸载
- 使用目录缓存、ETag 重验证、可见的 rate-limit 状态和 stale-on-error 回退
- 以
pnpm add --ignore-scripts暂存和安装,并要求预构建入口、bundle patch 和路径检查 - 提供
/dsh-marketplace/v1/bootstrap、/dsh-marketplace/v1/catalog、/dsh-marketplace/v1/install、/dsh-marketplace/v1/removeHTTP API - 只允许同源 loopback + 进程 nonce 调用写接口
安装与启用¶
DS-Harness Desktop¶
DS-Harness Desktop 从 desktop-v0.2.0 起离线内置固定版本 Marketplace。打开应用后进入 设置 → 插件 → Marketplace,不需要先安装本插件。
内置版本显示“Desktop 内置”,不能在 Marketplace 里更新或卸载自己;它随经过验证的 Desktop release 更新。
标准 DSH Web profile¶
标准 DSH Web profile 安装需要当前 DeepSeek Harness、Node.js ^22.19.0 || >=24.0.0 和位于 PATH 中的 pnpm。
先安装指定版本:
dsh plugin --profile web add "github:ouyangyipeng/dsh-marketplace#v0.1.1"
再重启 dsh web,然后打开 设置 → 插件 → Marketplace。
经过上面的步骤后,更新或卸载独立安装的 DSH Marketplace 使用:
dsh plugin --profile web update dsh-marketplace
dsh plugin --profile web remove dsh-marketplace
典型用法¶
安装后,进入 设置 → 插件 → Marketplace,即可浏览 topic:dsh-plugin 社区仓库,并执行搜索、检查、安装、更新或卸载。
本地开发时,可以克隆仓库并运行检查:
git clone https://github.com/ouyangyipeng/dsh-marketplace.git
cd dsh-marketplace
pnpm install
pnpm test
pnpm run typecheck
pnpm run build
pnpm site:check
pnpm pack --dry-run
如果当前目录是 checkout 出来的本地仓库,可以接入标准 DSH Web profile:
dsh plugin --profile web add "link:$(pwd)"
dsh web
HTTP API¶
DSH Marketplace 提供以下接口:
GET /dsh-marketplace/v1/bootstrapGET /dsh-marketplace/v1/catalogPOST /dsh-marketplace/v1/installPOST /dsh-marketplace/v1/remove
写接口只允许同源 loopback + 进程 nonce 调用。要求 TCP 对端、Host 和可选 Origin 均为 loopback,并同时提交同源 bootstrap 返回的进程 nonce。LAN 客户端、远端 Origin、错误 nonce、非 JSON 内容、超过 16 KiB 的 body 和 host-bundled repository mutation 都会被拒绝;bundled conflict 返回 HTTP 409。
目录与缓存¶
- GitHub Search 对一个查询最多返回 1,000 条结果
- 未登录 Search API 限流较低
- Marketplace 不收集或持久化 GitHub token
- 独立安装默认配置为
profile: web、cacheTtlMs: 600000
安全边界¶
DSH Marketplace 能检查包格式和收紧安装过程,但不能证明第三方插件可信。插件重启后会在 DSH 进程内运行;启用前仍应阅读源码。
它始终以 pnpm add --ignore-scripts 暂存和安装。只有 TypeScript 源码、依赖 prepare/postinstall、实际是独立应用或没有标准 DSH bundle 声明的仓库仍会出现在目录中,但安装会明确失败。
配置¶
独立安装使用以下默认配置:
- insert:
- id: dsh-marketplace
name: dsh-marketplace
config:
profile: web
cacheTtlMs: 600000
可选配置:
home:覆盖 DSH Home;空值依次使用DSH_HOME和~/.dshbundledRepositories:宿主拥有的不可变owner/repository列表;默认[]。坐标在加载时规范化,非法值和大小写归一后的重复值会让插件启动失败
适用场景与注意¶
DSH Marketplace 适合使用 DeepSeek Harness 标准 Web profile 或 DS-Harness Desktop 的 DSH 插件开发者,用于集中查看、安装和更新 DSH 社区插件。
需要注意:Marketplace 能检查包格式,但不能证明第三方插件可信。插件在 DSH 进程内运行,启用前应检查源码、依赖和许可证。DSH Marketplace 本身是 MIT 许可证的社区维护非官方插件;DeepSeek Harness、DeepSeek 名称与社区插件保留各自的许可证和商标。
链接¶
- GitHub 仓库:https://github.com/ouyangyipeng/dsh-marketplace