After installing multiple plugin packages in a DeepSeek Harness (DSH) Web profile, users often encounter three problems: they do not know the plugin sources, they are unclear about the ownership of Loader or Cordis management, and temporarily switching configurations is error-prone. zaogaogwc/dsh-plugin-manager provides a Mod-style management interface for the DSH Web GUI, organizing scattered source packages, Loader instances, and Agent presets into an understandable, previewable, and reversible structure.
Plugin Overview¶
zaogaogwc/dsh-plugin-manager is a workflow-type plugin maintained by Zaogaogwc. It follows the MIT License. The plugin entry point is located under Settings → Plugins → Plugin Manager.
The core value lies in managing “whether enabled” rather than masquerading as “uninstalling.” Plugin files and npm dependencies are not deleted when disabled. It implements state changes by atomically writing to the dedicated managed section in ~/.dsh/cordis.patch.yml, and uses DSH’s official plugin-include watcher to perform hot reloading.
Core Features¶
Three-level browsing and source attribution¶
The manager restores the actual installation source and provides a three-level view:
1. Scheme or source package: Displays official/user Agent presets and installed source packages.
2. Function category: Grouped by file, terminal, planning, Web, settings, and other use cases.
3. Plugin instance: Displays actual Loader entries, configuration status, Cordis FiberState, and diagnostic information.
Safe enabling/disabling and change preview¶
- Safety policy: Individual plugins, categories, and entire packages can be enabled or disabled. All batch operations must first go through a change preview and be executed only after user confirmation.
- Atomic writes: Changes affect only the managed section in
~/.dsh/cordis.patch.yml. - History and undo: Keeps the most recent 20 change records and can undo the previous manager operation.
- Restore defaults: Clears only the disabled items managed by this tool and does not affect other tool configurations.
Status and diagnostics¶
The interface distinguishes configuration, Loader, Cordis, and manager-derived states:
- availability: live, configured, disposed, or declared.
- configState: Loader configuration-level enabled or disabled.
- fiberState: Cordis states such as pending, loading, active, and so on.
- status: Running, disabled, not running, or restart required.
- issue: Independent diagnostic information such as missing dependencies or load failures.
Mod enable/disable schemes¶
The enable/disable state of third-party plugins in the current Web profile can be saved as a named scheme (such as “Writing” or “Development”). A scheme records only state and does not copy files. A change preview is still displayed before applying it.
Agent preset generation¶
Create a new Agent preset based on any existing preset (official or user preset). The differential merge preserves the source preset’s proprietary tools, configuration, and comments.
AI-assisted filtering¶
Enter a natural-language requirement, and the AI can generate category or enable/disable suggestions. The results are only candidate schemes, and the user must enter the change preview and confirm again. If the AI service is unavailable, basic features remain usable.
npm source package updates¶
For identifiable npm registry third-party source packages, one-click updates are supported:
1. Query the latest version.
2. Display the version diff.
3. Back up the profile dependency manifest, lock file, and managed state.
4. Invoke the official DSH update command.
5. Roll back automatically on failure.
6. Mark “restart required” after a successful update.
Installation and enabling¶
After it is published to npm, run the following commands to install it:
dsh plugin --profile web add @zaogaogwc/dsh-plugin-manager
dsh web
After installation, open the Web UI (default http://127.0.0.1:3080) and go to Settings → Plugins → Plugin Manager.
Typical usage¶
Disable a plugin¶
- Expand the source package to view the package description and the actual number of plugins.
- Click “Disable”; the page automatically scrolls to the confirmation area.
- Review direct changes and dependency impacts.
- Confirm application and wait for the Loader to return to a stable state.
Save and apply a Mod scheme¶
- Adjust the current enable/disable state of third-party plugins.
- In “Mod enable/disable scheme,” enter a name and save it.
- When switching is needed, select the scheme and review the preview.
- After confirmation, it is applied by the watcher/Loader.
Create a new Agent preset¶
- Expand an official or user Agent preset.
- Click “Use as base for a new preset.”
- Adjust the required capabilities, and fill in the new identifier and display name.
- Generate and validate the preset.
Notes¶
- Permissions and security: All APIs that write files, call AI, or perform updates require loopback requests. When accessing the Web UI from a LAN address, these sensitive APIs return
403. Updates may run install scripts allowed by the target npm packages. - Disable and uninstall: Disabling does not uninstall, delete, or modify third-party package files. Uninstalling must be done by explicitly executing the DSH plugin removal command.
- Host components: Official host components and the manager itself cannot be disabled in this interface.
- Restart requirement: Plugin enablement/disabling is usually hot-reloaded by the watcher, but npm package updates involve Host and Client code consistency, so DSH must be explicitly restarted after completion.
- Diagnostics limitations: The manager displays observable state for the current profile and cannot replace low-level log diagnostics for DSH/Cordis.
Conclusion¶
This plugin addresses the confusion in DSH Web profile plugin management through structured views and safe change mechanisms. It is suitable for developers who need fine-grained control of plugin combinations or frequently switch work scenarios.