Introduction

The core design philosophy of DeepSeek Harness is “Everything is a plugin.” As the community publishes more plugins under the GitHub dsh-plugin topic, manually managing the discovery, installation, and updating of these plugins becomes cumbersome. dsh-plug-manager is a plugin manager maintained by Casually. It provides a centralized Web interface to browse, search, and install these plugins, while also offering additional control capabilities through command-line tools and a local API.

Feature Overview

This plugin mainly includes the following features:

  1. Web UI Plugin Marketplace

    • Discovery and browsing: Supports searching GitHub repositories with the dsh-plugin tag. On the detail page, you can view Star counts, Topics, license, and README. The README is rendered securely, stripping potentially dangerous HTML tags and scripts.
    • Operations: Supports one-click installation, updating, and removal of plugins. Operations are executed directly by the host process, and output is displayed in real time.
    • Installed management: Lists bundle stacks and dependencies for each profile, and supports searching by name or source.
  2. Smart install source resolution

    • Automatic identification: Automatically identifies whether a plugin is an npm package or GitHub source code.
    • npm preferred: If a package with the same name as the GitHub repository has been published to npm, the npm package (prebuilt artifact) is preferred.
    • Source code handling: If it has not been published to npm, the tarball is downloaded from GitHub. Source-code dependencies run npm install inside the unpacked directory to prevent path resolution errors.
    • Compatibility: When detecting a pnpm 7 compatibility error on newer Node versions, it automatically switches to npm to complete installation.
  3. Proxy Support

    • Supports configuring a GitHub proxy over protocols such as HTTP, HTTPS, and SOCKS5.
    • Proxy source priority is: persistent settings > plugin configuration (config.proxy) > environment variables (DSH_PLUG_MANAGER_PROXY, HTTPS_PROXY).
  4. Agent Tools

    • Provides model-side commands: plug_install, plug_remove, and plug_update.
    • Permission control: UI operations do not require approval, but Agent tools ask for user approval before execution according to the sandbox policy.
  5. Local JSON API

    • Provides a series of loopback endpoints for querying status, submitting tasks (install/update/remove), restarting services, and so on.

Installation and Enablement

Installing this plugin requires pnpm to be installed in the host environment. If using the proxy feature, curl is also required.

Installation command:

dsh plugin --profile web add -w dsh-plug-manager

After installation, restart the DSH service to load the new bundle layer. After the restart, it can be used in Settings → Plugins → Plugin Marketplace tab.

Typical Usage

Install via Web UI:
1. Open the Web UI and go to “Plugin Marketplace”.
2. Search for the target plugin or browse the repository list.
3. Click a card to view the details, and after confirming, click “Request Install”.

Via Agent tools:
When the model invokes a tool, it will automatically consult the user.

# 安装插件(模型侧调用示例)
plug_install npm:example-plugin

# 移除插件
plug_remove example-plugin

# 更新插件
plug_update example-plugin

Direct command-line installation:

dsh plugin --profile web add -w dsh-plug-manager
dsh plugin --profile web add -w github:Casually/deepseek-harness-plugs-manage
dsh plugin --profile web remove dsh-plug-manager

Notes

  • Restart requirement: Whether installing, updating, or removing a plugin, the DSH service must be restarted for the changes to take effect.
  • Permission model:
    • Web UI operations are initiated directly by the user, equivalent to the user typing a command, and do not require additional approval.
    • Agent tools (plug_*) are sandboxed operations and will request user approval before execution.
  • Source execution: When installing plugins from a git source, the package’s prepare script may be executed. Make sure you trust the plugin’s source code.
  • Dependency environment: Requires pnpm and curl to be installed in the host environment.
  • Complete removal: Removing a plugin cleans up local files, dependencies, and source-code caches.

Appendix

  • GitHub repository: https://github.com/Casually/deepseek-harness-plugs-manage
  • Community catalog: https://www.skillhub.cn/plugins/Casually/deepseek-harness-plugs-manage