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:
- Install from GitHub
dsh plugin --profile web add github:ghbhiee/dsh-plugin-workbench
- Local development
After cloning the repository, use pnpm to install dependencies and perform type checking and building:
pnpm install
pnpm run check
- Configuration for enabling
By default, write (writeEnabled) and terminal (ptyEnabled) features are disabled. You need to configure this incordis.patch.ymlfor 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:
- Web Profile only: It must be loaded with the
--profile webparameter. - Default security policy: It is read-only by default; write and terminal features must be explicitly enabled.
- Size limit: File read/write operations are limited to 32 MiB.
- Root directory restriction: Create, rename, and delete operations cannot be performed in the root directory.
- Symbolic link restriction: Symbolic links cannot be used as write targets.
- 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.