生产站点 / Live site: https://dsplugin.app/
社区 DeepSeek Harness 插件目录(非官方)· Community dsh plugin directory (unofficial)
社区插件注册表静态站。浏览、详情、发布、统计、收录规范五页,无构建步骤。站点数据就是提交在仓库里的 data/plugins.json(schemaVersion 2)。GitHub Actions 是官方后端:定时扫描 dsh-plugin topic,用户发布走 Issue → 预检 → 审核 PR。
所有目录写入都走 GitHub PR,不会直接推 main:用户提交(submission/<n>)、自动发现(discover/sync)、社区目录 Manifest 复核(review/curated-manifest)。维护者在 Pull Requests 合并后,站点数据才更新。
仓库:vbarter/dsh-plugin-registry
.github/workflows/discover.yml每 2 小时(20 */2 * * *)或手动workflow_dispatch运行。scripts/discover.mjs调用 GitHub Search:topic:dsh-plugin,跟随Link分页。- 对每个仓库读取根目录
package.json。同时满足 topic 含dsh-plugin,并且具备下列之一,即视为 DSH 插件:dsh.bundle(patch为不含..、非绝对路径的相对路径 → Manifestshape_validated)dsh.plugin- 名称/简介明显与 DSH 相关
- 写入站点存储
data/plugins.json:source: "discovered"- 已有
source: "curated"的条目会保留,只更新 stars / forks / pushedAt / icon - 新发现的插件追加
- 已消失且确认归档/404 的 discovered 条目会删除;不会清掉 curated
- 不会改动
data/submissions.json - 若新快照 published 数量比上一版下降超过 40%,中止写入
- 仅当
plugins.json有变化时,推到分支discover/sync并开(或更新)一条 PR:Review: discovered dsh plugins。不再直接推main。 - 社区目录 Manifest 复核:手动跑
.github/workflows/review-curated.yml(node scripts/discover.mjs --review-curated),有改动则开/更新review/curated-manifestPR。
本地也可跑同一脚本:
# 建议设置 PAT,否则未认证搜索很容易 60 次/小时限流
export GITHUB_TOKEN=ghp_...
node scripts/discover.mjs
# 只处理一个仓库
node scripts/discover.mjs --repo owner/repo
# 复核社区目录里尚未检查的 Manifest(不删行)
node scripts/discover.mjs --review-curatedActions 里 GITHUB_TOKEN 会自动注入,公开搜索不需要额外 secret。未认证限额很低;仓库级 token 的 Search 限额大约 30 次/分钟。若要扫得更全,可在仓库 Settings → Secrets 放入个人 PAT,并在 workflow 里改用该 secret(仍可命名为覆盖 GITHUB_TOKEN 的自定义 secret)。
正式通道是本仓库的 GitHub Issue,没有单独账号。
- 打开 publish.html,输入
owner/repo或 GitHub URL,先跑浏览器预检。 - 点「提交」会打开预填 Issue(模板:
.github/ISSUE_TEMPLATE/plugin_submission.yml,字段:仓库 URL、owner/repo、备注)。 .github/workflows/ingest-submission.yml在 Issue 打开或打上submission标签后运行:- 从正文解析 GitHub 仓库
- 单仓发现:Manifest 通过 → 写入
data/plugins.json(source: "curated");否则写入data/submissions.json待审 - 在 Issue 下评论结果
- 提交到分支
submission/<issue-number>并gh pr create
- 维护者合并 PR 后,站点数据才更新。
流程一句话:用户提交 Issue → Action 预检 → 开 PR → 维护者合并 → 站点数据更新。
python3 -m http.server 8787打开 http://127.0.0.1:8787/。前端一次加载 /data/plugins.json。语言:顶栏 中文 / EN,写入 localStorage 键 dsh-registry.locale(默认 zh),也可用 ?lang=en / ?lang=zh。
| 文件 | 路由 |
|---|---|
index.html |
浏览、搜索、筛选 |
plugin-detail.html?plugin=<id> |
详情 + 安装弹层 |
publish.html |
仓库预检 → GitHub Issue |
dashboard.html |
KPI 与榜单 |
policy.html |
收录规范(中英全文) |
浏览页查询串:?q=&category=&source=&manifest=&language=&sort=&lang=。
配置:data/config.json → { "repo": "vbarter/dsh-plugin-registry", "topic": "dsh-plugin", "discoverEvery": "2h" }。
静态输出目录是仓库根目录。把 Cloudflare Pages 接到本仓库、生产分支 main 即可;GitHub Actions 不需要 Cloudflare secret。.github/workflows/pages.yml 只是提醒,不会调用 wrangler。
# 可选:本机用 wrangler 推一次(未要求不要跑)
npx --yes wrangler@3 pages deploy . --project-name=dsh-plugin-registry --branch=main部署到生产后,可把 10 条 P0 URL 提交给 IndexNow(api.indexnow.org 与 Bing):
node scripts/indexnow.mjs密钥文件是仓库根目录的 {key}.txt(内容即 key),线上地址 https://dsplugin.app/{key}.txt。合并进 main 并完成部署后再跑;不要编造 Bing Webmaster 验证码。
Live site: https://dsplugin.app/
Static community registry for DeepSeek Harness plugins. The committed file data/plugins.json is the site store; GitHub Actions are the backend.
All catalog writes go through GitHub PRs — never a direct push to main. Maintainers merge at Pull Requests:
- user submissions →
submission/<n> - discovery sync →
discover/sync - curated Manifest review →
review/curated-manifest
Discovery. scripts/discover.mjs searches topic:dsh-plugin, reads each root package.json, and merges plugins into the snapshot. Curated rows are kept. Discovered rows that are gone and archived/missing are dropped. A >40% drop in published aborts the write. Cron: every 2 hours; if plugins.json changed, the workflow opens/updates one PR on discover/sync instead of pushing main. GITHUB_TOKEN is enough for public search in Actions; unauthenticated runs hit rate limits quickly.
Curated Manifest review. node scripts/discover.mjs --review-curated (manual workflow_dispatch) rechecks curated rows whose Manifest is missing or not_checked. Rows are never dropped; 404 / unclassified repos are marked not_validated. Changes go to review/curated-manifest.
Publish. Users open a prefilled Issue on vbarter/dsh-plugin-registry. The ingest workflow prechecks the repo, writes plugins.json (curated) or submissions.json (pending), comments on the Issue, and opens PR submission/<n>. Maintainers merge to update the site.
Local. node scripts/discover.mjs or --review-curated (set GITHUB_TOKEN if you can). Serve with any static server. Locale: 中文 / EN, persisted as dsh-registry.locale, override with ?lang=.