DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Manager — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
P

@txc2768651338/dsh-plugin-manager

Plugin Manager

插件管家——图形化插件管理:中文名与用途说明目录 + 一键启停(写入全局 cordis.patch.yml,实时热生效)

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:2768651338/dsh-plugin-manager#4aef790ae8face67b5c65e50b9f47d3eb8c969f0
README兼容性版本
Plugin Manager tab — real screenshot

兼容性与来源证明

Plugin Manager 以 @txc2768651338/dsh-plugin-manager 发布,当前版本为 0.8.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/8

版本

0.8.0stable
2026/10/8
0.7.0stable
2026/10/1

相关插件

正在加载相关插件…

最新版
0.8.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 10
周下载
0
最近提交
2026/10/8
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Ab Chartdsh-ab-chart带有绘制其调用的浏览器卡片的图表渲染工具,封装在一个可发布的插件包中Web App@monotykamary/dsh-web-appdsh browser-surface 捆绑包:在 dsh-base 之上的 Web 补丁层,加上运行时衔接插件(前端 dist 提供服务、web-surface 提示符、Bash 运行时变量、URL 行)

README

dsh-plugin-manager

Every plugin finally speaks for itself — Chinese names, plain-language descriptions, one-click enable/disable, and in-UI notes editing for DeepSeek Harness.


Plugin Manager tab — real screenshot

Settings → Plugins → Plugin Manager · 165 plugins cataloged, one click to toggle, notes edited in place.


Overview · Compatibility · Install / Uninstall · Quick Start · Configuration · Permissions & Data · Features · Troubleshooting · Development

中文 · Español · 日本語 · Deutsch · Русский · Português · 한국어


🆕 2026-10-01 · v0.7.0 — Adapted to DSH 0.2.0 (0.2.0-rc.2) with a dual-form codec artifact that registers on both the 0.1.x and the 0.2.0 typert chains (0.2.0 switched from zod instances to create() factories) — the full e2e suite passes against both 0.2.0-rc.2 and 0.1.5-rc.3. Catalog gained the 0.2.0 rows (dsh-hmr, the DeepSeek LLM split, the official plugin manager rows); peer ranges widened to cover 0.2.0-rc.0+. Hot-reload still works on 0.2.0 (the dsh-hmr service watches the global patch file).

🆕 2026-10-01 · v0.6.0 — Adapted to DSH 0.1.5 (0.1.5-rc.3): the host and client halves build and pass the full e2e suite against the 0.1.5-rc.3 package set, and the test suite now runs hermetically (no local DSH install needed). Also fixes a locale-namespace collision with @linxin666/dsh-web-ui-all.

🆕 2026-08-14 · v0.3.0 — In-UI notes editing is live: click Edit notes on any card to rename a plugin or rewrite its description in place. No more hand-editing catalog.json.

🏷️ v0.4.0 — Package renamed to the owner-controlled scope @2768651338/dsh-plugin-manager (previous @dsh-external/* scope was not authorized).

🔧 v0.2.x — Fixed endpoint 404 under tsx source launch (strict ./typert registration) and the cordis inject access (ctx.get channel).


Overview

Problem. The built-in "Plugin list" in DeepSeek Harness shows only English module names with no descriptions — once you install many plugins, nobody can tell what each row does. Enable/disable previously required hand-editing cordis.patch.yml, which is easy to break.

Who it's for. Every DeepSeek Harness user, especially people who install many plugins and want to know what each one does, toggle them safely, and annotate the ones the catalog doesn't cover.

PainBeforeWith this plugin
Plugin list is meaninglessEnglish module names only, no clue what each row doesChinese name + one-line description + category for every plugin
Toggling is manualHand-edit cordis.patch.yml (easy to break)One-click switch, surgical line-level edits, hot-reloaded in ~1s
Unknown plugins stay mysteriousFallback text onlyAdd your own notes directly in the UI
Nothing is safe from fat fingersAny row can be disabledSystem rows locked, !!js-controlled rows labeled

Compatibility

ItemValue
DSH version0.2.0 line (verified against the 0.2.0-rc.2 package set) and 0.1.x (dual-form codecs re-verified against 0.1.5-rc.3)
Verified on2026-10-01, web profile, Windows — host chain + strict typert registration covered by the e2e suite on both 0.2.0-rc.2 and 0.1.5-rc.3
Install mechanismdsh plugin --profile web add (bundle patch + dual-face row)
Depends ontypert-loader / api-gateway / client-modules rows shipped in dsh-base + dsh-web-app

The official launcher boots via tsx from source; this plugin's strict ./typert registration is specifically designed to work under both plain-node and tsx source launch (covered by tests/claims.e2e.mjs). If you run a different DSH version, re-run the test suite before reporting issues.

DSH 0.2.0 note: the dsh-base bundle now ships an official plugin manager (@deepseek-ai/dsh-plugin-manager, row id plugin-manager). This plugin's bundle patch inserts the same row id, and the later bundle layer wins — so installing this plugin replaces the official host row. The official sidebar panel (@deepseek-ai/dsh-client-ui-plugin-manager) is a separate surface and may coexist with this plugin's Settings tab. If both host rows are ever loaded at the same time (the takeover did not happen as expected), the tab detects it at runtime and shows a compatibility warning banner.

Install / Uninstall

# Install (recommended, same bundle mechanism as dsh-navbar)
dsh plugin --profile web add github:2768651338/dsh-plugin-manager#main

# Alternative: install from a zip (download from the Release page), unzip to a path without spaces, then:
dsh plugin --profile web add file:/<unzipped-dir>/dsh-plugin-manager

# Alternative: build locally (clone this repository)
pnpm build   # tsc + tsdown → lib/index.js (host half) and lib/client.js (browser half)
dsh plugin --profile web add file:./dsh-plugin-manager

After installing, restart DeepSeek Harness and press Ctrl+F5 once. Open Settings → Plugins → Plugin Manager. The lib/ artifacts are committed, so GitHub installs need no local build.

ActionCommand
Upgradedsh plugin --profile web update (or re-run the add command), then restart DSH
Disable (temporarily)Click 停用/Disable on the plugin's own card in Plugin Manager — the row stays installed
Removedsh plugin --profile web remove @txc2768651338/dsh-plugin-manager, then remove its rows from cordis.patch.yml if any

Quick Start

Minimal reproducible walkthrough (2 minutes):

# 1. Install
dsh plugin --profile web add github:2768651338/dsh-plugin-manager#main
# 2. Restart DeepSeek Harness, press Ctrl+F5 in the web page
  1. Open Settings → Plugins → Plugin Manager — you see the full catalog with Chinese names and descriptions.
  2. Toggle one plugin: search for trajectory, click 停用 (Disable) on the 轨迹视图 card → the row turns 已停用 within ~1 second (host-side effect; browser-side plugins fully unload after a page refresh).
  3. Annotate one plugin: click 编辑备注 (Edit notes) on the 联网搜索 card, rename it and add a note, click 保存 (Save) → the card updates immediately; 恢复默认 (Restore default) reverts it.

Configuration

ItemDetails
Plugin-level optionsNone — the plugin needs no configuration; install-and-use
Toggle file~/.dsh/cordis.patch.yml (global layer, hot-reloaded by DSH)
Notes override file~/.dsh/plugin-manager/catalog.json (auto-created on first save)
Environment variablesNone of its own; follows DSH's DSH_HOME resolution for the files above
DefaultsUnlisted plugins fall back to built-in catalog → English short name → fallback text
Sensitive itemsNone — no keys, tokens, or credentials are read or stored

Permissions & Data

ScopeWhat it touches
Files (read)cordis.patch.yml, plugin-manager/catalog.json, the in-process loader plugin list, and the profile package.json (backup)
Files (write)~/.dsh/cordis.patch.yml (toggle rows), ~/.dsh/plugin-manager/catalog.json (notes), and the profile package.json (restore) — inside the DSH home only
NetworkNone. The browser half talks only to your local DSH /api RPC endpoint
CredentialsNever read
User dataNever read (no access to sessions, messages, or prompts)

Security model. This plugin ships no authentication of its own — who can reach its write operations (toggles, notes edits, backup import) is decided entirely by DSH's web-app trust barrier. Under the default configuration the web server listens on the loopback interface and only local sessions can call the RPC endpoints; that is the assumption this plugin is built on. If you configure the DSH web server to listen on a non-loopback address (the host/port launch options), anyone who can reach that port can toggle plugins, rewrite your cordis.patch.yml, and change profile dependencies — do not expose the web server to untrusted networks. Also note the tab footer displays two local file paths (the patch and override files) as returned by the list snapshot, so LAN-visible sessions can learn those paths.

Features

FeatureDescription
📚 Bilingual catalog190+ built-in entries (name / description / category) in Chinese and English — the English UI shows English names/descriptions, falling back to the module short name + an English note instead of Chinese. Unlisted modules fall back automatically; every entry is customizable
🔘 One-click toggleWrites ~/.dsh/cordis.patch.yml (global layer); DSH's HMR watcher re-applies within ~1 second; enabling writes an explicit disabled: false that overrides lower layers
✏️ In-UI notes"Edit notes" on each card edits the Chinese name/description (~/.dsh/plugin-manager/catalog.json), with one-click restore-to-default
🛡️ Safety guardsBootstrap/transport/settings-shell rows locked as "System"; !!js-expression rows labeled "Expression-controlled"; a warning banner appears if the official plugin manager is still loaded alongside (takeover did not happen); a broken override file is reported with a one-click rename-aside rescue
🔍 Search & filterSearch by name/description/module (matching both languages), filter by category, enabled-count summary
↩️ Toggle undoDisabling shows a 9-second in-card Undo button instead of a no-confirm instant change
💾 Backup & restoreExport notes + plugin list (profile dependencies/bundles) + the enable/disable patch to one JSON file; import previews every change first (notes to add/overwrite, dependencies, bundles, toggle rows) and only writes after you confirm — merges, never removes your existing entries. Non-registry dependency sources (git:/file:/URLs/shorthand) require per-item confirmation; unchecked entries are skipped

How It Works

HalfFileRole
Hostlib/index.jsRegisters the pluginManager cordis service (Typert remote): list / setEnabled / setOverride / removeOverride / exportBackup / previewBackup / importBackup / quarantineOverrides. Toggles use surgical patch-file editing — comments and !!js expressions preserved. Every file-writing method shares one serialized write queue (no cross-operation lost updates), and import runs as a read-only preview followed by a confirmed merge.
Hostlib/typert.host.jsExports ./typert; the typert-loader registers it as strict invocation definitions. Crucial fix: under tsx source launch the gateway and an external plugin can hold two copies of typert-protocol — decorator markers are invisible across copies (symptom: every call 404s). Strict registration goes through the shared registry, sidestepping module-instance identity.
Browserlib/client.jsMounts the pluginManager remote namespace via the inject-free ctx.get() channel (avoids a self-mount deadlock) and registers the Plugin Manager tab in the settings.plugins.tab slot.

Runtime dependencies: @deepseek-ai/cordis and @deepseek-ai/dsh-typert-protocol resolve through DSH's profiles/node_modules fallback links — no extra pnpm downloads.

Custom Notes

Click Edit notes on any card. Saving with both fields empty removes that plugin's customization. Power users may still edit ~/.dsh/plugin-manager/catalog.json directly:

{
  "@dsh-external/dsh-navbar": { "name": "对话导航条", "desc": "对话区右缘的消息节点导航" }
}

Precedence: override file > built-in catalog > English short name.

Troubleshooting

SymptomFix
The tab doesn't appearRestart DeepSeek Harness, then Ctrl+F5 the page (client bundles load at boot)
"暂时无法读取插件" with an error blockRead the gray error detail under the message: pluginManager.list failed: ... / transport failure ... and match it below
Error mentions 404 or invocation-unavailableYour installed version is older than 0.2.0 (missing ./typert strict registration) — update and restart
cannot get property "remote.pluginManager" without injectVersion older than 0.2.2 — update and refresh
A toggle doesn't seem to workCheck ~/.dsh/cordis.patch.yml keeps row-block structure (a - dash at column 0); rows labeled "表达式控制" are !!js-controlled — edit the config file directly
pnpm warns peer range @deepseek-ai/*@* does not match resolved 0.2.0-rc.2Harmless — DSH ships these as prereleases and semver * doesn't match them. v0.7.0+ declares >=0.1.0-rc.0 || >=0.1.5-rc.0 || >=0.2.0-rc.0; for other plugins add peerDependencyRules.allowAny: ['@deepseek-ai/*'] to pnpm-workspace.yaml
Where are the logs?DSH host startup log (launcher console) for host errors; browser DevTools (F12) console for client errors
RollbackRemove the plugin's rows from cordis.patch.yml, use 恢复默认 for notes, or uninstall with the remove command above

Project Structure

src/
  index.ts              host half: PluginManagerGateway (list / setEnabled / setOverride / removeOverride)
  patch-file.ts         surgical patch-file editor (pure functions)
  catalog.ts            built-in catalog + system-protection set
  types.ts              shared plain data types
  typert-host.ts        strict endpoint registration artifact (./typert)
  client/
    index.ts            browser half: mount remote namespace + register the tab
    remote.ts           client remote artifact (strict zod codecs)
    PluginManagerTab.tsx tab UI (list / toggles / notes editing)
    locales.ts          zh/en dictionaries
cordis.patch.yml        bundle patch (inserts the plugin-manager row)
lib/                    built artifacts (committed; GitHub installs skip building)
tests/                  smoke / end-to-end tests

Development

pnpm build                      # tsc + tsdown
pnpm lint                       # eslint (flat config, lenient rules)
pnpm typecheck                  # tsc --noEmit
pnpm test                       # patch-file / patch-yaml / fs-safe / client-util / backup smokes + claims/gateway/host e2e
node tests/patch-file.smoke.mjs # patch editor smoke tests
node tests/client-util.smoke.mjs# browser-half pure-function smoke tests
node tests/host-gateway.e2e.mjs # host gateway end-to-end (incl. override-file contents)
node tests/claims.e2e.mjs       # endpoint claims under plain-node and tsx source launch

CI (GitHub Actions) runs lint + typecheck + build + test on node 22/24 for every push and PR. Note the CI pins verify only the pinned dev versions below — before a release, re-run the suite manually against any newer DSH rc (see the compatibility note).

Artifact shape note: the two hand-written typert artifacts (src/client/remote.ts, src/typert-host.ts) keep their generator-aligned descriptor shapes but share one schema source (src/schemas.ts) — edit schemas there, not in the artifacts. If a future host ever requires byte-exact comparison against generator output, split the schemas back out.

The DSH host packages the tests boot against (dsh-app-boot, dsh-typert-*, dsh-api-gateway, …) are pinned devDependencies at the DSH 0.2.0-rc.2 versions, and every entry path is resolved via import.meta.resolve — no local DSH installation is needed to build, test, or typecheck. The dual-form codec artifacts are regression-verified by temporarily flipping the pins back to 0.1.5-rc.3 and re-running the full suite (both generations must pass).

Contributing. Fork → change → pnpm build → run the tests above → open a PR against main. Small fixes (docs, catalog entries, translations) are welcome without prior discussion. Report issues with the DSH version and the exact error detail shown in the tab.

License & Security

License: MIT — see LICENSE. Built on DeepSeek Harness's public plugin mechanism, not affiliated with DeepSeek.

Security: this plugin reads no credentials and sends nothing over the network. To report a security issue privately, use GitHub's Report a vulnerability on the Security tab — do not open a public issue with exploit details.


Star History

Star History Chart

MIT License © 2768651338