DeepSeek Harness (DSH) is based on the Cordis architecture, with all features existing as plugins. Previously, enabling or disabling a plugin required manually editing ~/.dsh/cordis.patch.yml. The dsh-plugin-manager plugin adds a “Plugin Manager” tab under Settings → Plugins, providing visual toggle operations and status viewing.

Features

The Plugin Manager page mainly contains two sections:

  1. Custom Plugins

    • Expanded by default, it lists all non-official core components (module names not in the @deepseek-ai/* namespace).
    • Each plugin has a switch that supports immediate enabling or disabling without restarting DSH.
    • The switch state is written to the user-level patch layer ~/.dsh/cordis.patch.yml and persists after a restart.
    • Plugins installed later will automatically appear in this section.
  2. Core Components

    • Collapsed by default, it shows the mounting status of all core components (such as mounted, waiting for dependencies, or mount failed).
    • Protected by both the UI and the server side, the switch is disabled and the existing state cannot be changed.

Each entry displays the full module name, entry ID, enabled status, and running status indicator.

Installation

Installing with the DSH CLI bundles the plugin into the profile (pnpm) and automatically completes mounting using the dsh.bundle.patch layer declared in the package.

dsh plugin --profile web add github:big-lixin/dsh-plugin-manager

This command depends on the bundle layer stack. After installation, restart DSH once for the changes to take effect.

Manual Installation

Manual installation supports hot mounting and requires no restart.

  1. Copy the repository to ~/.dsh/profiles/web/node_modules/dsh-plugin-manager.
  2. Append the mounting entry to ~/.dsh/profiles/web/cordis.patch.yml:
    - insert:
        - id: plugin-manager
          name: dsh-plugin-manager
  1. After saving, the Host harness mounts it immediately. Refresh the browser page, and the “Plugin Manager” tab will appear under Settings → Plugins.

Usage

  • Enable/Disable: Toggle the switch for a custom plugin on the management page. The operation is written to the patch file immediately and takes effect.
  • Upgrade a plugin: Update the plugin via the CLI.
dsh plugin --profile web update dsh-plugin-manager

Notes

  • Disabling itself: This plugin itself also appears in the “Custom Plugins” section. Disabling it will make the management page unavailable. To recover, edit ~/.dsh/cordis.patch.yml and remove the corresponding mounting entry in the marker block.
  • Uninstall: To uninstall, remove the mounting entry from profiles/web/cordis.patch.yml (the hot uninstall takes effect immediately), then delete the package directory. If you previously disabled a plugin using the switch, it is recommended to clean up any leftover entries in the marker block of ~/.dsh/cordis.patch.yml after uninstalling.
  • Manual installation risk: A directory manually copied into node_modules is not managed by pnpm. If you later run pnpm install again on the profile, the directory may be cleared, and you will need to repeat the manual installation steps.

Conclusion

dsh-plugin-manager moves plugin configuration from the command line or editor to the Web interface, lowering the configuration barrier for DSH developers. To view the source code or submit an Issue, visit the GitHub repository.