Introduction

In the DeepSeek Harness (DSH) development ecosystem, everything is a plugin. As the number of plugins grows, relying solely on configuration files to manage dependencies, bundles, and enable/disable states becomes error-prone and inefficient. dsh-plugin-manager provides a visual management interface, addressing the pain points of viewing, enabling, disabling, and uninstalling plugins.

Plugin Overview

This is a client plugin maintained by HTUP1. It allows users to view installed plugins in the DSH settings panel and supports disable, enable, and uninstall operations. The UI automatically switches between English and Chinese according to the DSH interface language.

Core Features

Plugin List

In the “Plugin Management” page on the left side of the settings panel, you can see the name, version, installation method (pnpm marketplace or manual installation), and current enabled state of installed plugins.

Enable/Disable and Persistence

Plugins can be quickly disabled or enabled via buttons. Operations take effect immediately and are persistently written to the profile’s bundles registration list, so the state remains unchanged after restart.

Uninstall Mechanism

  • pnpm plugins: Completely delete the package files and remove the registration via dsh plugin remove.
  • Manually installed plugins: Remove the registration and disable the plugin, while the files in node_modules are retained.
  • Fallback handling: If deletion via the CLI fails, the operation automatically degrades to a “soft uninstall” (remove registration + disable) and displays an error message.

Status Hints and Self-Protection

The interface distinguishes intermediate states such as “disabled but restored after restart” and “registered but effective after restart” to avoid misleading users. In addition, the plugin marketplace (dshmarket) and the plugin manager itself are protected and cannot be uninstalled.

Installation and Enablement

This plugin is installed into profiles as a DSH plugin package:

  1. Place the plugin package under profiles\node_modules\dsh-plugin-manager.
  2. Register dsh-plugin-manager in both dependencies and dsh.profile.bundles in profiles\web\package.json.
  3. Restart dsh web (or install it via the marketplace).

Usage Examples

  1. Find the “Plugin Management” page on the left side of the DSH settings panel.
  2. View plugin information in the list.
  3. Click the “Disable” or “Enable” button to control whether the plugin runs.
  4. Click the “Uninstall” button (requires a second confirmation) to remove the plugin.

Technical Implementation and Notes

Runtime Environment

The plugin runs with trusted-host privileges and requires the host to provide loader, connection, slots, and locale services, as well as dsh-client-* client dependencies.

Security Design

  • Input validation: The plugin name parameter is validated against the TARGET_RE allowlist (^[A-Za-z0-9@:./_+-]+$).
  • Operation validation: Before uninstallation/disablement, the plugin is checked to be present in dependencies.
  • Error handling: All RPC responses use the unified { ok, value | error } structure, and exception details do not leak stack traces.

Repository and Source

For more details, see the plugin directory page or the GitHub repository.