Introduction

DeepSeek Harness uses a plugin-based architecture, with plugins as the primary way to extend functionality. In practice, developers often need to install, update, or uninstall plugins for a specific Profile. Manually handling configuration files or dependency package managers is cumbersome and can easily introduce inconsistencies. This plugin aims to provide a Profile-level plugin management interface for DSH, simplifying the above operations.

Core Features

This plugin provides a complete plugin lifecycle management capability.

  • Multi-source support: Supports installing plugins from npm registries, npm aliases, Git, GitHub, remote tarballs, absolute local directories, and file:/link: sources.
  • File upload: Provides a file selector and supports uploading and retaining installation packages in .tgz, .tar.gz, and .tar formats.
  • Version control option: Provides a “skip new-version waiting period” option, disabled by default. If the user selects it, the current operation appends the --config.minimumReleaseAge=0 setting, while other supply-chain checks remain unchanged. When pnpm rejects the operation due to the waiting period, the interface suggests a solution.
  • Dependency management: Supports updating or uninstalling direct dependencies of the current Profile. Updating allows reselecting the source (npm, Git, remote tarball, local directory, or compressed package); uninstalling automatically disables the waiting period to avoid lock-file blocking.
  • Self-update: Provides self-update functionality for the plugin, reusing the same dialog and waiting-period option. After updating, it validates dependency status and disables operations before restart.
  • Log handling: Diagnostic logs use a bounded retention policy and automatically remove sensitive information such as Authorization, Cookie, token, and passwords before storage.

Installation and Enablement

Before installing, make sure the current runtime environment is DeepSeek Harness 0.1.1-rc.2.

  1. Run the installation command:
    dsh plugin --profile web add github:qipenglin/dsh-plugin-manager
  1. Start the Web interface:
    dsh web
  1. In the browser, go to “Settings → Plugins → Plugin Manager”. The manager only operates on the current Profile that loaded it, and the Profile must be restarted for the operation to take effect after success.

Notes

  • Profile scope: The manager only operates on the current Profile that loaded it. If the current Profile cannot be reliably identified (for example, if the desktop host does not provide desktopProfiles.current), the plugin refuses to start.
  • Restart required: For installation, update, or uninstall operations, after success the Host displays a clear status (such as “Installed, takes effect after restart”) and prompts for a manual restart. When the Host loads, it consumes the restart flag and does not hot-reload.
  • Environment limitations:
    • The desktop host must provide both the desktopProfiles.current and desktopPnpm.runPlugin interfaces; otherwise, it cannot integrate properly.
    • Passing a private registry token through Host environment variables is not supported; handle it in Host secrets or package manager configuration instead.
  • Security:
    • If WebAccess is not enabled, the WebServer is only allowed to bind to 127.0.0.1. If it binds to 0.0.0.0, the plugin refuses to start.
    • The CLI provider removes sensitive information (such as API keys, tokens, and passwords) from the child process environment.

Summary

This plugin provides an intuitive management tool for Profile development and debugging in DeepSeek Harness, supporting multiple plugin sources and complete update/uninstall workflows. It safeguards operation security through bounded logs and sensitive information cleanup.

For more information, visit: GitHub repository or plugin directory.