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

dsh-sidebar-buttons

Sidebar Buttons

DeepSeek Harness plugin: manage the sidebar-foot action buttons — reorder them by drag-and-drop and control each one from a dedicated settings page with three states (show in sidebar / fold into the "More" menu / fully hide).

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-sidebar-buttons@0.1.6
READMECompatibilityVersions
Settings nav positionSettings page

Compatibility and provenance

Sidebar Buttons is published as dsh-sidebar-buttons and currently resolves to version 0.1.6. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
11/5/2026

Versions

0.1.6stable
9/29/2026
0.1.5stable
9/11/2026
0.1.4stable
9/10/2026
Show 3 more versionsCollapse versions
0.1.3stable
9/8/2026
0.1.2stable
8/23/2026
0.1.0stable
8/23/2026

Related plugins

Loading related plugins…

Latest
0.1.6
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
1.4 MB
Files
11
Surface
web
License
MIT
Source
npm
GitHub
★ 3
Weekly downloads
9
Last push
9/11/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 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 answersWhale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editin

README

dsh-sidebar-buttons

English | 简体中文

A DeepSeek Harness plugin. Takes over the buttons at the bottom of the left sidebar: drag to reorder them, put each one into one of three display states, and give them all the same height.

Compatibility

Tested on DSH 0.2.0-rc.2 (web profile); also runs on 0.1.5-rc.1 and 0.1.2-rc.1. Those are the releases dsh.engines.dsh in package.json declares, so a host or plugin manager can read the same range without parsing this file.

No peerDependencies are declared on @deepseek-ai/* on purpose: a prerelease range there would exclude newer DSH releases and make the host's compatibility gate skip the plugin.

Everything happens in the browser. The plugin works through the documented list slot sidebar.footer.action (plus the shell's own settings.launcher seat for the Settings entry) and never touches the DSH core or another plugin's files, so uninstalling it restores the original sidebar.

Install

  1. Add the plugin — from npm:

    dsh plugin --profile web add dsh-sidebar-buttons
    

    or straight from GitHub:

    dsh plugin --profile web add github:lywusichen/dsh-sidebar-buttons
    
  2. Restart DSH.

  3. Open Settings → Sidebar Buttons.

What it does

  • Lists every button currently registered in the sidebar foot. Drag a row to change the order; the sidebar updates as you drop it.
  • Each button has three display states:
    • Show — pinned in the sidebar, as usual.
    • Fold into More — moved into a "More" button above Settings. The More button only exists while at least one entry is folded, and folded buttons stay fully usable from its menu.
    • Hide — gone from both the sidebar and the More menu. Only the settings page can bring it back.
  • Buttons from different plugins come in different sizes. Pick one height for all of them, keep each button's own size, or type a custom pixel value.

Screenshots

More button position

More menu

Settings nav position

Settings page

How it works

The sidebar foot is a list slot, so a plugin can register more than one entry under the same id and the renderer sorts them by priority. This plugin re-registers each existing entry with priority: -1, which puts its copy in front of the original, and renders its own wrapper around the original component. Order, visibility, and size then come from a shared store that every wrapper reads. Nothing is unregistered, so turning the plugin off returns control to the originals immediately.

One kind of button does not fit that model: the slot entry is only an anchor and the plugin renders the real button elsewhere in the sidebar (for example dsh-mneme's memory entry, which mounts itself above the workspace list). Those buttons are controlled in place, without moving any node: the wrapper is hidden while the state has no visible seat, and when the entry is folded into the More menu the popup carries a proxy row whose click is forwarded to the real button. Moving the node instead would break twice — the owning plugin re-inserts its wrapper from its own observer, and a node moved out of React's tree stops receiving the synthetic events that make the button work.

The shell's Settings seat (settings.launcher) is managed the same way. It is a single slot that cannot be mirrored, so it is hidden or folded in place, and it is pinned after every managed button so it stays at the very bottom of the sidebar.

Known limitations

  • Anchor-style buttons are found through a data-plugin-entry marker or a built-in declaration table (the memory entry and the Settings seat are both declared). With neither, the plugin cannot tell the button apart and leaves it alone.
  • The Settings seat offers only Show and Fold into More: hiding it would leave no way back into the settings panel, where this plugin's own page lives. It also does not take part in drag-reordering.
  • Reordering and the More menu depend on slots.entries and slots.subscribe, which the plugin relies on to stay aligned with registrations made after it loads. If a future DSH release changes the list-slot contract, this plugin needs an update.
  • The three states are stored per button id. Two plugins registering the same id share one state.

Build

npm install   # esbuild
npm run build # generates lib/client.js

Commit lib/client.js. Git-hosted installs consume the built artifact directly.

License

MIT