Foreword

DeepSeek Harness (DSH) uses a plugin-based architecture, allowing functionality to be extended within a Web Profile. Viewing local file structure or contents during a session usually requires switching browser tabs or sending a message to the Agent. The dsh-workspace-files plugin provides a file browsing panel directly beside the session interface without interrupting the current workflow.

Plugin Introduction

This plugin is maintained by Momojie-S. It provides a resizable file tree on the right side, recursive file search, Markdown and multilingual code highlighting preview, and remote file download capabilities. The plugin is open-sourced under the MIT license.

Core Features

  • Session title bar toggle: Clicking the button in the title bar opens or closes the panel.
  • Resizable file tree: The width of the right-side file tree can be adjusted between 240px and 900px.
  • Recursive search: Supports recursive filename search across the entire workspace and automatically skips the .git and node_modules directories.
  • Content preview: Supports Markdown rendering (headings, lists, tables, code blocks, links, images) and syntax highlighting for various text files.
  • Floating window zoom: Double-click a file to preview it enlarged and centered in a floating window; close with the Esc key or by clicking the overlay.
  • Remote download: Supports downloading remote (domain/local area network) files directly to local storage.

Installation and Enabling

Before installing, ensure the environment meets the requirements: DeepSeek Harness >= 0.1.0-rc.6 (Web Profile), and Node.js >= 20 during the build.

dsh plugin --profile web add @momojie-s/dsh-workspace-files

During the initial build, add the allowBuilds permission to the Profile’s pnpm-workspace.yaml.

After installation, click the “🗂 Files” button in the DSH session title bar to load the panel.

Usage

  1. Browse files: In the file tree on the left, click a directory to expand or collapse it. Single-click a file to preview it on the right; double-click a file to view it enlarged and centered in a floating window.
  2. Search files: Enter a keyword in the search box and press Enter to perform a recursive search across the entire workspace. Press the Esc key to return to the file tree.
  3. Adjust the panel: Drag the left edge of the panel to adjust its width; click the “›” button in the middle of the left edge to collapse the panel.
  4. Download files: Click the download button in the title row of the preview bar or the title row of the floating window. For binary files or files that exceed the preview limit, a download link is also provided next to the prompt message.

Configuration

Behavior can be adjusted by patching the config field. The main configuration items are as follows:

Field Default Description
maxReadBytes 1000000 Maximum bytes to read for a single file preview; files exceeding the limit are not previewed.
maxDownloadBytes 200000000 Maximum bytes for downloading a single file; requests exceeding the limit return 413.
maxSearchNodes 4000 Node budget for recursive search (files + directories).
maxSearchMatches 300 Maximum number of search result entries.
skipDirs ['.git', 'node_modules'] Directory names skipped in the file tree and search.
trustedHosts [] Allowed list of non-loopback host[:port] values. This must be configured for remote domain/local area network access; otherwise, all routes return 403.

Example remote deployment configuration (overrides the bundle line):

- id: workspace-files
  config:
    trustedHosts: ['dsh.example.com']

Status and Recommendations

⚠️ The plugin has been deprecated (2026-09-11)

DSH versions 0.1.5 and above include an officially built-in file panel with equivalent capabilities (its ID conflicts with this plugin, so they cannot coexist). The official sidebar file panel (ui-sidebar-files file tree + ui-sidebar-documentpreview preview) covers the main use cases.

  • DSH 0.1.5+: Please use the official built-in panel directly.
  • DSH 0.1.2-rc.1 or earlier: You can continue to use this plugin.

The plugin is no longer maintained. Please check the source code and license before installing.