dsh-plugin-market

August 15, 2026 · View on GitHub

MIT License

DeepSeek Harness 可视化插件市场:把 GitHub 主题页 dsh-plugin 上的全部插件(3300+)收纳进一个分类目录,支持搜索、筛选、排序、分页与一键安装。安装入口位于 设置 → 插件 → 市场(插件栏的第三个 Tab)。

数据完整性:GitHub 对单次查询(网页与 API 一致)最多暴露 1000 条结果。本仓库的同步脚本用 7 种排序(best-match / stars↑↓ / forks↑↓ / updated↑↓)的前 1000 名做并集,把 GitHub 允许枚举的全部仓库尽量收齐,去重后写入 data/catalog.json 随仓库提交,市场离线可用。

功能

  • 全量收录:GitHub topic dsh-plugin 下所有可枚举仓库,含星标、语言、描述、主题标签、最近更新时间
  • 自动分类:按仓库 topics / 描述 / 名称打分归类(主题、智能体、工具、技能、工作流、搜索与记忆、代码、模型与 API、通信与机器人、客户端、文档、数据、媒体、安全、网络、效率、游戏、界面、其他),每仓库最多 3 类
  • 检索与浏览:关键词搜索、分类筛选、只看已安装、按星标/更新时间/名称排序、分页
  • 一键安装:调用 dsh plugin --profile <profile> add github:owner/repo 安装;可卸载;安装结果实时回显
  • 目录刷新:市场内一键从 GitHub 拉取最新目录(重新同步)
  • 双语界面:中文 / English,跟随系统界面语言

安装

# 方式一:GitHub 直装(推荐)
dsh plugin --profile web add github:Twilightas/dsh-plugin-market

# 方式二:本地源码安装(开发)
git clone https://github.com/Twilightas/dsh-plugin-market.git
cd dsh-plugin-market
dsh plugin --profile web add file:$PWD

安装完成后重启 dsh web(或刷新页面),打开 设置 → 插件,第三个 Tab 即为「市场」。

注:安装/卸载由市场内部直接调用 dsh plugin 完成,需要本机具备 pnpmdsh plugin 依赖 pnpm 管理 profile)。

目录刷新

市场页右上角「重新同步」会从本仓库 main 分支拉取最新 data/catalog.json;也支持手动更新后提交:

cd dsh-plugin-market
# 需要 GITHUB_TOKEN(建议):30 次搜索/分钟,约 3–4 分钟跑完全量
GITHUB_TOKEN=ghp_xxx node scripts/sync-catalog.mjs
git add data/catalog.json && git commit -m "chore: refresh catalog" && git push

项目结构

dsh-plugin-market/
├── package.json            # npm 包清单:dsh.bundle.patch + dsh.client 元数据
├── cordis.patch.yml        # 插件层插入(dsh plugin add 时自动应用)
├── lib/index.js            # Host 端:catalog / installed / install / uninstall / refresh 路由
├── client/client.js        # Client 端:设置 → 插件 → 市场 Tab(手写 bundle,无构建步骤)
├── data/catalog.json       # 全量分类目录(由 sync 脚本生成并提交)
└── scripts/
    ├── sync-catalog.mjs    # 全量同步 + 分类脚本(零依赖,Node ≥ 18)
    └── smoke.mjs           # 本地冒烟:校验 catalog 结构、分类、去重

工作原理

  • Host:注册同源 HTTP 路由 /dsh-plugin-market/*install/uninstall 通过 node:child_process 重新调用启动本进程的 dsh CLI(dsh plugin --profile <profile> add github:owner/repo),带超时与输出捕获;profile 默认取启动参数,可配置覆盖。
    • 安装前先做 2s GitHub 连通性探针,不可达直接返回明确错误(不悬挂);默认安装超时 90s(DSH_MARKET_INSTALL_TIMEOUT_MS 可覆盖),超时整进程组终止(pnpmgitgit-remote-https 全链),不留孤儿进程
    • 目录刷新(refresh-catalog)HTTPS 请求带 10s 超时(原实现无超时,GitHub 被墙时无限悬挂)
  • Client:以 __ModuleLoader__ bundle 格式注册 settings.plugins.tab(id dsh-plugin-market,order 20 —— 排在系统自带「可配置」「全部」两个 Tab 之后,即第三个 Tab)。
  • 分类器scripts/sync-catalog.mjs 内置关键词表,对 topics(权重 3)、描述(权重 2)、仓库名(权重 1)打分,取前三名分类。

安全说明

  • 插件均为第三方代码,安装即表示信任来源;仅有 dsh 清单(package.jsondsh 字段)的仓库安装后才会真正生效
  • 安装接口仅接受同源 POST;市场本身不向任何第三方上报数据
  • git 仓库安装需要构建脚本时,pnpm 默认拦截,需按提示在 pnpm-workspace.yamlallowBuilds 中放行

License

MIT © jason.sy.li