Building the DeepSeek Harness plugin ecosystem: 40 open-source plugins (dsh.bundle plugins) — 45 repos in the family (Apache-2.0) across security, workflows, research, messaging bridges, and developer experience — plus the DSH Desktop Market catalog, a plugin-certification registry, and the dsh-plugin-doctor CI checker. 39 of the 45 repos ship five-language READMEs, and every plugin ships CI, npm provenance, and a Gitee mirror — 63.9k npm downloads in August plus 51.2k in September so far (115.1k over the last 30 days). I also contribute upstream to Cordis, the plugin-core framework DeepSeek Harness itself is built on.
DeepSeek Harness turned "everything is a plugin" into an ecosystem. I build the plugins I wish existed — engineering-discipline guardrails, runtime panels, cross-session memory, and verifiable research engines — and publish them the way production software deserves.
- Whole family moved to the
dsh-v0.1.5-rc.2host line — 39 repos migrated and 42 Releases shipped in one day — every repo took the same two-commit change (pin@deepseek-ai/dsh-*to0.1.5-rc.2, then refresh the five-language compatibility baseline); the newborn dsh-team-rooms refreshed its baseline without a family pin, and the security provider pinned its provider subtree separately. The day closed with 134 commits across 42 repos, 44 tags and 42 GitHub Releases — the only two tags left without a Release are same-day supersedes (dsh-draw 0.2.13, skill-pack-security 2.2.15), and only dsh-catalog (which ships no releases) and dsh-cert-mcp (last released Sep 10) sit outside the wave. - dsh-team-rooms 1.0.1 — day two of the extracted plugin: CI builds the bundles before the test steps, the keystone test resolves the
0.9.6fixture sibling instead of pinning an absolute path, and the five-language baseline moved to rc.2 with the rest of the family. - dsh-permission-rules 0.7.1 → 0.7.2, twice in one day — PR #24 splits the pure allow-host helpers out of the host-only module, then the rc.2 pin.
- dsh-plugin-doctor 0.2.1 —
fix(R8): catch every stale peer-range shape, not the two that existed on Sep 5: the checker no longer passes a peer range it merely failed to recognise. - Hygiene and small correctness fixes — dsh-budget and dsh-background-agents restored em dashes mangled in their comments, dsh-plugin-kit dropped the byte-order marks its own release gate forbids, dsh-research-report restored the Chinese evidence markers in its hub submission, dsh-personal-directive now derives its reported version from
package.json, and dsh-draw's test reads the version fromsrc/version.tsinstead of hardcoding it. - Snapshot — 939★ across 45 repos (40
dsh.bundleplugins + 5 support repos) · 40 live repos declaring thedsh.bundlecontract · 40 published npm packages (34 bare + 6 scoped;dsh-skill-pack-security,dsh-catalogand thedsh-personal-directivefork are not published from these repos) · 676 versions · 63.9k downloads in August plus 51.2k in September so far (115.1k over the last 30 days; npm's published series reaches Sep 10, with Sep 3, 7 and 8 missing registry-wide) · 104 public Gitee repos.
- dsh-team-rooms 1.0.0 — team rooms extracted out of dsh-background-agents into a standalone plugin (whose background-agent half is superseded by DSH's native continuable subagents): cross-session rooms with a message bus, a shared task board, approval-gated handoffs and a timeline that survive restarts. CI also stopped passing the npm token through
NODE_AUTH_TOKEN. - dsh-plugin-upgrade-015 0.1.0 — the two upgrade corridors merged into one package; npm rejected the original name so it ships as
-015, and a manual workflow deprecated the two retired npm names — a workflow that was itself retired once the deprecation had run. - Verified registry re-pointed — dsh-plugin-doctor moved its verified registry to dsh-plugin-upgrade-015 and enrolled dsh-team-rooms, refreshing the badges for both.
| Plugin | What it gives you | Install |
|---|---|---|
| dsh-auto-review | Second-model auto-review on the approval chain, fail-closed by default (157★) | dsh plugin --profile web add dsh-auto-review |
| dsh-permission-rules | Claude Code-style declarative allow/deny/ask rules plus a process-level network policy (115★) | dsh plugin --profile web add dsh-permission-rules |
| dsh-memento | Approval-gated cross-session memory (ctx.memory + SQLite) (85★) |
dsh plugin --profile web add dsh-memento |
| dsh-mcp-panel | MCP management console: /mcp + Settings tab + trial calls (55★) |
dsh plugin --profile web add dsh-mcp-panel |
| dsh-checkpoint-rewind | Claude Code /rewind equivalent: git-first snapshots, session forks, one-shot restore (17★) |
dsh plugin --profile web add dsh-checkpoint-rewind |
| dsh-autotier | Automatic strong/cheap model-tier routing with deterministic risk guards and a /tier command (new) |
dsh plugin --profile web add dsh-autotier |
One-command starter pack: dsh-kit — installs the core family in one command.
| Plugin | What it gives you | npm |
|---|---|---|
| dsh-research-report | Verifiable research reports: content-addressed evidence ledger, manifest seal hash, byte-level citation checks, drift detection, disproof ledger | npm |
| dsh-fund-research | Chinese mutual-fund research with sealed, traceable snapshots — every number traces to a hashed source | npm |
| dsh-industry-research | Industry/company research: chain-map SVG with bottleneck detection, timeline, company cards, adversarial review | npm |
| dsh-data-quality | Deterministic data profiling/cleaning/verification: DAMA scorecard, content-hash dedupe, metric expectations | npm |
| Plugin | One-liner | npm |
|---|---|---|
| dsh-defend | Injection/jailbreak/secret detection + destructive-delete gate | npm |
| dsh-permission-rules | Declarative allow/deny/ask rules + a local HTTP/CONNECT network policy | npm |
| dsh-mask | PII masking/sanitization | npm |
| dsh-skill-pack-security | Security-audit skill pack + supply-chain gate | npm |
| Plugin | One-liner | npm |
|---|---|---|
| dsh-background-agents | Durable background child agents with a Web UI sidebar, messaging and interrupt | npm |
| dsh-team-rooms | Cross-session team rooms: shared message bus, task board, approval-gated handoffs and a timeline that survive restarts | npm |
| dsh-checkpoint-rewind | Snapshots, forks, one-shot restore | npm |
| dsh-github | GitHub PR/issue integration + Action, writes approval-gated | npm |
| dsh-claude-move | Migrate Claude Code/Codex/OpenCode/Hermes into DSH | npm |
| dsh-click | Desktop control tools (Windows/macOS) | npm |
| dsh-session-sync | Git-backed session synchronization | npm |
| dsh-test-drive | Install→smoke→uninstall test driver for plugins | npm |
| Plugin | One-liner | npm |
|---|---|---|
| dsh-composer-history | Terminal-style input history for the web composer | npm |
| dsh-output-styles | Runtime-switchable model output styles | npm |
| dsh-session-pin | Pin sessions in the Web sidebar | npm |
| dsh-memento | Approval-gated cross-session memory protocol | npm |
| dsh-personal-directive | Personal directive injector with top-bar toggle (framework edition; fork of liucaimao2026/dsh-personal-directive) | npm |
| Plugin | One-liner | npm |
|---|---|---|
| dsh-auto-review | Second-model auto-review on the approval chain | npm |
| dsh-doublecheck | Engineering-discipline guard: grill, gates, adversary review | npm |
| dsh-score | Plugin quality scoring across git/gh/npm | npm |
| Plugin | One-liner | npm |
|---|---|---|
| dsh-autotier | Automatic strong/cheap model-tier routing with deterministic risk guards | npm |
| dsh-budget | Token/cost metering, budget caps, carbon estimate, latency benchmarks | npm |
| dsh-observe | OTel/Langfuse telemetry export | npm |
| dsh-fast | Performance diagnostics | npm |
| Plugin | One-liner | npm |
|---|---|---|
| dsh-draw | Image-generation routing | npm |
| dsh-translate | Translation + JSON repair | npm |
| dsh-talk | Speech recognition and voice I/O | npm |
| dsh-library | Local knowledge-base RAG | npm |
| dsh-local-ai | Ollama LLM provider and routing | npm |
| Plugin | One-liner | npm |
|---|---|---|
| dsh-lsp-actions | LSP diagnostics/formatting/completion/actions | npm |
| dsh-mcp-panel | MCP management console | npm |
| dsh-plugin-guide | Plugin-dev knowledge base + CLI toolchain + release-engineering guide | npm |
| dsh-plugin-upgrade-015 | Merged plugin-author upgrade corridor (0.1.3-alpha.1 → 0.1.5-rc.1): evidence-bound version card + zero-dependency 20-seam scanner (bundle skill + npx CLI) |
npm |
Support repos: dsh-plugin-kit (review-rule meta package) · dsh-catalog (DSH Desktop Market catalog source) · dsh-cert-mcp (certification MCP server) · dsh-kit (one-command installer) · dsh-plugin-doctor (plugin health checker)
| Plugin | One-liner | npm |
|---|---|---|
| dsh-wechat | WeChat ↔ DSH bridge (Tencent iLink bot): text/image/file/voice, approvals in chat — developed with pan17, who now hosts the repo and publishes the npm package | npm |
| dsh-ticktick | TickTick/Dida365 task bridge: session-header panel + 11 tools | npm |
| dsh-reach | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console | npm |
| Plugin | One-liner | npm |
|---|---|---|
| dsh-data-quality | Data profiling/cleaning/verification | npm |
| dsh-fund-research | Mutual-fund research, sealed traceable snapshots | npm |
| dsh-industry-research | Industry/company research domain pack | npm |
| dsh-research-report | Verifiable research-report engine | npm |
- Cordis — the upstream plugin-core framework that powers DeepSeek Harness. Contributor: merged PR #122 (Windows + macOS CI, contributor badge) · 45-patch real-world regression suite + verification for the merged include-journal fix PR #121 · reported issue #112 with an initial fix (PR #116, superseded by #121) · open issue #124 (NodeNext type declarations, evidence + local fix) · open PR #126 (ship
srcin core/loader/timer tarballs, CI green) · 18-item errata for the Cordis paper. - cordiverse/http — open issue #14: the README documents a
Responsewrapper thatctx.http()no longer returns, with repo-verified line references and a README-only fix. - schemastery — the schema framework used across the DSH stack: filed issue #77 (ESM/NodeNext consumption gap, full evidence) and two open PRs — #78 (exports map + dual declarations) and #79 (repair the test-runner flag and a stale i18n expectation).
- dsh-handbook — the official DSH handbook: two merged PRs (#67, #68).
- Security — published advisory GHSA-j922-p6h6-p255 for dsh-permission-rules (medium, patched in 0.6.16).
- Official harness repo — it does not accept external pull requests (verified:
GET /repos/deepseek-ai/deepseek-harness/pullsreturns 404 and CONTRIBUTING.md says so), so that line runs through issues, Discussions (the Show Your Plugins! post #6104) and the plugin ecosystem instead. - Directory & hub submissions — 35 plugins published on DSH Directory (29 submission issues authored via alexchenzl/dsh-plugin-directory) · 149 open [Submission] issues tracked on the omdsh hub · curated entries merged into awesome-dsh-plugin, 0xsline/awesome-deepseek-harness, the AdamPlatin123 radar, and Zhiyuan-Fan's list.
- GitHub (this profile) — source, CI, releases
- Gitee — 104 public repos, with 43 family repos mirrored automatically (branches + tags)
- npm — 40 packages published with CI provenance (34 bare + 6 scoped), plus the scoped security provider
- DSH Desktop Market — add the catalog source
https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.jsonunder Market → Sources to browse all 40 family packages in-app (curated summaries + icons, contract-validated, CI-smoked)
Listed on awesome-dsh-plugin (36 entries), DSH Directory (35 published), Awesome DeepSeek Harness, awesome-deepseekharness, Zhiyuan-Fan's list, the AdamPlatin123 radar, dsh-market (via the awesome-dsh-plugin registry), dsh-suite, and ZeroPointRepo's list. Auto-indexed on deepseek1024.com (36 entries). Certification: dsh-plugin-certification.
我在 DeepSeek Harness 上把 Claude Code / Codex 生态里最实用的能力做成了开源插件:检查点回退、声明式权限、输出风格、跨会话记忆、MCP 面板、模型档位路由、微信/TickTick 桥接,以及可验证研究报告 / 基金研究 / 行业研究 / 数据质量「研究四件套」——共 40 个插件(Apache-2.0),全部带五语文档、CI、npm 发布与 Gitee 镜像。一键全家桶:dsh-kit。同时我也是 DeepSeek Harness 上游核心框架 Cordis(cordiverse/cordis)的贡献者:Windows/macOS CI 已合并(#122),为 include-journal 修复(#121)提供了 45 个真实补丁文件的回归套件与验证,tarball 打包修复 PR(#126)与 NodeNext 类型声明 issue(#124)在途,并向 schemastery 提交了 ESM 消费面 issue(#77)与两枚 PR(#78/#79)。
2026-09-12 轮:① 全家族迁到 dsh-v0.1.5-rc.2 宿主线——39 个仓当日完成迁移,42 个 Release 当日发出——每个仓都是同一套两提交改动(把 @deepseek-ai/dsh-* 钉到 0.1.5-rc.2,再刷新五语兼容基线);新生的 dsh-team-rooms 只刷基线、未钉家族,安全 provider 另钉 provider 子树。当天 42 个仓 134 次提交、44 个 tag、42 个 GitHub Release;44 个 tag 中仅两枚同日被后继版本取代者没有 Release(dsh-draw 0.2.13、skill-pack-security 2.2.15),波外仅 dsh-catalog(本就不发 Release)与 dsh-cert-mcp(上次发版 09-10);② dsh-team-rooms 1.0.1——抽取独立后的第二天:CI 先构建 bundle 再跑测试,keystone 用例改为解析 0.9.6 fixture 的同级路径而非写死绝对路径,五语基线随家族一并迁到 rc.2;③ dsh-permission-rules 一天两发 0.7.1 → 0.7.2——PR #24 把纯 allow-host 辅助函数从 host-only 模块中拆出,随后钉 rc.2;④ dsh-plugin-doctor 0.2.1——fix(R8): catch every stale peer-range shape, not the two that existed on Sep 5:不再对"只是没被识别"的 peer range 放行;⑤ 卫生与小修——dsh-budget 与 dsh-background-agents 修回注释里被弄坏的破折号,dsh-plugin-kit 去掉自家发布门禁禁止的 BOM,dsh-research-report 修回 hub 投稿里的中文证据标记,dsh-personal-directive 改为从 package.json 推导上报版本,dsh-draw 的用例改为从 src/version.ts 读版本而非写死;⑥ 快照——家族 938★ / 47 仓、40 个存活仓声明 dsh.bundle、npm 44 包(38 裸名 + 6 scoped)· 676 版本 · 8 月 63.9k + 9 月 51.2k(近 30 天 115.1k;npm 已公布序列到 09-10,09-03/07/08 全站缺失)· Gitee 公开仓 104。
2026-09-11 轮:① dsh-team-rooms 1.0.0——从 dsh-background-agents 中抽出成为独立插件(后者的后台代理半已被 DSH 原生可续子代理取代):跨会话房间,带消息总线、共享任务板、审批门控的交接,以及可跨重启存活的时间线;同日 CI 不再经 NODE_AUTH_TOKEN 传 npm token;② dsh-plugin-upgrade-015 0.1.0——两条升级走廊合并为一个包;npm 拒绝原包名,故以 -015 发布;并用一个手动 workflow 弃用两个退役包名——该 workflow 在弃用完成后自行退役;③ verified 注册表改指——dsh-plugin-doctor 把 verified 注册表改指 dsh-plugin-upgrade-015 并纳入 dsh-team-rooms,同步刷新两者徽章。
待业中。近期考虑给自己安排一次体检。因此最近将减少熬夜,后续的更新迭代节奏会适当放缓。当然,问题和缺陷修复不会停,只是发布频率会降低一些,还请大家谅解。





