@1e0zj/dsh-plugin-mall
dsh 插件市场:搜索 GitHub dsh-plugin 话题下的插件仓库,一键安装到本地 dsh profile(agent 工具 + 设置页插件市场 tab)
這個插件適合誰
- 用 DSH 寫代碼、需要 Git 整合的開發者
安装
dsh plugin --profile web add @1e0zj/dsh-plugin-mall
沙箱测试结果
dsh=0.2.2-rc.1;img=dsh-sandbox:5.0@sha256:d90b02baef228bb105d4817d1a7d23bdd6aec24f463cc7bc3d1fbb2e5af45c00;node=24.11.1;pnpm=9.15.9;mem=768m;cpu=1按 DSHIO/T 21 第 5.2 節記錄,可據此複現。
| 阶段 | 结果 |
|---|---|
| T0 静态检查 | ✓9 通过 · 6 跳过 · 2 人工 |
| T1 安装 | ✓ |
| T2 列装 | ✓ |
| T3 挂载 | ✓ |
| T4 启动 | — |
5.5.1工具的 description 必须说清使用场景5.5.2声明的权限必须与行为一致
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
dsh-plugin-mall
An open plugin marketplace for DeepSeek Harness (dsh): search every GitHub repo tagged topic:dsh-plugin, automatically verify which ones are real dsh plugins, install and update with one click.
[中文说明](#中文说明) · [Install](#install) · [Why another marketplace](#why-another-marketplace) · [Roadmap](ROADMAP.md)
Two surfaces: a Settings → Plugins → Marketplace tab in the dsh web UI, and five agent tools usable from any session.
Why another marketplace?
Curated lists only show what has been reviewed and merged. This marketplace is open by construction: any repo tagged topic:dsh-plugin is discoverable the moment it is pushed — no submission, no approval queue. To keep that openness usable:
- Automatic verification — every search result's
package.jsonis fetched (jsDelivr/raw dual-source CDN, no API quota) and checked for the officialdsh.bundle/dsh.clientmanifest. Verified plugins get a green badge; the default "verified only" view filters out ~73% of topic noise (empty repos and unrelated projects riding the tag). - Browse-time compatibility badges — each card is also statically scanned against your profile before you click anything: declared conflicts, exclusive groups, loader-id collisions (from the repo's patch file), rows the candidate's patch would switch off or reconfigure in the profile you already run, host-module shadowing, and peer/Node/OS ranges. Cards show 适配 / 有风险 / 冲突 / 适配未知 accordingly — advisory only; the install preflight remains the enforcing gate.
- Anti-squatting — an install prefers the npm tarball only when the registry entry's
repositoryURL points back to the same GitHub repo; anything else falls back to the explicitgithub:spec. - npm-first installs — registry tarballs are smaller than whole-repo GitHub downloads and come with integrity checks. Lookups follow the registry pnpm actually installs from (profile
.npmrc→pnpm config get registry→ npmjs), so a mirror user keeps npm-first instead of silently falling back to whole-repo clones. - Update management — installed plugins are compared against the registry
latest; one-click update per plugin. - Conflict guard — every install runs an isolated preflight first: the candidate is installed with scripts disabled into a throwaway directory and scanned against the live profile for loader-id collisions, double mounts, host-module shadowing and version/OS/peer ranges. A patch layer is not read entry by entry but composed the way the loader applies it — the profile is assembled with and without the candidate's layer, in the position dsh would apply it, and the two trees are diffed. That composition is checked against the loader's own
applyEntryPatcheson every test run, over fixed shapes and 300 generated patch combinations, so "what dsh would boot" is not a guess. What gets reported is what would actually change: disabling, re-enabling or replacing the config of someone else's rows warns and names them, past ten such rows the candidate is a rival composition rather than an addition and is blocked, and a bundle that is itself another front door (ownbin, terminal peers, no browser half) is blocked once it switches rows on or off or rewrites a protection row — the fingerprint corroborates, it never blocks on its own. A hard conflict is blocked, warnings require explicit confirmation. The profile's load-bearing files are snapshotted beforepnpmtouches them and restored on failure. A pending install is resolved on the next start, however you start it: this plugin runs recovery as it loads, which only happens because dsh booted far enough to compose the profile. Starting throughguard launchadds a grace window on top, so a plugin that boots and then crashes seconds later is rolled back and restarted once (see [Startup protection](#startup-protection-guard-cli)). - Resilience — rate-limit circuit breaker, GitHub's 1000-result search window handled gracefully,
corepack enable pnpmself-heal when pnpm is missing, one-click dsh restart (loopback-only,allowRestart: falseto disable). The outgoing Host exits only after the on-disk helper explicitly acknowledges the current handoff protocol and stays alive through a stability window; a missing, stale or incompatible helper leaves the existing Web service running. The successor then waits for the outgoing host to be gone before it binds — starting into an occupied port would read as "the pending plugin crashed dsh" and roll back an install that was fine. On Windows started from an interactive terminal, the restart runs in a visible console window (cmd /c start; the wrapped argv travels as a JSON plan file, never through the cmd command line): output is teed to the window and to the log, and closing the window terminates the whole guard/dsh tree (the close event bypasses console input processing entirely, so it always works). Ctrl+C in the window is honored best-effort — live testing showed a component inside dsh can flip the console into raw mode, after which no process on that console receives Ctrl+C at all; closing the window is the reliable stop. Service/scheduled-task/TTY-less Windows and every other platform keep the fully background behavior — no stray console, no re-opened browser (the page that asked is still there and reconnects on its own); whatever the restart prints lands in<home>/guard/restart-<profile>.log.
Install
# from npm dsh plugin --profile web add @1e0zj/dsh-plugin-mall # from GitHub dsh plugin --profile web add github:1e0zj/dsh-plugin-mall # local development — currently unusable, see the note below dsh plugin --profile web add link:C:\path\to\dsh-plugin-mall
Restart dsh after installing.
link: cannot be set up right now, for reasons upstream of this plugin. Under
link: Node loads from the project's real path, so bare imports must resolve from
the project's ow
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
符合聲明(可貼進 README)
按 DSHIO/T 10 §8.1,通過檢驗的插件可以這樣聲明。必須保留範圍、日期與環境指紋。
符合 DSHIO/T 10—2026(基準 DSH 0.2.2-rc.1,靜態層 + 動態層) 檢驗日期:2026-11-08 環境指紋:dsh=0.2.2-rc.1;img=dsh-sandbox:5.0@sha256:d90b02baef228bb105d4817d1a7d23bdd6aec24f463cc7bc3d1fbb2e5af45c00;node=24.11.1;pnpm=9.15.9;mem=768m;cpu=1 重複次數:2 次(一致) (總體判定為「有條件符合」:待人工判断 2 项(5.5.1、5.5.2)) 注意:本聲明只覆蓋上述範圍。5.5.1、5.5.2 兩條屬人工判斷,未包含在自動檢驗內。
嵌入徽章
两个徽章各用自己站的标识:左边是**标准**(DSHIO 发布),右边是**检测机构**(deepseekbase 检测)。每次展示都指向标准原文和检验报告。
Markdown(推荐,两个一起)
[](https://dshio.org/10/) [](https://deepseekbase.com/zh/plugins/1e0zj-dsh-plugin-mall/)
注意:这不是认证。DSHIO/T 32 认证规则尚未启用。
版本
npm 上共发布:37,最后更新 2026-08-27
链接
常見問題
dsh plugin --profile web add @1e0zj/dsh-plugin-mall。如果你用的是 DSH Desktop,也可以在插件頁面直接貼套件名。dsh --version),再看上面測試結果區的第一條錯誤。還不行就到 GitHub 倉庫提 issue。dsh plugin --profile web remove @1e0zj/dsh-plugin-mall。dsh=0.2.2-rc.1;img=dsh-sandbox:5.0@sha256:d90b02baef228bb105d4817d1a7d23bdd6aec24f463cc7bc3d1fbb2e5af45c00;node=24.11.1;pnpm=9.15.9;mem=768m;cpu=1。按這個指紋可以復現。同类插件
同類插件對比
| 插件 | 下載 | 沙箱判定 | 體積 |
|---|---|---|---|
| dshmarket | 907.3K | ✅ 通過 | 5.98 MB |
| dsh-m | 35.9K | ✅ 通過 | 12.61 MB |
| dsh-find-plugin | 17.4K | ❌ 裝不上 | — |
| dsh-skin-market | 12.4K | ✅ 通過 | 50.11 MB |
| dsh-plugin-marketplace | 11.0K | ✅ 通過 | 11.0 MB |
| dsh-find-plugins | 9.3K | ✅ 通過 | 8.49 MB |
| dsh-plugin-ops-bundle | 4.9K | ✅ 通過 | 2.44 MB |
| dsh-agent-plugins-market | 4.7K | ✅ 通過 | 46.37 MB |