前言¶
DeepSeek Harness(DSH)的设计口号是「一切皆插件」:界面、工具、记忆、工作流,大多都能以插件形式装进当前 profile。社区仓库只要打上 GitHub 的 dsh-plugin topic,就会出现在公开话题列表里。问题是,发现和安装这两步通常还要离开 Harness:打开 topic 页、对照 README,再回到终端执行 dsh plugin add。
dsh-plugin-marketplace 做的是把这件事收回 Web 界面。装上之后,设置 → 插件 里会多出「插件市场」和「已安装」两个标签页,可以按页浏览、按关键词搜索、点按钮安装;Host 侧同时注册 market_search、market_install 等模型工具,让 agent 自己去搜、去装。
需要先说清楚边界:这是 AwesomeHou 维护的社区插件,采用 MIT 许可证,不是 DeepSeek / 幻方官方应用商店。社区目录站点 deepseek-harness-plugin.com 也是独立收录,与官方仓库无从属关系。生态里还有 dsh-market、DSH-Plugins-Marketplace 等同类市场插件,数据源和安装策略并不相同。本文只核对 AwesomeHou/dsh-plugin-marketplace。
这是什么¶
dsh-plugin-marketplace 是一款界面增强插件,由 AwesomeHou 维护,仓库在 AwesomeHou/dsh-plugin-marketplace。目录页分类为「界面增强」,本稿核对 GitHub 时星标为 27,package.json 版本为 0.3.0,主要语言是 JavaScript。
它解决的是「社区插件已经很多,但要在终端和 GitHub 之间来回切」这件事。数据源不是某个手工精选清单,而是 GitHub Search API 对 dsh-plugin topic 的实时查询。目录页和 README 仍写「1800+ 仓库」;本稿用 Search API 核对 topic:dsh-plugin 时,total_count 已经超过 6000。市场按页拉取,页面上的 total 对应当次查询的真实 total_count,数字会随 topic 变化。
插件分两半:Host 半(lib/index.js)负责同步 GitHub、注册 /api/market/* 接口和模型工具;Client 半(lib/client.js)把两个标签页挂进 settings.plugins.tab。package.json 里 dsh.client.platform 声明为 web,所以它面向的是 Web 界面,不是纯 CLI 会话。
核心功能¶
全量分页,而不是只看前 50 个¶
Host 按页拉取整个 topic,默认每页 50、最大 100。界面带「加载更多」,不再把列表截成「只看 50 个」。total 反映 GitHub 返回的真实 total_count。
搜索走 GitHub 的 q,不是已加载页的本地过滤¶
搜索框和 market_search 工具都把关键词交给 GitHub Search 的 q。这意味着能搜到尚未加载到当前页的仓库,而不是在已经刷出来的卡片里做前端过滤。
「插件市场」标签页顶部会标明来源:GitHub dsh-plugin 话题(github.com/topics/dsh-plugin),通过 Search API 实时同步。这和「某个站点自己维护的精选目录」不是同一件事。
一键安装:先探测仓库形态,优先走 npm¶
每个卡片都有「安装」按钮。点击后 POST /api/market/install,Host 侧 planInstall 先看仓库长什么样,再选安装路径:
- 根目录
package.json声明了dsh.bundle/dsh.client的根级插件:走标准dsh plugin add -w - 已经发到 npm 的插件:优先用
name@装 npm 版(README 的理由是快、稳、不必再拉 GitHub;pnpm 会把插件和运行时依赖一起装进 profile) - 未发布到 npm:用 github spec
- monorepo / workspace 根:克隆到
$DSH_HOME/marketplace-src,用 corepack pnpm 构建后再link:注册
装完会做结果校验:是否进入 dsh.profile.bundles、入口文件是否存在、运行时依赖是否可解析。README 明确写了:不能用 link: 装根级插件。卡片内会画出类似应用商店的进度条(阶段、百分比、已下载、速度、ETA、实时日志),可以取消。
直装失败时,卡片上会出现「让 agent 安装」。Host 会准备专属工作区 $DSH_HOME/marketplace-install,在新对话里把固定提示词发给 agent,让它读目标仓库 README 再决定怎么装,避免污染当前会话。runtime 服务不可用时,会退回当前会话。
安装子进程会注入 CI=true,避免 pnpm 10 及以上在无 TTY 时卡在交互提示。遇到 pnpm 大版本漂移(ERR_PNPM_VIRTUAL_STORE_DIR_MAX_LENGTH_DIFF / PUBLIC_HOIST_PATTERN_DIFF),会自动 pnpm install 重建 modules 再试一次。下载长时间零输出时,停滞看门狗默认 120 秒杀掉进程树并直连重试一次(可用环境变量 DSH_MARKET_STALL_MS 覆盖),避免一直转到超时长达十分钟。
给 agent 的四件工具¶
Host 通过 ctx.tools.register 注册:
| 工具 | 作用 |
|---|---|
market_search(q?, page?, perPage?) |
返回 topic 仓库的 JSON 列表:full name、star、语言、简介、URL |
market_install(spec) |
执行 dsh plugin --profile web add -w,装进 web profile;执行前校验 spec 是否含 shell 元字符;完成后提示需要重启 harness |
market_installed() |
列出 web profile 里已装的第三方插件:启用状态、当前版本、最新版本、是否可更新(含市场自己);内置插件不在此列 |
market_update(name) |
把某个已装插件更新到最新版本,需重启才生效 |
已安装、更新、停用、卸载¶
dsh.profile.bundles 里来自 profile 模板的包视为内置插件:随 Harness 提供,不能关闭或卸载。「已安装」标签页只列后安装的第三方插件,页面顶部有声明。
后安装插件可以:
- 停用 / 启用(
/api/market/set-enabled):从dsh.profile.bundles移出或移回,依赖仍保留 - 卸载(
/api/market/uninstall):dsh plugin --profile web remove,并自动从 bundle 层摘除 - 更新:对照 npm 的
latest,或 GitHub 默认分支package.json的version(GitHub 插件优先);有新版本时卡片标「可更新」
市场还会检查自己的版本(读自家 GitHub 仓库的 package.json)。有新版本时,两个标签页顶部会出现 vX → vY · 立即更新 横幅。停用、卸载、更新、自更新都需要重启 harness。
插件简介翻译(0.3.0)¶
2026-08-17 合并的 PR #1 给卡片加了「翻译」按钮:Host 提供 POST /api/market/translate,用 Google gtx 与 MyMemory 并行竞速,先返回的结果用于弹窗显示中文。仓库 README 尚未单独成节,以该提交和效果截图为准。
安装与启用¶
目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行即可:
dsh plugin add github:AwesomeHou/dsh-plugin-marketplace
仓库 README 写的是装进 web profile(本插件的 client 声明也是 web):
dsh plugin --profile web add https://github.com/AwesomeHou/dsh-plugin-marketplace
也可以把仓库地址直接交给当前 agent:
帮我安装这个插件 https://github.com/AwesomeHou/dsh-plugin-marketplace
装完需要重启 harness 才会出现两个新标签页。
如需可复现安装,按目录页说明固定 commit 哈希:
dsh plugin add github:AwesomeHou/dsh-plugin-marketplace#<commit>
本稿核对仓库时,默认分支 master 的最新提交是 1df4eb2121e869f48fdeb5de626c3610868a369e(2026-08-17)。哈希会随后续推送变化,安装前请再对一下 GitHub。
不要用裸 npm 包名 dsh-plugin-marketplace 从 registry 安装。仓库 issue #3 记录过:npm 上同名包属于另一作者,自更新若按裸名解析会装错包,重启后市场标签页消失。2026-08-17 的修复提交改为按已装包声明的 GitHub 仓库解析版本与更新来源。
典型用法¶
- 安装并重启 harness(Web 界面一般是
dsh web这一路)。 - 打开 设置 → 插件,应能看到与自带「插件配置」「插件列表」并列的 插件市场、已安装。
- 在「插件市场」里浏览卡片,点「加载更多」翻页;用搜索框按名称或关键词检索整个 topic。
- 对目标插件点 安装,看进度条和日志。失败时再看卡片是否出现「让 agent 安装」。
- 到「已安装」核对第三方插件的启用状态和版本;需要时点更新、停用或卸载,然后再次重启。
如果希望模型代劳,可以直接说「帮我搜一下 topic 里和视觉相关的插件」或「把某某仓库装进 web profile」。模型应走 market_search / market_install,而不是自己拼一条未校验的 shell。market_install 会拒绝带 shell 元字符的 spec。
适用场景与注意事项¶
适合已经在用 DSH Web 界面、希望少切终端的人:浏览社区插件、给当前 agent 临时补能力、查看已装第三方插件是否有更新。也适合让 agent 在对话里自己发现并安装插件。
不适合当成「官方审核过的应用商店」。清单来自 GitHub topic 的公开搜索结果,仓库质量、维护状态、是否真的声明了 DSH 插件契约,都要自己看源码。内置插件不会出现在「已安装」里,也不能从这里关闭。纯 CLI、不用 Web profile 的用法对不上这个插件的 client 声明。
安装任何通过市场找到的插件时,请记住目录页上的那句警告:插件以当前 dsh 进程的权限运行,安装时可能执行代码。 安装前检查源代码仓库和许可证。本插件自身是 MIT;它帮你装上的其他插件,许可证和权限各不相同。直装会在本机执行 dsh plugin add、pnpm、必要时 git clone,失败分类和看门狗只能减少卡死,不能代替你对目标仓库的审查。
社区里存在多个「插件市场」插件,安装命令、数据源(实时 topic / 精选 JSON)、是否允许任意 GitHub spec,并不通用。按目录页或目标仓库 README 的原文执行,不要把另一家市场的命令套过来。
小结¶
dsh-plugin-marketplace 把 GitHub dsh-plugin topic 同步进 DSH 的设置页,并给模型补上搜索与安装工具。它降低的是发现和安装的往返成本,并不改变「插件等于在你这台机器上跑别人的代码」这一事实。
- 目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-plugin-marketplace/
- GitHub:https://github.com/AwesomeHou/dsh-plugin-marketplace
- DeepSeek Harness 官方仓库:https://github.com/deepseek-ai/deepseek-harness
- GitHub topic:https://github.com/topics/dsh-plugin