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.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
P

dsh-powerbox

Powerbox

Power actions for the DSH Web UI: a header button that restarts or quits DSH, each behind its own confirmation dialog.

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

npx -y @deepseek-ai/dsh plugin --profile web add github:AsterLuo/dsh-powerbox#bc5840818e06ea141154f28412a94138ab44ee1b
READMECompatibilityVersions
Header power buttonRestart or quit, each behind a confirmation

Compatibility and provenance

Powerbox is published as dsh-powerbox and currently resolves to version 1.0.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
10/20/2026

Versions

1.0.0stable
10/20/2026

Related plugins

Loading related plugins…

Latest
1.0.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 1
Weekly downloads
0
Last push
10/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 Session Titles Bundle@deepseek-ai/dsh-experimental-session-titles-bundleRefresh session titles as new human prompts arrive.Personalized Recommendations@deepseek-ai/dsh-personalized-recommendationsPersonalized pages and built-in plugin recommendations offered as cards below answersExperimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI plugins

README

dsh-powerbox

A power button for the DeepSeek Harness Web UI: one click in the conversation header opens a small dialog offering Restart DSH or Quit DSH — and each of those asks for confirmation again before anything happens.

中文说明 →

Header power button

The two-step flow — pick an action, then confirm it:

Restart or quit, each behind a confirmation


Why

Restarting or quitting DSH normally means reaching for the tray icon / title bar and hunting through menus. That is awkward when the window is in the foreground and you are mid-session. This plugin puts both actions where you already are looking: the top-right of the conversation header.

Because both actions are destructive — restarting kills in-flight tool calls, quitting closes the app — the flow is deliberately two-step:

[⏻]  →  Choose an action  →  Restart DSH / Quit DSH
                            ↓
                         Confirm  →  act

Cancel, Esc and clicking the backdrop all exit without touching anything.

Requirements

  • DSH with the Web UI (dsh --profile <name>), version 0.2 or newer.
  • A desktop shell that exposes window.dshDesktop for the power actions. In a plain browser the button renders disabled with an explanatory tooltip instead of half-working.
    • Restart calls dshDesktop.boot.restart().
    • Quit calls dshDesktop._call('win.close-force', {}).

Install

dsh plugin --profile <your-profile> add github:AsterLuo/dsh-powerbox

The package declares dsh.bundle.patch, so the official CLI appends dsh-powerbox to dsh.profile.bundles on its own. You do not need to edit cordis.patch.yml or package.json by hand. Restart DSH (or reload the Web UI) and the button appears in the conversation header.

Using an older CLI that does not reconcile bundles? Then add the row manually to your profile's cordis.patch.yml:

- insert:
    - id: powerbox
      name: 'dsh-powerbox'

Uninstall

dsh plugin --profile <your-profile> remove dsh-powerbox

If you added the patch row by hand, delete it as well. Restart DSH afterwards.

How it works

PieceRole
cordis.patch.ymlInserts the plugin row into the composed profile (this is what makes it load).
lib/index.jsHost half. Intentionally a no-op — it only exists so the package is a valid bundle (the loader requires name + apply).
lib/client.jsEverything else: the header button, the mode dialog, both confirmation dialogs, and the bridge calls.

The client half registers one entry in the conversation.session.header.utilities slot (a list slot, session scope — the same one the official Open in app action uses), which is what places the button at the right end of the conversation header.

  • No build step. It is a hand-written window.__ModuleLoader__.load({ id, factory }) bundle, exactly like the built-in plugins.
  • No runtime dependencies. react is provided by the host through the module loader.
  • Styling uses only --dsw-alias-* theme tokens, so it follows light and dark themes.

Safety details

  • The confirm button disables itself while the request is in flight, and a synchronous re-entry guard makes a second call impossible even if the click is dispatched programmatically.
  • Esc closes the dialog — except while an action is running, so you cannot hide a restart you already triggered.
  • Focus returns to the power button when the dialog closes.
  • Failures are reported in the dialog with a retry path, never swallowed.

Development

npm install
npm test        # node --test, jsdom-backed
npm run check   # syntax check both halves

The tests drive the real plugin bundle in a jsdom window with a recording window.dshDesktop stub. react is replaced by a small hook-compatible stub (see test/harness.mjs), because the real one is supplied by the host at runtime and is not a dependency of this package. Covered: slot registration contract, the full click-through of both flows, "no bridge call before the second confirmation", exactly-one-call, in-flight disabling, Esc, backdrop, focus restore, missing-bridge degradation, error surfacing, and the package/patch metadata that the installer relies on.

License

MIT © AsterLuo