Introduction

DSH’s extensibility enters the Web settings page in the form of plugins. For users, the built-in “Plugin List” tab mainly displays module names and short names, with a lot of English information; there is also a lack of an intuitive entry point for enabling or disabling third-party plugins.

Below, I introduce dsh-plugin-zh-inventory. It adds Chinese descriptions, category tags, grouping folders, and enable/disable switches to the “Plugin List” tab in the DSH settings page. This makes it easier to view plugin names, purposes, and status, and allows direct management of third-party plugins in the Web UI.

What is it

dsh-plugin-zh-inventory is a DSH Web UI plugin maintained by anxinyuanshiyu used to enhance the plugin list in the settings page.

The version declared in package.json is 0.2.0, and the license is MIT. After installation and enabling, it automatically disables the built-in read-only “Plugin List” tab and replaces it with a “Plugin List (Chinese)” tab with Chinese descriptions.

Core Features

Chinese Descriptions and Category Tags

The plugin supplements Chinese descriptions and category tags for items in the list. The search box supports matching the following simultaneously:

  • Module name
  • Short name
  • Chinese description
  • Group title

The grouping collapsed state is saved in localStorage and retains the previous state after refreshing the page.

Grouping Folders

The plugin displays 6 collapsible groups, showing “Enabled n/Total” for each group. This display method is more suitable for quickly locating plugins than a flat list.

Third-Party Plugin Toggle Switches

Enable/disable switches are provided on the right side of third-party plugin cards. After clicking the switch, the configuration is written to:

~/.dsh/cordis.patch.yml

The DSH configuration listener then hot-reloads, taking effect within a few seconds without needing to restart the DSH process.

System Plugins and Critical Components

DSH system plugins, i.e., official DSH packages, remain permanently enabled and do not display enable/disable switches. Critical components display a lock icon, indicating they are prohibited from being closed.

Installation and Usage

The README marks the local plugin method as recommended and states that upgrading DSH does not cause data loss.

  1. Clone the repository:
git clone https://github.com/anxinyuanshiyu/dsh-plugin-zh-inventory.git
  1. Register the plugin into the package.json of the web profile. In the dependencies of ~/.dsh/profiles/web/package.json, add:
"dsh-plugin-zh-inventory": "link:<absolute path to plugin>"

and append to the end of the dsh.profile.bundles array:

"dsh-plugin-zh-inventory"
  1. Install dependencies:
dsh plugin --profile web install
  1. Start the Web UI:
dsh web

After completing the above steps, enter the Plugin List in the settings page, and you should be able to see the “Plugin List (Chinese)” tab provided by this plugin.

Direct Override of Built-in Components (Temporary Solution)

You can also copy the following from the plugin directory:

lib/client.js

to:

node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js

and then restart DSH.

This method is only for temporary use. The README states that this method will be lost after upgrading DSH via npm.

Typical Usage

Finding Plugins

After entering the “Plugin List (Chinese)”, you can use the search box to find plugins by module name, short name, Chinese description, or group title.

For example, if you want to find a plugin related to sessions, terminals, skills, or the interface, you can first narrow down the scope via the group title, then enter the Chinese keyword in the search box.

Enabling/Disabling Third-Party Plugins

After finding a third-party plugin card, click the enable/disable switch on the right. The plugin calls the host-side route:

POST /api/zh-inventory/toggle

After passing host-side validation, it writes the enabled or disabled state to:

~/.dsh/cordis.patch.yml

Subsequently, the DSH configuration listener hot-reloads, taking effect within a few seconds.

Customizing Chinese Descriptions and Categories

If you need to adjust plugin descriptions later, you can modify the SHORT_ZH object in lib/client.js.

To adjust categories, you can edit the categoryByShort function.

To modify the list of protected components, you need to synchronize the PROTECTED set in the following two places:

lib/index.js
lib/client.js

The two places need to remain consistent.

Security and Limitations

The host side only allows enabling or disabling third-party plugins. DSH system plugins return 400; critical components located in the PROTECTED set are rejected even if the enable/disable interface is accidentally called.

The plugin runs with the permissions of the current DSH process. It is recommended to check the repository source code before installation and confirm that the MIT license fits your usage scenario.

The local plugin method is more suitable for long-term use; the method of directly overriding built-in components is only suitable for temporary debugging, as this override may be lost after DSH upgrades.

Conclusion

dsh-plugin-zh-inventory mainly solves three problems: unintelligible plugin names, non-intuitive plugin purposes, and inconvenient enabling/disabling of third-party plugins. After installation, the plugin list in the DSH settings page will include Chinese descriptions, category tags, grouping, and enable/disable switches, and the enabling and disabling of third-party plugins can also be completed directly in the Web UI.

Repository address:

https://github.com/anxinyuanshiyu/dsh-plugin-zh-inventory