DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Plugin Hot Toggle — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-plugin-hot-toggle

Plugin Hot Toggle

Hot-toggle any installed plugin in DeepSeek Harness from the Web settings — instant apply, no restart, persisted. 在 DSH 设置页一键热启用/停用任意插件,立即生效、无需重启、状态持久化。

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-plugin-hot-toggle@0.1.4
READMECompatibilityVersions
Plugin Toggle tab (English UI)

Compatibility and provenance

Plugin Hot Toggle is published as dsh-plugin-hot-toggle and currently resolves to version 0.1.4. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
9/20/2026

Versions

0.1.4stable
8/16/2026
0.1.3stable
8/16/2026
0.1.2stable
8/16/2026
Show 1 more versionCollapse versions
0.1.0stable
8/16/2026

Related plugins

Loading related plugins…

Latest
0.1.4
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
539.1 kB
Files
10
Surface
web
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
119
Security scan
✓ v0.1.4 scan passed
Last push
8/16/2026
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI pluginsClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Pet@linxin666/dsh-petMulti-pet companion plugin for the dsh web GUI: a registry-driven floating pet that reacts to model activity, with per-pet naming, petting/feeding interactions and an affinity score

README

dsh-plugin-hot-toggle

Hot-toggle any installed plugin from the DeepSeek Harness Web settings page (Plugins → 启停管理): stop or start a Cordis Loader entry in-process with instant effect and no DSH restart — the state persists across restarts.

中文文档 | English

Features

The 启停管理 (Plugin Toggle) tab in the Web settings:

Plugin Toggle tab (English UI)

  • Hot toggle: calls the official Cordis Loader Entry.update({ disabled }) — disabling disposes the plugin fiber, enabling re-imports and starts it, all in-process with instant effect. No DSH restart needed.
  • Persistent: the toggle state is written to the profile patch layer ($DSH_HOME/profiles/<profile>/cordis.patch.yml) and hot-applied by the official HMR watcher on save — survives restarts.
  • Safety guard: system-core entries (include, cordis:*, loader/hmr/timer, the dynamic-plugin host) cannot be toggled and are marked 「系统核心」.
  • Multi-dimensional filters (combinable):
    • State: all / enabled / disabled
    • Source: all / official / core / community (community = a matching directory under $DSH_HOME/plugins)
    • Type: builtin framework / client UI / LLM / tools / session & storage / sandbox & exec / agent & planning / services & integration / other
    • Search + live count (filtered / total)
  • Sorting: recent-first (community plugins ahead) or by name.
  • i18n: the UI follows the DSH language preference (中文/English) via the official locale service (namespace pluginHotToggle, 39 balanced keys).

Installation

From a local checkout (development)

dsh plugin --profile web add ./dsh-plugin-hot-toggle

From npm (after publish)

dsh plugin --profile web add dsh-plugin-hot-toggle

From git (after publish)

dsh plugin --profile web add github:5102a/dsh-plugin-hot-toggle

After installation, start DSH (or let HMR apply it) and open Settings → Plugins → 启停管理.

Platform support

The plugin runs on Windows, macOS, and Linux — the three platforms DeepSeek Harness itself supports.

ConcernGuarantee
Host halfAll filesystem paths go through node:path (join/dirname) and fileURLToPath; no hardcoded separators
PersistencePatch-layer writes use readFileSync/writeFileSync(…, 'utf8') with paths derived from the Loader include
HTTP API/plugin-hot-toggle/api/* is a URL route — platform-independent
Client halfPure browser fetch + React; no process.platform/navigator.platform branches
Buildscripts/build.mjs resolves paths from import.meta.url via fileURLToPath + join
Dev toolingChrome/Edge discovery honors CHROME_PATH/CHROME_BIN or a cross-platform candidate list; DSH_URL overrides the target origin
CIGitHub Actions matrix: ubuntu + windows + macos × Node 18/20/22

How it works

┌─────────────────────────────┐         ┌──────────────────────────────┐
│  Web (client half)          │  fetch  │  Node (host half)             │
│  settings.plugins.tab       │ ──────► │  /plugin-hot-toggle/api/*     │
│  「启停管理」tab             │  JSON   │  ┌──────────────────────────┐ │
│  - list + filters + sort    │ ◄────── │  │ ctx.loader.entries()     │ │
│  - toggle buttons           │         │  │ entry.update({disabled}) │ │
└─────────────────────────────┘         │  │ → fiber dispose / start  │ │
                                        │  └──────────────────────────┘ │
                                        │  ┌──────────────────────────┐ │
                                        │  │ persistence: write       │ │
                                        │  │ cordis.patch.yml → HMR   │ │
                                        │  └──────────────────────────┘ │
                                        └──────────────────────────────┘
  • Node half uses only public seams (loader, webServer, dshHomePath) — zero DSH core changes. webServer is injected dynamically, so TUI/headless surfaces never pend.
  • Web half talks to the Node half over a same-origin HTTP API; mutating requests carry a same-origin check (missing Origin / cross-origin → 403).
  • Client bundle is generated from src/client.js by a zero-dependency build script (node scripts/build.mjs) and committed to the repo, so git/npm installs need no build step.

Project layout

dsh-plugin-hot-toggle/
├── package.json         # dsh.bundle declaration + peerDependencies + exports
├── index.d.ts           # Host half type declarations
├── index.js             # Node half: loader list/toggle + webServer HTTP API
├── cordis.patch.yml     # bundle layer: inserts the plugin row
├── src/client.js        # Web half source (React)
├── lib/client.js        # Web half build artifact (generated, do not edit)
├── scripts/build.mjs    # zero-dep client bundle build
├── scripts/screenshot.mjs   # headless-Chrome UI screenshot (CDP, zero deps)
├── scripts/verify-render.mjs # verify the 启停管理 tab rendered
├── scripts/debug-dom.mjs    # DOM/slot debugging helper
├── tests/patch.test.js  # unit tests (node:test)
├── .dsh/skills/dsh-plugin-hot-toggle/SKILL.md  # project skill: dev/build/publish SOP
└── .github/workflows/ci.yml  # CI: build + artifact freshness + tests

API

MethodPathBodyReturns
GET/plugin-hot-toggle/api/list—{ entries: PluginEntry[] }
POST/plugin-hot-toggle/api/setEnabled{ entryId, enabled }SetEnabledResponse

See index.d.ts for PluginEntry / SetEnabledResponse.

Development

npm run build   # generate lib/client.js from src/client.js
npm test        # node:test unit tests
npm run check   # build + test in one step

Publishing

npm run check && npm run build
npm publish

The name dsh-plugin-hot-toggle was verified available with npm view before release.

Note on peer-dependency warnings: the package declares @deepseek-ai/cordis and react as peer dependencies (the same pattern as the official @deepseek-ai/* plugins). DSH resolves them from its own installation via the profile's flat fallback, so an "unmet peer" warning during dsh plugin add is expected and harmless.

License

MIT — see LICENSE.