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-panel-collapse

Panel Collapse

Adds a footer button to the DeepSeek Harness sidebar that collapses or expands the global panel list.

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

npx -y @deepseek-ai/dsh plugin --profile web add github:RiddanceY/dsh-panel-collapse#40dc5251f4d7643502cfc37df349879c8b1a38ca
READMECompatibilityVersions

Compatibility and provenance

Panel Collapse is published as dsh-panel-collapse 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
★ 0
Weekly downloads
0
Last push
10/21/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.

Whale 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 editinClient Ui Skill Explorer@linxin666/dsh-client-ui-skill-explorerDSH skill center: browse loaded skills by source (bundled / project / user / custom / runtime), enable or disable, create and delete, in a web GUI panel.Better Sidebardsh-better-sidebarBetter Sidebar for DSH — file tree, editor, changes, tasks and side chat in one column, separate for every conversation. Also exposes a service other plugins use to register sidebar tabs and file viewers.Client Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundle

README

dsh-panel-collapse

A tiny DeepSeek Harness plugin that adds one button to the sidebar footer, next to the settings control, which collapses or expands the global panel list (Plugins, Scheduled tasks, Context insight, Memory, … and any other plugin that registers a sidebar panel).

Collapsing frees the vertical space the panel rows occupy, so the workspace and session list gets more room. The state is remembered per browser profile and survives restarts.

icon

Install

dsh plugin --profile <your-profile> add dsh-panel-collapse

Restart the app afterwards — DeepSeek Harness only loads a new client module generation on startup, so the button will not appear until you relaunch.

From source

git clone https://github.com/RiddanceY/dsh-panel-collapse.git
dsh plugin --profile <your-profile> add "link:/absolute/path/to/dsh-panel-collapse"

link: makes the profile point at the clone instead of copying it, so git pull is enough to update and there is nothing to reinstall.

To remove it:

dsh plugin --profile <your-profile> remove dsh-panel-collapse

--profile must come immediately after plugin; dsh plugin add x --profile y is rejected with required option '--profile' not specified.

Usage

The button sits in the sidebar footer, to the right of the existing icon buttons.

  • Expanded (default) — shows a "collapse" chevron pair; clicking hides the panel list.
  • Collapsed — shows an "expand" chevron pair; clicking brings the list back.
  • In the collapsed (rail) sidebar the button grows to 36×36 to match the host's rail buttons.
  • The current state is stored in localStorage under dsh.panel-collapse.collapsed.

How it works

The plugin is a client-side bundle only — index.js is an empty host half, all the work happens in client.js, which the app loads lazily via window.__ModuleLoader__.

  1. apply(ctx) registers the panel-collapse locale namespace (zh, en) as a context effect, so the dictionary is disposed when the plugin unloads.

  2. It registers one entry in the sidebar.footer.action list slot with id: "panel-collapse" and order: 40, which puts it after the built-in Cordis panel button.

  3. The component keeps a boolean in React.useState, mirrored into localStorage, and renders a <style> element while collapsed:

    nav:has([data-slot="sidebar.panellist"]),
    nav[aria-label="全局面板"],
    nav[aria-label="Global panels"] { display: none !important; }
    

    The first selector is the locale-independent one: every panel row hosts a sidebar.panellist outlet, so the nav that contains them is exactly the panel group. The other two are a fallback that keys off the host's own accessible names.

No host code is imported, patched or monkey-patched. The button reuses only the public --dsw-alias-* / --dsw-radius-* / --dsw-focus-ring-* theme tokens, so it follows the light and dark themes and the sidebar's wide/collapsed states.

Compatibility

DeepSeek Harness>=0.2.0-rc.2
Client slots usedsidebar.footer.action (list)
Runtime dependenciesnone (React is taken from the app's module table)

Development

The package is plain ESM with no build step. client.js is the shipped artifact.

node --check client.js
node scripts/smoke.mjs    # loads the module with a stub loader + React shim
node scripts/verify.mjs   # full static verification (manifest, locale, slot, render tree)

scripts/verify.mjs also checks the install state when the package is linked into a profile (node_modules/<name> + dsh.profile.bundles); it skips those checks otherwise. Set DSH_PROFILE_DIR to point it at a non-default profile.

These scripts are static checks. They do not prove the button looks right on screen — that still needs a human looking at the running app.

Local iteration

dsh plugin --profile <your-profile> add "link:/absolute/path/to/dsh-panel-collapse"

link: makes the profile point at this directory instead of copying it, so edits to client.js take effect on the next app restart without reinstalling.

Known limitations

  • The panel group is hidden with CSS, so the host still believes the panels are mounted. That is intentional — it keeps the toggle independent of host internals and reversible without a reload — but it means the collapse is purely visual.
  • The :has() selector requires a reasonably modern Chromium, which the desktop app is built on. The two aria-label fallbacks do not depend on it.
  • Collapsing hides all rows of the panel list, including rows added by other plugins. That is the point of the feature; there is no per-row filtering.

License

MIT