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 Ui Toggle — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
P

dsh-plugin-ui-toggle

Plugin Ui Toggle

Turn any composed dsh plugin on or off from the web UI. Switches take effect live and survive a restart, because they are written as `disabled:` rows into the profile's own cordis.patch.yml.

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

npx -y @deepseek-ai/dsh plugin --profile web add github:Biobuilder-ai/dsh-plugin-ui-toggle#138664e8b2b0a5ed363b7873ea55ccc0a06ebcca
READMECompatibilityVersions

Compatibility and provenance

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

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
8/21/2026

Versions

0.1.0stable
8/21/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
8/20/2026
View source ↗
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 pluginsRemote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient 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.

README

dsh-plugin-ui-toggle

中文

Turn any composed dsh plugin on or off from the web UI — Settings → Plugins → Plugin switches.

Every row is one entry in the Loader tree. Flip a switch and it:

  • takes effect immediately, with no restart, and
  • survives a restart, because the switch is stored as a disabled: row in the profile's own cordis.patch.yml — the very file dsh composes the plugin tree from at boot.

Zero runtime dependencies, no build step.

Install

dsh plugin --profile web add github:Biobuilder-ai/dsh-plugin-ui-toggle

Then restart dsh web. dsh plugin adds the package to dsh.profile.bundles on its own, because this package declares dsh.bundle in its manifest.

How it works

dsh already watches the profile's cordis.patch.yml through the HMR service (watchUserPatches in @deepseek-ai/dsh-app-boot) and re-applies the whole user patch layer whenever the file changes. So this plugin does exactly one thing: it writes - id: <entry id> / disabled: true|false rows into a managed block at the end of that file.

# >>> dsh-plugin-ui-toggle:begin — managed block, edited from the web UI
- id: "web-ui-git-graph"
  disabled: true
# <<< dsh-plugin-ui-toggle:end

The write itself is what applies the change: the entry's fiber starts or unwinds from the patch re-apply. The plugin never calls Entry.update(), and therefore never writes back into the composed cordis.yml.

Nothing outside the two markers is touched — hand-written rows and comments above the block survive byte for byte. You can edit the block by hand, or delete it entirely to clear every override.

Because persistence and live application are the same mechanism, there is no second state store that can drift out of sync with the running tree.

Entry ids

The id a switch writes is the unqualified patch id (web-ui-pet), not the Loader's qualified path (include:web-ui-pet) — applyEntryPatches matches the former. The qualified path rides along as a path field for display only.

Rows that cannot be switched off

A few entries would take away the surface the switch panel itself lives on; turning one off would leave no way back except editing the patch file by hand. They are marked Required in the UI, and the host refuses the write with HTTP 409:

dsh-plugin-ui-toggle, @deepseek-ai/dsh-host-webserver, @deepseek-ai/dsh-host-frontend-static, @deepseek-ai/dsh-web-frontend, @deepseek-ai/dsh-client-modules, @deepseek-ai/dsh-api-gateway, @deepseek-ai/dsh-client-ui-layout, @deepseek-ai/dsh-client-ui-settings, @deepseek-ai/dsh-client-ui-settings-plugins.

Everything else is fair game, including host-side capability plugins. Switching off something you depend on makes that capability disappear; delete its row from the managed block to get it back.

HTTP surface

Same-origin, consumed by the browser half:

MethodPathPurpose
GET/ui-toggle/entriesList patchable entries with their current state
POST/ui-toggle/setBody { id, enabled }; writes the managed block

Composition

The package contributes one host row from the bundle patch it ships:

- insert:
    - id: ui-toggle
      name: 'dsh-plugin-ui-toggle'

The browser half is loaded from the dsh.client manifest and registers a settings.plugins.tab slot. webServer is picked up through ctx.inject rather than declared as a required service, so the row still activates in a headless profile — there it simply contributes nothing.

Requirements

  • dsh with the web profile (@deepseek-ai/dsh-web-app)
  • The webServer host service and the settings.plugins.tab client slot, both shipped in the stock web composition

License

MIT