Introduction

DSH’s plugin philosophy is “everything is a plugin”. If you need to frequently add, disable, or uninstall plugins in your local web profile, the command-line method usually involves directly editing the profile’s package.json and dsh.profile.bundles, followed by restarting dsh web and hard refreshing the browser.

dsh-plugin-manager puts these operations into the settings panel of the DeepSeek Harness Web GUI: listing, enabling, disabling, installing, and uninstalling plugins for the web profile. The DSH community directory is an independent site with no official affiliation to DeepSeek / Fuyao, and should not be interpreted as an official app store.

What is this

dsh-plugin-manager is a DSH plugin that manages local plugins within the DeepSeek Harness Web GUI. It is maintained by fuyao606 and is licensed under MIT.

It manages the web profile by default, reading from:

  • dependencies and dsh.profile.bundles in $DSH_HOME/profiles/web/package.json
  • the actual versions in node_modules

The interface distinguishes between “User Plugins” and “Built-in Modules”.

Core Features

List Plugins

View plugins in the current profile within the DeepSeek Harness Web GUI settings panel, and display the actual versions based on package.json and node_modules.

Enable and Disable

When enabling or disabling a plugin, switch the mount status in dsh.profile.bundles. Disabling retains the installed content, but the bundle will not be loaded on the next startup.

Install and Uninstall

During installation, enter the npm package name, execute pnpm add <spec> in the profile directory, and reconcile bundles based on installation status.

During uninstallation, execute pnpm remove <name> and reconcile bundles.

API and Client

dsh-plugin-manager provides a /plugin-manager/api JSON API, with operations limited to:

list
enable
disable
install
remove

The API only accepts POST and reuses DSH Web API’s request trust fence, checking loopback Host, trustedHosts, and same-origin requests.

The client registers a settings.section slot to render the plugin management interface.

Validation

The plugin uses trust fences and whitelist validation for the API and installation specs. Installation specs only support npm package names; specs like github:, file:, local paths, and tarball URLs must be done via the command line.

Installation and Usage

Recommended installation from GitHub:

dsh plugin --profile web add github:fuyao606/dsh-plugin-manager

Fixed Version Installation

You can also pin to a specific version:

dsh plugin --profile web add github:fuyao606/dsh-plugin-manager#v0.1.1

Installation via npm

If an npm package has been published, you can use:

dsh plugin --profile web add dsh-plugin-manager@latest

Local Development Installation

First clone the repository, then build and install:

git clone https://github.com/fuyao606/dsh-plugin-manager.git
cd dsh-plugin-manager
pnpm install
pnpm build

dsh plugin --profile web add ../dsh-plugin-manager

Open Plugin Manager

After installation, restart dsh web and hard refresh the browser, then open:

Settings → Plugin Manager

Typical Usage

Installation Specs

The “Install Plugin” input field supports the following npm package name formats:

  • name
  • name@version
  • name@tag
  • @scope/name
  • @scope/name@version

Example specs:

@tonydua/dsh-web-search-exa
dsh-better-sidebar@latest
dsh-plugin@1.2.3

For specs like github:, file:, local paths, and tarball URLs, please use the command line for installation.

Status Descriptions

  • Enabled: The bundle is mounted to dsh.profile.bundles.
  • Disabled: The package remains installed, but has been removed from the bundle mount list.
  • Blocked: Conflicts with the current profile’s Cordis patch ID and cannot be forcibly enabled.
  • Normal Dependency: An npm dependency, not a DSH bundle, does not support enable/disable.
  • Built-in: Built-in bundles originally existing in the profile, cannot be uninstalled.

Use Cases and Notes

Suitable for developers who need to manage local DSH web profile plugins. Please note before use:

  • All changes only apply to the profile’s package.json and node_modules; they take effect only after restarting dsh web and hard refreshing the browser.
  • Host-side changes cannot be hot-loaded; simply refreshing the page will not apply the configuration.
  • It manages the web profile by default; if using another profile, ensure the profile exists and can be started normally by DSH.
  • Normal dependencies are not DSH bundles and do not support enable/disable.
  • Built-in bundles cannot be uninstalled.
  • Blocked indicates a conflict with the current profile’s Cordis patch ID and cannot be forcibly enabled.
  • Requires Node.js >=20 and uses pnpm as the package manager.
  • Plugins will still run with the permissions of the local DSH process; please only install trusted npm packages; check the source code and license before installing.

Links

  • GitHub: https://github.com/fuyao606/dsh-plugin-manager
  • Plugin Directory Page: https://www.skillhub.cn/plugins/fuyao606/dsh-plugin-manager