dsh-plugin-groups
Manifest validCategory tabs for the DeepSeek Harness Plugins page's Installed list, with patch plugins nested under their parent.
dsh-plugin-groups
English | 中文
A DeepSeek Harness plugin that adds one row of category tabs to the Plugins page's Installed list, and nests patch plugins under the plugin they patch.


What it does
- Category tabs —
All · Appearance & UI · Usage & account · Models & subscriptions · Memory & context · Tools & abilities · Tasks & workflow · Market & install. Pick a tab to see only that category; the choice is remembered per browser and the counts follow installs / uninstalls live. Plugins that match no category land in Other, always last. - Patches nested under their parent — a plugin that exists only to patch another one is shown right below
it, indented, joined by a thin
└line and tagged Patch; the parent gets an N patches tag. A patch follows its parent's category. If the parent is not installed, the patch is shown on its own as usual. - Looks native — the tabs copy the official settings tabs (
gap: 22px, 13/20px, 2px underline, official focus ring) and use only DSH design tokens, so they follow light / dark and third-party skins. - Display only — no slots, no config, no files written, no network. It never touches another plugin or DSH itself. Disable or uninstall it and the page is exactly as before.
Install
# desktop app
dsh plugin --profile desktop add github:p56568833/dsh-plugin-groups
# web
dsh plugin --profile web add github:p56568833/dsh-plugin-groups
Then fully quit and reopen DeepSeek Harness (or restart dsh web and refresh the page).
Uninstall from the Plugins page, or dsh plugin --profile desktop remove dsh-plugin-groups.
Customize
Everything lives at the top of client.js:
| Table | What it does |
|---|---|
CATEGORIES | Tab order = array order. packages are exact package names (checked first); keywords are regexes on the package name for plugins you install later. Matching is by package name, not by the displayed title, because titles change with translation plugins and UI language. |
PARENTS | patch package → parent package. Add a line for any patch plugin you use. The shipped entries are examples from the author's setup and only show when both plugins are installed: dsh-skin-fixes, dsh-cn-greeting → dsh-claude-style; dsh-story-progress → dsh-story-turing; dsh-market-sidebar → dshmarket. |
Tab labels follow the page's own language (Chinese when the page heading is Chinese, English otherwise).
How it works
Against the official @deepseek-ai/dsh-client-ui-plugin-manager markup:
| Hook | Used for |
|---|---|
[data-plugin-panel] | the Plugins page |
[data-plugin-group="bundles"] ul | the Installed card list (a flex-direction: column list) |
li[data-plugin-package="<npm name>"] | one card — the same attribute the page itself uses to scroll to a plugin |
The tab row is inserted as the list's first child with order: -1; filtering sets display: none on cards;
nesting only sets the flex order (cards are never moved in the DOM — React keeps owning the order) plus
data-dsh-pg-* markers styled by CSS. A MutationObserver re-applies after React re-renders and ignores its own
mutations. If the hooks ever disappear after a DSH update, the plugin does nothing and logs one warning.
Diagnostics on <html>: data-dsh-plugin-groups = idle / flat / active:N / broken / renamed, and
data-dsh-plugin-groups-tab = the active tab. The selected tab is stored in
localStorage["dsh-plugin-groups/tab.v1"].
Verify
node verify.mjs
Runs the tab and nesting behaviour against a fake DOM (switching, remembering, highlight fallback, idempotence,
clean uninstall), and — on macOS with the desktop app installed — reads the official plugin-manager source out
of app.asar to assert the DOM hooks still exist, with negative cases proving those assertions can fail.
License
Comments
Loading…
From the same category
by awesome-dsh-plugin
A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表
★ 18.3k
CC0-1.0
Python
Oct 10, 2026
by 0xsline
DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.
★ 1.2k
CC0-1.0
Python
Oct 10, 2026
by pax-beehive
Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub
★ 450
MIT
TypeScript
Oct 6, 2026
by xiajiajun516
DeepSeek Harness (DSH) backup & restore plugin — export, import, migrate and sync your complete DSH configuration, plugins, MCP servers, skills and workspace. One-click migration to another machine.
★ 176
MIT
TypeScript
Oct 8, 2026
dsh plugin --profile web add dsh-config-managerby yjh051108
推荐组件(非必须):DeepSeek Harness 运行时注入器;已随 dsh-routing-suite 单仓库化保留,本仓库继续维护/发布。
★ 164
TypeScript
Sep 18, 2026
dsh plugin --profile web add @dsh-external/dsh-super-injectorby jigjoy-ai
A CLI that turns a goal into a pull request - and a sandbox for testing concurrent AI coding agents on the Mozaik runtime.
★ 124
MIT
TypeScript
Oct 2, 2026