前言¶
DeepSeek Harness(DSH)的组合包可以不断叠加,但社区插件散在 dsh-plugin.org 和各类 GitHub 仓库里。若每次都要自己查文档、拼 github:owner/repo、再对照设置里的插件列表,成本偏高。社区里也曾有依赖 dsh CLI、与 profile 行为纠缠的第三方市场方案,和桌面端 / Web 端的官方插件管理并不完全一致。
wojiao42/dsh-plugin-market(npm 包名 dsh-market-panel)是在 DSH 客户端侧栏提供「插件市场」面板的组合包:浏览社区目录,安装、启停、卸载一律调用 Harness 官方 pluginManager,不依赖 dsh CLI,也不代替官方管理器的校验与写锁逻辑。下文按定位、功能、安装与日常用法说明,事实以仓库 README 与 package.json 为准。
这是什么¶
- 仓库: github.com/wojiao42/dsh-plugin-market
- 维护者:wojiao42
- 分类:客户端(
dsh.client,platform: web) - 当前版本:0.3.1(MIT)
- 一句话:左侧栏「插件市场」+ 设置里同名的分区,对接 dsh-plugin.org 的精选目录与 sitemap 全量索引,通过
inspect→installBundle等官方 API 管理当前 profile 下的组合包。
与 DeepSeek / 幻方无官方商店从属关系;dsh-plugin.org 是社区目录站点,本插件只做浏览与调用官方安装通道。
核心功能¶
两个入口,同一套界面¶
- 左侧栏 「插件市场」 面板。
- 设置(Ctrl+,)→「插件市场」 分区(
settings.section,order 60)。
两处渲染同一组件,界面状态各自独立。主区另有 main 页面。
五个页签¶
| 页签 | 作用 |
|---|---|
| 市场 | 推荐条(数据来自官网 stats.json,失败时回退目录统计)、搜索、长名分类 chip、按 Star / Fork / 最近更新 / 最新收录排序;卡片展示名称、版本、分类、「已验证」/「仅索引」、安装源类型等;动作含详情(跳转 dsh-plugin.org)、安装 / 可更新 / 已安装、复制命令 |
| 已安装 | 当前 profile 组合包列表;setBundleEnabled 启停、removeBundle 卸载(二次确认) |
| 自定义安装 | 输入 npm 包名、github:owner/repo 或本机绝对路径,走与官方一致的 inspect → installBundle |
| 设置 | npm registry:默认、pnpm 解析值、host fallback、自定义地址;校验与安装按所选源 |
| 日志 | 本会话安装记录与 pnpm 日志;构建脚本被拦截时可「允许构建脚本并重试」 |
数据从哪来¶
Host 半边代理并缓存两类上游(避免渲染进程跨域):
api.dsh-plugin.org/plugins.<lang>.json(精选目录,缓存 6 小时 TTL)dsh-plugin.org/sitemaps/plugins.xml(全量索引,缓存 12 小时 TTL)
市场页默认 scope=all:合并精选与 sitemap;只在索引里、不在精选里的条目标「仅索引」,安装源按 github:{owner}/{slug} 推导。索引不可用时会降级为精选目录(响应头 x-plugin-market-scope: curated)。精选目录本身是官网导出的子集,行数会变化;合并索引是为了补全可发现性。
安装通道与边界设计¶
客户端直接调用 ctx.remote.pluginManager(inspect、installBundle、setBundleEnabled、removeBundle),与 设置 → 插件 同一路径;不做 PATH shim,不自行改写 profile。与社区 bundle dsh-plugin 市场完全独立(README 说明该方案存在 profile 误判、依赖 CLI 等问题,本插件刻意分开)。
目标环境需支持组合包(dsh.bundle.patch)且提供上述 pluginManager 方法;Host 路由为纯 ESM,依赖 Node 18+ 的全局 fetch。
安装与启用¶
首次安装时,设置里还没有「插件市场」分区(分区由本插件注册),需用命令行或后续在「自定义安装」里填源地址装一次。
浏览器版(DSH Web)(README「快速上手」示例):
dsh plugin --profile web add github:wojiao42/dsh-plugin-market
桌面端(DSH Desktop):
dsh plugin --profile desktop add github:wojiao42/dsh-plugin-market
桌面 profile 由应用托管时,命令行可能被拒绝,可改用:设置 → 插件 的官方安装能力先装其他途径装上的副本,或在已安装本插件后使用 插件市场 → 自定义安装 → github:wojiao42/dsh-plugin-market。
装完后 刷新窗口(Host 半边新路由需重启 Harness 才加载;客户端 client.js 改动手动刷新页面即可)。
本地开发可从 自定义安装 填源码目录绝对路径;长期指向源码建议 pnpm link: 依赖包名 dsh-market-panel(不要把包名起成 dsh-plugin-market,会与官方 @deepseek-ai/dsh-plugin-market 撞名导致 web 启动失败)。
典型用法¶
经过安装并刷新后,可以按下面顺序操作:
- 打开左侧栏「插件市场」,或 Ctrl+, →「插件市场」。
- 在 「市场」 页签输入关键词,用分类 chip 收窄范围;需要时用「刷新」带
refresh=1绕过本地缓存。 - 对目标插件点 「安装」;若显示「可更新」,含义与已装版本和目录版本不一致有关。
- 切到 「已安装」,对不需要的组合包 停用 或 卸载。
- 渠道不在目录里的包,在 「自定义安装」 填
github:owner/repo、npm 包名或绝对路径。 - 安装慢或失败时看 「日志」;pnpm 阻止构建脚本时按面板提示允许后重试。
卸载:从 profile 的 dsh.profile.bundles 与 dependencies 去掉 dsh-market-panel,再执行 pnpm remove dsh-market-panel。
适用场景与注意¶
适合谁:经常在 DSH Web / Desktop 上试社区组合包、希望在一个面板里搜 dsh-plugin.org 并统一启停的人;不想为安装单独配置 dsh CLI 的用户。
权限与安全:插件以当前 Harness 进程权限运行;installBundle 会拉取并执行第三方代码。安装前应查看目标仓库源码与许可证(本市场 MIT,不代表所装插件的许可)。
已知边界(README 原文口径):
- 索引抓取失败时,「仅索引」条目暂时搜不到。
- 缓存 TTL:精选 6 小时、索引 12 小时、stats 1 小时;上游改名/下架最长需等 TTL,或用手动刷新。
- 仅索引行往往缺少描述、星标、topics;详情仍以官网页为准。
- 无缓存且上游失败时,目录接口可能返回 502;单次上游抓取超时 45 秒。
截至 README 记载:awesome-dsh-plugin 已投稿 PR 待合并;dsh-plugin.org 站内尚未有条目,发现本插件主要依赖 GitHub 与本文所述安装方式。
结尾¶
dsh-plugin-market 把社区目录收进侧栏,安装链路仍交给官方插件管理器,适合在 Harness 里系统化浏览、试装组合包。目录介绍见 SkillHub 插件页,源码与版本说明见 GitHub 仓库。