dsh-plugin-market
English | 中文
DeepSeek Harness 的 GUI 内插件市场:分类 + 搜索 + 排序 + 溯源,把 npm 社区插件一键装进当前 web profile。
一个「装插件的插件」——装上它之后,管理插件再也不用碰命令行。

功能
- 目录:npm registry 四个关键词全量分页探测 + 文本探测、GitHub
dsh-plugin话题(兼作无关键词包的发现源并回填 stars)、awesome 策展列表解析、内置种子清单(已知的预发布波次,可用extraPackages配置扩展)。磁盘缓存 6 小时。发现与校验解耦:首开只要几秒(仅发现),你实际看到的卡片在后台按需校验徽章;npm 429 限流自动按 Retry-After 退避重试,单个探测失败不拖垮整体。 - 溯源:逐包标注「可挂载」(声明
dsh.bundle.patch,官方插件通道可激活)/「含界面」(声明dsh.client)、许可证、发布者、作者、维护者、周下载量、npm popularity 评分、GitHub stars。展开卡片再懒加载完整 packument(首发布时间、历史版本数)和 GitHub 仓库卡(stars / forks / 最近 push / 协议 / open issues)。 - 排序与筛选:最新更新 / 周下载量 / GitHub Stars / 名称四种排序;七个分类徽章(皮肤主题 / 界面增强 / 桌宠陪伴 / 模型与代理 / 工具效率 / 其他);搜索覆盖名称、描述、关键词、作者、维护者。
- 长尾搜索:npm 相关性排序会埋没零下载的新包,所以「名字长得像包名」的查询会直接精确解析(
/<包名>/latest),并自动尝试dsh-前缀变体和连字符形式。 - 安装 / 卸载 / 更新:pnpm 以后台任务执行——卡片里实时滚动 pnpm 输出;关闭设置页不会中断任务,右下角浮层持续显示进度,完成后弹提醒卡片(失败常驻直到手动关闭;
minimumReleaseAge拦截变成一键「放行并重试」)。host 侧按dsh plugin的同一套逻辑调和dsh.profile.bundles。pnpm 11 拦构建脚本时自动放行重试一次(日志里可见);「检查更新」把已装的 registry 包与 npmlatest对比并给出一键「更新」;本地link:/file:安装的包绝不参与对比(同名本地链接包的 registry「最新版」是别人的包,不是更新)。 - 重启提示:组合在启动时加载,装/卸/更新后弹横幅提醒;检测到启动器脚本(默认
~/.dsh/start-dsh-web.bat)时提供「立即重启」按钮,自动结束当前进程并重新拉起。
安装
前置:已能正常运行 dsh web(即存在 ~/.dsh/profiles/web),PATH 上有 pnpm。
dsh plugin --profile web add github:sstar16/dsh-plugin-market或本地克隆后:dsh plugin --profile web add ./dsh-plugin-market
装完重启 dsh web 并硬刷新浏览器(Ctrl+Shift+R)。插件市场自身需要这第一次重启;之后每装一个插件就是一次点击 + 横幅上的重启按钮。
使用
1. 打开 设置 → 插件市场。 2. 按分类徽章浏览,按 更新/下载/stars 排序,或直接搜索。 3. 卡片展示徽章与元信息,「溯源」折叠区给出全部来源链接。 4. 安装 / 卸载 一键完成;变更落盘后横幅提醒重启生效。 5. 目录覆盖不到的包(无关键词、无话题、刚发布):输入完整包名,点「在 npm 上直接搜索」。
关闭
- 在插件市场里卸载它自己(会同步移除自己的组合层条目),或:
``sh dsh plugin --profile web remove dsh-plugin-market `` 之后重启生效。
安全
- 路由走与
/api网关相同的 Host 头信任围栏(loopback 或部署的trustedHosts;拒绝跨站浏览器请求)。 - 包名/版本过严格白名单正则后才交给 pnpm;pnpm 输出截尾回显,失败不吞。
- 这个插件能改 profile、能跑 pnpm——它本身就是一条通往 host 进程的安装通道。只在你信任的网络环境里暴露这个 GUI。
已知限制
- 必须重启:host 组合在启动时加载,任何装/卸/更新不重启不生效。
- 发现是尽力而为:没有 npm 关键词、没挂 GitHub 话题、不在策展列表里的包,只能靠精确包名搜索触达。
- stars 来自 GitHub 话题搜索(星数前约 500)+ 逐卡片懒加载溯源;没有的排在最后。
- 重启按钮依赖启动器脚本(默认
~/.dsh/start-dsh-web.bat,Windows);没有它横幅只提示手动重启。 - 目录条目未经人工审核——「可挂载」只代表「机制上能装」,不代表「审过」。装之前看一眼溯源链接。
- 同名包冲突:npm 上的
dsh-plugin-market属于另一位作者(veloce-ailab);本项目目前通过github:spec 安装,将来发 npm 会用带 scope 的名字。
开发
pnpm install
pnpm typecheck
pnpm build # tsc 声明 + tsdown(lib/index.js host ESM,lib/client.js 浏览器 bundle)结构:src/index.ts 是 host 路由入口,目录与安装器在 src/catalog.ts / src/installer.ts,浏览器半在 src/client/。client bundle 契约(window.__ModuleLoader__ 工厂、CSS Modules 内联、模块表外部依赖)复刻自 dsh-better-sidebar 的公开构建脚本。
许可证
[MIT](LICENSE)