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_modulesare 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:
- Place the plugin package under
profiles\node_modules\dsh-plugin-manager. - Register
dsh-plugin-managerin bothdependenciesanddsh.profile.bundlesinprofiles\web\package.json. - Restart
dsh web(or install it via the marketplace).
Usage Examples¶
- Find the “Plugin Management” page on the left side of the DSH settings panel.
- View plugin information in the list.
- Click the “Disable” or “Enable” button to control whether the plugin runs.
- 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_REallowlist (^[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.