DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-plugInOne

d

dsh-plugInOne

Manifest valid

Gathers custom plugin settings pages and cards into draggable top tabs under a unified Plugin settings navigation row.

UI (client)hasBundlePatch

dsh-plugInOne

Renamed from dsh-settings-hub; the RPC namespace settingsHub and legacy data migration paths stay compatible.

English | 中文

界面示意图

A pure relay plugin for DSH that adds one Plugin settings nav row to the settings dialog and gathers every custom plugin's settings content into draggable top tabs, persisting the tab order to a JSON file.

The plugin never modifies any plugin's registration, component, or settings document. It only:

  1. Detects custom-plugin settings contributions from the live slot ledger:
    • settings.section pages that are not DSH builtin sections (general / models / plugins / agent-presets) — e.g. dsh-at-file, dsh-market, dsh-status-rotator, dsh-notification, dsh-better-sidebar;
    • settings.general.item rows contributed by plugins (e.g. dsh-peak-indicator);
    • settings.plugin.item cards contributed by plugins (e.g. dsh-peak-indicator, dsh-client-auto-continue, dshmarket).
  2. Adds one Plugin settings nav row whose page renders a horizontal tab strip. Tabs are manually draggable; the order is saved by the host half to data/order.json inside the deployed plugin folder and restored on the next load.
  3. Renders each plugin's original settings content inside its tab through a faithful port of the runtime slot-render composition (standard kit, t locale seat, inject business face, store seat, child renderSlot recursion) with per-entry error boundaries — semantically identical to the settings shell.
  4. Hides the collected content from its old seats by filtering the runtime views: the settings nav projection is filtered via a service prototype patch, and the renderer host (slots._host) is wrapped in a Proxy that filters entriesOf/entriesOfSlot. Plugin section rows disappear from the settings nav, plugin general rows from the General page, and plugin cards from the Plugins page — while the registrations themselves stay intact.

Layout

dsh-plugInOne/
├── package.json        # dsh.client.platform: web + dsh.bundle.patch
├── cordis.patch.yml    # loader insertion
├── dsh.plugin.json
├── lib/index.js        # host half: settingsHub/loadOrder + saveOrder (JSON file)
└── lib/client.js       # client bundle (hand-written, no build step)

Install (web profile)

node <DSH_HOME>/profiles/node_modules/@deepseek-ai/dsh/lib/bin.js plugin --profile web add "file:<repo path>"

Restart DSH afterwards (the plugin roster is loaded at boot), then hard-refresh the page (Ctrl+R).

If pnpm rejects the install because of its supply-chain policy (minimumReleaseAge), run pnpm directly inside the profile with the policy relaxed and add the plugin to dsh.profile.bundles manually:

pnpm add "file:<repo path>" --config.minimum-release-age=0

Verification after restart

  1. Open Settings from the sidebar foot → the left nav should contain only the builtin rows plus Plugin settings.
  2. Click Plugin settings → top tabs list each plugin; drag a tab to reorder; the order is saved to <plugin folder>\data\order.json (e.g. ~\.dsh\profiles\web\node_modules\dsh-plugInOne\data\order.json).
  3. Each tab shows that plugin's original settings content.
  4. The General page no longer shows plugin rows (e.g. peak-indicator), and the Plugins page no longer shows external plugin cards.

Notes / constraints

  • Requires the current settings slots (settings.section, settings.general.item, settings.plugin.item) and the slot renderer host — DSH ≥ 0.1.1-rc.2.
  • The builtin/core whitelists live at the top of lib/client.js: BUILTIN_SETTINGS_SECTION_IDS, CORE_GENERAL_ITEM_IDS, CORE_PLUGIN_CARD_KEYS. If the deployment adds another builtin page, keep them in sync.
  • If a plugin's section id and its plugin-card key differ, it shows as two tabs (e.g. dshmarket's market vs dsh-market); add an alias if you want them merged.
  • Degradation path: if a future runtime drops the hostFace/_host structure, the plugin loses hiding and aggregation but the aggregation row still shows content and the original seats remain untouched — it cannot break the page.
  • The client bundle hot-reloads (client-hmr polls), but the slots._host Proxy and the prototype patch only take effect on a fresh page load, so hard-refresh after editing.

Compatibility

DSH 0.1.5-rc.2: errorDSH 0.1.6-alpha.1: errorDSH 0.1.5-rc.1: errorDSH 0.1.5-alpha.2: errorDSH 0.1.5-alpha.1: errorDSH 0.1.3-alpha.2: errorDSH 0.1.2-rc.1: errorDSH 0.1.2-alpha.5: errorDSH 0.1.2-alpha.4: errorDSH 0.1.2-alpha.3: errorDSH 0.1.2-alpha.2: error

Versions

Latest versionPublishedSize
0.1.0

Similar plugins

dsh-settings-nav-organizer

by zhengjy01

Fold plugin/extension settings entries in the DSH settings panel into one collapsible 'Plugin entries' group row

UI & ExperienceManifest valid

3

MIT

JavaScript

Aug 30, 2026

dsh plugin --profile web add dsh-settings-nav-organizer

by Han-1413141

UI butler for every plugin UI: official/plugin categories, per-widget toggles, drag move/resize, collision avoidance and one-click auto arrange.

UI & ExperienceManifest valid

4

MIT

JavaScript

Aug 15, 2026

dsh plugin --profile web add dsh-ui-hub

Normalize the DSH settings UI onto one design language: unified typography, cards, controls, focus and motion across every settings page, including pages contributed by other plugins.

UI & ExperienceManifest valid

0

77/wk

dsh plugin --profile web add dsh-settings-beautify

by AJUbest

A DSH plugin that distinguishes official built-in DSH plugins and user custom plugins on the external interface.It can collect and manage all your previously created custom plugins 这是一个 DSH 插件管理插件,可在w

Manifest valid

6

MIT

JavaScript

Sep 9, 2026

dsh plugin --profile web add dsh-plugin-optimization

by jackxiao-hub

A DSH web client plugin that turns the Settings → Plugins page into a dependency-layered plugin tree, plus an interactive dependency graph. Dependencies are prerequisites: see at a glance how plugins

Manifest valid

0

MIT

TypeScript

Aug 16, 2026

dsh plugin --profile web add @dsh-external/dsh-client-ui-plugin-tree

by zizhongfeiyang

A DeepSeek Harness web UI plugin for customizing and managing the settings navigation drawer. DeepSeek Harness 设置抽屉插件,用于自定义和管理设置页左侧导航栏,可隐藏/显示各设置栏目,修改即时生效。

UI & ExperienceManifest valid

4

MIT

JavaScript

Aug 23, 2026

dsh plugin --profile web add dsh-settings-drawer