Introduction

DeepSeek Harness (DSH) uses a plugin-based architecture, and the Web UI itself focuses on conversational interaction. When developers debug agents or inspect working directories, they often need to browse files, preview content, or run commands directly. As an outbound plugin, dsh-plugin-workbench adds file browsing, file preview, and browser terminal capabilities to the DSH Web UI.

What Is This

This is a plugin that runs in the DeepSeek Harness Web UI, maintained by ghbhiee and released under the MIT License. It does not depend on an npm package; compiled files are distributed directly through the GitHub repository, and local development with hot updates is supported.

Core Features

The plugin provides the following core capabilities:
* File browser and search: Browse directory structures and search file names.
* File preview: View content in formats such as text, images, and PDFs.
* Browser terminal: Invoke a Shell directly from the Web interface.
* File reading, writing, upload, and download: Read, write, upload, and download files.
* Terminal protocol support: Implement terminal interaction via WebSocket.
* Security restrictions and sandboxing: Include access control, write restrictions, and path protection.

Installation and Activation

The plugin is not published on npm. The installation and development workflow is as follows:

  1. Install from GitHub
    dsh plugin --profile web add github:ghbhiee/dsh-plugin-workbench
  1. Local development
    After cloning the repository, use pnpm to install dependencies and perform type checking and building:
    pnpm install
    pnpm run check
  1. Configuration for enabling
    By default, write (writeEnabled) and terminal (ptyEnabled) features are disabled. You need to configure this in cordis.patch.yml for the Web profile:
    - id: workbench
      config:
        ptyEnabled: true
        readRoots:
          - /Users/me/notes
Configuration items:
*   `readRoots`: A list of additional absolute directories that the browser is allowed to read (empty by default).
*   `writeEnabled`: Allows write, upload, create directory, and similar operations.
*   `ptyEnabled`: Allows starting a Shell in the browser.

Typical Usage

After installation and configuration, the plugin exposes services through API endpoints. The main interaction methods include:

  • Directory listing: Get directory contents via GET /plugins/workbench/api/list?root=&path=.
  • File reading: Get text content via GET /plugins/workbench/api/read?root=&path= (UTF-8 is enforced).
  • File writing: Submit changes via PUT /plugins/workbench/api/write?root=&path=.
  • Terminal connection: Establish a terminal session via WebSocket WS /plugins/workbench/pty.

Use Cases and Notes

This plugin is suitable for scenarios where files need to be managed directly from a Web interface and Shells need to be run. When using it, note the following restrictions:

  1. Web Profile only: It must be loaded with the --profile web parameter.
  2. Default security policy: It is read-only by default; write and terminal features must be explicitly enabled.
  3. Size limit: File read/write operations are limited to 32 MiB.
  4. Root directory restriction: Create, rename, and delete operations cannot be performed in the root directory.
  5. Symbolic link restriction: Symbolic links cannot be used as write targets.
  6. Encoding restriction: Read content must be UTF-8 encoded; otherwise, a 415 error is returned.

Short Conclusion

dsh-plugin-workbench provides standard HTTP API and WebSocket terminal endpoints, adding full file-system operation capabilities to the DeepSeek Harness Web interface. Before installing, verify the source code and license, and enable the relevant features in the configuration as needed.

Catalog page | GitHub repository