The design philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” In Web interaction scenarios, core features often cover only basic conversation. Requirements such as file transfer, advanced retrieval of historical sessions, and local resource monitoring are usually supplemented through external plugins. The dsh-user-addons plugin introduced below is a Web plugin maintained by community developer Yur0918, aiming to add file processing, session archiving, and performance monitoring capabilities to the DSH Web interface.

Plugin Positioning

dsh-user-addons is an open-source community plugin licensed under the MIT License. It does not modify DSH core files, but is provided as an independent package that offers extensions for both the Host and Web clients. The plugin is loaded through DSH’s plugin/package mechanism, and its core value lies in filling gaps in Web-side file operations and session management.

Core Features

The plugin primarily provides the following capabilities:

  • File upload and attachment handling: Supports drag-and-drop file uploads in the Web composer. The system automatically detects whether the currently selected model supports image input; if supported, images are sent directly as attachments; if not supported, files are saved locally and attached via path reference.
  • Session archive management: Provides an archive manager that allows users to find, archive, and restore sessions. Starting with version 1.3.0, new “preview” functionality (read-only viewing without restoring a session) and “full-text search” functionality (matching decoded content in conversation logs, not just titles) were added.
  • Model and token usage dashboard: Aggregates local model invocation and token usage data from the ~/.dsh/sessions directory.
  • Image capability detection: Exposes an interface to the Web client for determining whether the current model has image input capability, thereby determining the attachment handling strategy.

Installation and Enablement

Installing this plugin requires the following prerequisites:
* Node.js 22.19 or a newer version is installed.
* The DSH Web configuration file has client module loading enabled.

The installation steps are as follows:

  1. Install this package using the plugin/package mechanism supported by the DSH configuration file.
  2. Restart the Web configuration file to ensure the plugin can discover metadata and the lib/client.js bundle file.
  3. Ensure the installed lib/client.js file exists (if using a source checkout, build it first).

After installation, the package declares the following injection content:

{
  "dsh": {
    "client": {
      "platform": "web",
      "inject": [
        "@deepseek-ai/dsh-client-locale"
      ]
    }
  }
}

Typical Usage

The plugin registers same-origin /addons/* routes on the Host side. The main interfaces include:

GET /addons/health
GET /addons/archive/list
POST /addons/archive/archive
POST /addons/archive/restore
GET /addons/image-capability
POST /addons/upload
GET /addons/usage/summary

During development or debugging, the following command can be used to run code checks:

npm run check

Notes

  • File limits: The upload file size limit is 100 MiB, and file names are sanitized before being written to the DSH main directory.
  • Data source: Usage data is read directly from local DSH session logs, and the plugin itself does not make any network requests.
  • Privacy and security: Do not commit session logs, uploaded files, credentials, generated task statuses, or backup files to version control systems.
  • Compatibility: Ensure that the DSH Web environment is compatible with the Node.js version currently used by the plugin.

By supplementing commonly used Web-side file management and session retrieval capabilities, this plugin lowers the barrier to everyday interaction and development debugging in the DSH environment. For more details, see its GitHub repository.