dsh-plugin-store · 插件雷达
English | 简体中文
DeepSeek Harness(dsh)的 App Store 风格插件雷达。它作为一个标准 dsh bundle 安装,并在 Web 设置页新增「插件雷达」入口。
- 探针插件的方式来自同类雷达/市场插件的真实实现,而不是抓 README 链接:
- https://dsh.do/api/packages — dsh.do 官方目录 API,分页拉取全量目录(4419+)。 - https://awesome-dsh-plugin.com/plugins.json — 精选注册表(1247+,带分类、中英描述、安装命令)。 - GitHub Search topic:dsh-plugin — 同时拉取 sort=stars 与 sort=updated 两个切片。
- 按 star 数 / 实用度 / 分类 / 搜索 / 最近更新 浏览。
- 支持 手动刷新或每 15 / 30 / 60 / 120 分钟自动刷新。
- 一键 安装 / 卸载 会按数据源选择安装目标:优先使用目录中的 npm 安装命令(例如 modlens 用 npm 安装),GitHub URL 仅作兜底;复制命令自动带上当前 profile。
- 是真正的 DSH bundle 插件(
dsh.bundle.patch),安装后也会出现在原生「插件」页面里。 - 头像预加载 + 缓存,避免图标闪烁。
相比同类插件雷达/市场的优势
| 维度 | 常见雷达 / 市场 | 本插件 |
|---|---|---|
| 数据来源 | 抓 README 链接、只查一页 GitHub 搜索,或只推卡片流 | 使用 dsh.do 官方目录 API + 精选注册表 JSON + GitHub stars/updated 双切片,与原实现同源 |
| 覆盖率 | 常见截断在 1000 个仓库或单页 topic | dsh.do 全量分页(4419+),合并精选注册表与 GitHub 切片 |
| 排序 | 通常只按 star 或只按更新时间 | 透明的实用度评分(star、描述完整度、topic、精选收录、更新时间、主页/语言)+ star/更新时间/名称排序 |
| 体验 | 悬浮卡片流、chat-skill 流程或裸表格 | 原生设置页:Hero、分类 chips、搜索、排序、分页、安装/卸载按钮 |
| 安装形态 | 有些是 skill,有些要手改 cordis.patch.yml | 真正 dsh.bundle 包:dsh plugin add 即挂载进 profile 插件树 |
| 刷新 | 固定间隔或仅手动 | 用户可选手动 / 15 / 30 / 60 / 120 分钟,并持久化 |
| 图标 | 原始 <img> 列表容易闪烁 | 头像预加载 + 缓存 + 占位兜底 |
| 本地测试 | 通常要先发布 | scripts/test-local.sh 不发布即可起临时 dsh web 测试 |
安装
> 注意:dsh-plugin-store 这个 npm 包名可能已被占用。发布前请修改 package.json 的 name,并同步修改 lib/client.js 顶部 window.__ModuleLoader__.load({ id: "dsh-plugin-store" }) 中的 id。
# 从 npm
dsh plugin --profile web add dsh-plugin-store
# 或从 Git
dsh plugin --profile web add https://github.com/<your-name>/dsh-plugin-store.git然后重启/刷新 dsh Web 界面,打开「设置」即可看到「插件雷达」。
安装目标如何选择
插件雷达不再对每个插件一律使用 GitHub URL 安装。宿主侧会按以下优先级解析每个插件的首选安装目标:
| 优先级 | 来源 | 示例 | 说明 |
|---|---|---|---|
| 1 | dsh.do 的 installCommandNpm | @liustack/modlens | 最优先:npm 包自带 dist 产物,开箱即用。 |
| 2 | dsh.do 的 installCommandGit | https://github.com/owner/repo.git | 无 npm 命令时使用。 |
| 3 | awesome-dsh-plugin 的 install | npm 或 git 规格 | 社区精选命令。 |
| 4 | GitHub URL 兜底 | https://github.com/owner/repo.git | 数据源没有安装命令时才使用。 |
每张卡片会显示安装方式徽标(npm 安装 / git 安装 / GitHub 安装),安装按钮与复制命令使用同一个解析结果。例如 modlens 会安装 dsh plugin --profile web add @liustack/modlens,而不是从 GitHub 源码仓库安装。
不发布本地测试
./scripts/test-local.sh 34129该脚本会把插件复制到一次性 DSH_HOME,并在指定端口启动独立 dsh web。
数据源
| 来源 | 说明 | GitHub Token |
|---|---|---|
github-topic:stars | GitHub Search topic:dsh-plugin,按 star 排序 | 可选 |
github-topic:updated | GitHub Search topic:dsh-plugin,按最近更新排序 | 可选 |
dsh.do | 官方目录 API https://dsh.do/api/packages,分页全量 | 无 |
curated:awesome-dsh-plugin | 精选注册表 https://awesome-dsh-plugin.com/plugins.json | 无 |
设置 DSH_GITHUB_TOKEN / GITHUB_TOKEN 可提高 GitHub API 配额;DSH_GITHUB_API 可覆盖 API 地址。
提交插件到 dsh 生态的步骤
1. 给仓库打上 dsh-plugin topic——这是最关键的一步,也是官方推荐的方式。官方及第三方插件市场会自动发现和收录该仓库。 2. (可选)提交到社区精选列表 - 复刻(Fork)awesome-deepseek-harness 仓库。 - 在 README.md 与 README.zh-CN.md 中按格式添加本插件信息。 - 提交 Pull Request(PR)。 - 注意:官方主仓库暂不接受外部 PR,CONTRIBUTING.md 中明确指出无法接受外部 Pull Request。 3. 最佳实践:先做出来并打上 dsh-plugin 标签,再提交社区精选列表以增加曝光。
开发
node --check lib/index.js
node --check lib/probe.js
node --check lib/client.js
node --test test/*.test.mjshost 侧探针引擎可独立测试:probe() 返回 { plugins, sources, generatedAt }。