Introduction

DeepSeek Harness (DSH) uses a plugin-based architecture. Third-party plugins are usually enabled or disabled by editing configuration files. This approach requires restarting the service and can easily cause inconsistencies between runtime state and persisted state. This article introduces a plugin that can manage plugin states directly from the Web settings page.

What This Is

dsh-plugin-control is a DSH plugin maintained by chenluyao680. It provides switches through the Web UI to control third-party plugins in the current Loader in real time and writes the state to the configuration file.

Core Features

  1. Instant enable/disable: Directly toggle a plugin’s enabled or disabled state in the Web interface.
  2. State persistence: Writes the configuration to the cordis.patch.yml file of the current Web Profile, so the state remains effective after restart.
  3. Error rollback: Automatically restores the configuration file if a toggle fails, avoiding inconsistencies between runtime state and persisted state.
  4. Safety protection: Locks @deepseek-ai/* core plugins and the control plugin itself to prevent loss of access to the Web interface or control entry point.
  5. UI support: Supports Chinese and English interfaces; prompts a page refresh after client module changes.
  6. Access control: Write operations only accept requests from the local loopback address.

Installation and Enablement

Install the plugin to the web Profile:

npx @deepseek-ai/dsh plugin --profile web add github:chenluyao680/dsh-plugin-control

After installation, restart the Web service to load the plugin:

npx @deepseek-ai/dsh web

In your browser, go to “Settings → Plugins → Enablement Management” to see the control switches.

Typical Usage

  • Switch states: A green switch indicates the plugin is enabled; a gray switch indicates the plugin is disabled.
  • Effective timing: Toggle operations take effect immediately in the host process. If browser modules are involved, refresh the page as prompted for the full effect to apply.
  • Scope limits: DSH core plugins are shown as protected only and cannot be disabled from this page; the control plugin cannot disable itself. To uninstall it, use the DSH plugin command.

Applicable Scenarios and Notes

  • Suitable users: Developers who need to frequently test different plugin combinations during development.
  • Security mechanism: All write operations are executed serially to avoid concurrent requests overwriting each other’s state; the configuration file is replaced using a temporary file.
  • Version compatibility: Current materials only mention verification on DSH 0.1.0-rc.6; support for newer DSH versions is not explicitly stated.
  • Uninstall note: Uninstalling the plugin does not automatically remove the third-party plugin enable/disable states previously written to cordis.patch.yml.

Short Summary

This tool simplifies the plugin management workflow through the Web interface and is suitable for developers who frequently test plugin enable/disable operations during development.