dsh-plugin-market
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 17, 2026
- Updated
- Aug 17, 2026
Introduction
@dsh-external/dsh-plugin-market
DeepSeek Harness 插件市场(Plugin Marketplace):在 DSH Web 对话页增加「插件市场」Tab,
可以浏览、搜索、查看并一键安装 GitHub 上的 DSH 插件;同时为 Agent 提供
market_search / market_info / market_install / market_debug 四个工具。
安装
以下两种方式任选其一,安装完成后重启 DSH,对话页出现「插件市场」Tab 即表示安装成功。
方式一:命令行
dsh plugin --profile web add github:zr-promise/dsh-plugin-market
方式二:发给 DSH 助手
在 DSH 对话页的输入框中粘贴上面的命令, 助手会代为执行安装,无需自己操作终端。
安装之后:
- 市场的主要用途是搜索并安装其他 DSH 插件。
- 想更新或重装本插件,在市场内搜索
zr-promise/dsh-plugin-market一键安装即可。 - (未来发布到 npm 后,也可用
dsh plugin --profile web add @zr-promise/dsh-plugin-market安装。)
功能
- 浏览与搜索:内置收录列表,并结合 GitHub 仓库搜索,只返回 DSH 相关插件;支持「加载更多」分页。
- 手动刷新:点击即可强制拉取 GitHub 最新数据,绕过缓存与限流保护。
- 筛选与排序:按来源(GitHub / 收录)和语言过滤,按 Stars / Forks / 最近更新 / 名称排序。
- 已安装标记:扫描本机
~/.dsh/profiles/*/package.json的 bundles 与~/.dsh/plugin-src/目录, 在列表和详情页标注「已安装」(60 秒缓存)。 - 插件详情:Stars / Forks / License / 默认分支 / Topics / README(内置极简 Markdown 渲染)与插件清单文件。
- 一键安装:自动识别安装形态——
bundle:真·一键安装。Host 自动git clone(https)到~/.dsh/plugin-src/<repo>, 写入 profile(bundles + link 依赖)、安装包依赖并创建 node_modules 链接,失败自动回滚, 重启后生效;支持子目录皮肤和 npm 已发布包的推荐安装。dynamic:动态插件。拉取源码后自动填入对话指令,由助手完成 define + run。list:收录 / 资料类仓库,不可直接安装。
- GitHub 登录:粘贴 Personal Access Token(
ghp_…/github_pat_…),验证通过后保存到~/.dsh/github-auth.json,API 限额从 60 次/小时提升到 5,000 次/小时(搜索 30 次/分钟)。 - 代理:可在
~/.dsh/dsh-plugin-market.json中配置代理({"proxy": "http://127.0.0.1:7890"})。 - 配额显示:分别展示「搜索配额 / 分钟」与「API 配额 / 小时」两个 GitHub 限流桶。
- 插件管理(「已装插件」Tab):列出所有已安装的第三方插件,显示仓库名 / 版本 / 本地更新时间 /
类型等信息,点击可查看详情与 README;支持逐个或全部检查更新;两段式确认卸载(连同源码删除),
官方
@deepseek-ai/*插件不可卸载。所有改动在重启 DSH 后生效。
架构
- 宿主端
lib/index.js(ESM,运行在 DSH Node 进程):注入tools与webServer服务, 通过webServer.register({ kind: 'prefix', path: '/market-api', handler })暴露 API (仅接受 127.0.0.1 / ::1 环回请求),JSON 分发到search/info/install/install/run/auth/*/config/*/manage/*等接口;网络请求走subprocess+curl.exe(-D -解析响应头,支持--proxy与重定向跟随),并解析x-ratelimit-resource/x-ratelimit-remaining等限流头;内存缓存搜索结果 10 分钟、仓库详情 / 文件树 30 分钟、 npm 查询 1 小时;最后通过ctx.tools.register(defineTool(...))注册四个 Agent 工具。 - 客户端
lib/client.js(Web bundle,经window.__ModuleLoader__.load加载):使用require('react'),通过fetch('/market-api/…')同源调用宿主端(无 CORS 问题);用slots.inject('conversation.view', …)注册「插件市场」Tab(iddsh-market,order 12); 样式随 bundle 注入<style>,不依赖主题 token 之外的任何运行时 API。
数据与限额
- 未登录时 core 限额 60 次/小时、search 10 次/分钟;登录后提升为 core 5,000 次/小时、search 30 次/分钟。
- 搜索结果缓存 10 分钟以减少 GitHub 调用;翻页上限 10 页(GitHub 搜索的分页限制)。
- 登录 Token 以明文存放在
~/.dsh/github-auth.json(与 DSH 其他配置同目录),请妥善保管。
开发与发布
lib/index.js是宿主端单一文件,lib/client.js是客户端 bundle(无构建步骤,纯手写)。- 修改后重新安装插件并重启 DSH 即可生效。
- 回归测试与 npm 发布步骤见
PUBLISH.md。
License: MIT