Preface

In environments like DSH, where “everything is a plugin,” entry points for settings can come from the DSH core itself or from different plugins. As the number of settings items increases, navigation entries in the sidebar also increase accordingly.

baihejiangnan/dsh-settings-organizer is an independent DSH Web settings navigation organizer plugin. It only organizes the display structure of the settings sidebar; it does not install or modify other plugins, does not change the content of the settings pages themselves, and does not alter the plugin loading order.

What is it

dsh-settings-organizer targets the DSH Web profile and runs on the client side (browser).

It adds management pages via the settings.section slot in DSH and uses MutationObserver to adapt to the dynamic rendering of the settings sidebar. The plugin does not move, wrap, or clone DSH native navigation nodes.

Core Features

Below are the main capabilities provided by the current version:

  • Provide default first-level groups for Session, Workspace, Plugin Security, UI Extensions, etc.
  • Automatically identify existing settings pages upon first migration or installation.
  • Unidentified pages are preserved; they are not deleted or hidden.
  • First-level groups can be created, renamed, deleted, hidden, and reordered.
  • Can modify the first-level group affiliation of second-level navigation.
  • Clicking a first-level group can hide or show the associated second-level navigation.
  • After switching pages, the selected state updates with the native DSH state.
  • Support for sidebar scrolling and safe mode.
  • Settings entry is fixed to “Navigation Management,” located after the Agent preset by default.
  • Turn off animations under prefers-reduced-motion.
  • Support for navigation configuration import/export and restoring default layout.
  • Safe mode allows one-click restoration of the original settings navigation.

Installation

First, confirm that you are using the DSH Web profile, then execute the following installation command:

dsh plugin --profile web add github:baihejiangnan/dsh-settings-organizer

This command installs the plugin to the specified web profile. The plugin runs with the permissions of the current dsh process; it is recommended to check the source code and license before installing.

Typical Usage

First Installation

Upon first opening, the plugin reads the currently rendered settings pages and classifies them according to built-in rules. Users can continue to adjust them later in the page assignment section.

Page Assignment

Using page assignment, discovered settings pages can be moved to any default group.

This is suitable for situations where, after new settings entry points are added by other plugins, you want to incorporate them into existing first-level groups.

Safe Mode

Using “Show Original Navigation” enables safe mode and restores the original DOM order.

Safe mode allows one-click restoration of the original settings navigation and is suitable for situations where you need to temporarily stop reordering.

Import and Export

Importing a configuration will overwrite the current navigation configuration; it is recommended to export a backup first.

When importing an old configuration, historical nested groups will be automatically promoted to first-level groups.

Empty Groups

After enabling “Show Empty Groups,” you can see empty first-level groups.

Local Check

If you need to do local development or check scripts, you can first execute:

pnpm install

Then execute:

node --check lib/client.js

Applicable Scenarios & Notes

This plugin is suitable for users who want to organize the settings sidebar on the DSH Web side, especially in scenarios where multiple plugins are installed, there are many settings entry points, and you want to manage the display structure by first-level groups.

Please note the following points:

  • The plugin only organizes the settings sidebar; it does not change the content of the settings pages themselves or the plugin loading order.
  • Custom groups are only supported at the first level; second-level navigation must be actually registered by DSH or plugins.
  • Page identification relies on the visible text of the settings entry; if other plugins modify the entry text, manual reclassification may be required.
  • Configuration is saved in the current DSH Web profile and is not automatically synced to other devices or profiles.
  • The browser localStorage key dsh-settings-organizer:v2 is only used for old version migration and fallback when the service is temporarily unavailable.
  • peerDependencies include @deepseek-ai/dsh-host-webserver ^0.1.0-rc.6, @deepseek-ai/dsh-settings ^0.1.0-rc.6, and schemastery ^3.18.1.
  • Real DSH Desktop window adaptation, screenshots, and interactive acceptance testing should be completed in the target profile.
  • This is an independent project and is unrelated to dsh-plugin-safety-net.
  • License is MIT.

Links

  • Plugin Directory Page: https://www.skillhub.cn/plugins/baihejiangnan/dsh-settings-organizer
  • GitHub Repository: https://github.com/baihejiangnan/dsh-settings-organizer