DeepSeek Harness (DSH) uses a plugin architecture, and the default sidebar workspace view is relatively basic. For developers who need to manage multi-directory workspaces or frequently switch between the file tree and conversations, this view limits operational efficiency. The dsh-multi-root-explorer plugin aims to replace the workspace area in DSH’s native sidebar, turning it into a dual-tab multi-root browser: on the left is a conversation tree grouped by actual working directories, and on the right is a read-only resource tree for previewing files.

Plugin Overview

dsh-multi-root-explorer is a DSH client plugin maintained by developer Nethur-auro. It does not depend on additional runtime libraries and uses only the React bundled with DSH’s client module loader.

The core value lies in:
1. Fixed multi-root workspaces: Imported directories remain fixed and are not recalculated when sessions are added or removed.
2. Conversations as a directory tree: Each conversation’s actual working directory (cwd) is displayed as a folder structure.
3. Resource tree synchronization: The read-only resource tree is loaded on demand, detects disk changes in real time, and refreshes only the levels that actually changed.

Core Features

Fixed multi-root workspaces

Imported directories remain fixed and are not automatically recalculated based on session context, as in the native view.

Conversations as a directory tree

Each conversation is assigned to the corresponding folder based on its actual cwd. Conversations located outside the workspace root can be retained as anchors; conversations without a cwd are grouped separately.

Resource tree (read-only)

The resource tree uses on-demand loading and pagination, so opening large-capacity drives does not trigger a full disk scan. Clicking a file opens it in DSH’s native right sidebar without affecting the current conversation position.

Disk change detection

The resource tree periodically detects disk changes in already loaded directory levels and re-fetches only the levels that actually changed. Levels that were manually expanded are not collapsed as a result.

Unified selection mechanism

The plugin introduces a “selection mode” (enabled via the eye button). In this mode, selecting a folder selects its entire subtree; selecting a child node excludes that node (equivalent to selecting the node’s siblings under the parent); double-clicking a selected folder submits an empty folder. All operations are read via the Host, and unexpanded folders can also be selected correctly.

Folder operations

Right-click any folder or click the trailing ··· button to:
* Start a new conversation in that directory (the title is left empty and will be named by DSH’s titleer based on the first message).
* Open the directory in the system file manager.
* For the resource tree, copy its absolute path.

Drag-and-drop references

Drag a row from the resource tree into the conversation editor to generate a native “atomic reference” (file icon, file name, business color), with the same effect as selecting a candidate file from the @ menu.

@ menu override

DSH’s native file completion index is limited to the current conversation directory. This plugin registers its own @ source and covers all registered workspace roots, providing a more comprehensive file index.

Honest working status

Status cards and row icons display not only the primary agent’s status, but also whether sub-agents are still working and whether the objective is still in progress.

Native archiving support

It supports archiving and unarchiving conversations through DSH’s own services, with a clear distinction between archived status and permanent deletion.

Survival after Uninstallation

While the plugin is running, directories that host regular conversations are registered as native DSH workspaces. Even if the plugin is disabled or uninstalled, these workspaces and their associated conversations do not disappear.

Installation and Enablement

This plugin requires DeepSeek Harness version >= 0.2.0-rc.1, and the browser must support the Popover API (element.showPopover). After installation, you must restart both the DSH application and the Host to load the routes.

Please choose one of the following commands based on your environment (replace <your-profile>):

dsh plugin --profile <your-profile> add dsh-multi-root-explorer

Or get the latest build from the GitHub release page:

dsh plugin --profile <your-profile> add https://github.com/Nethur-auro/dsh-multi-root-explorer/releases/latest/download/dsh-multi-root-explorer.tgz

Or install the source directly from the Git repository (always points to the main branch):

dsh plugin --profile <your-profile> add git+https://github.com/Nethur-auro/dsh-multi-root-explorer.git

After installation, the sidebar workspace area should display two tabs: 对话 / Conversations and 资源 / Resources. If the area has not changed, make sure that DSH has been restarted.

Typical Usage

  1. New conversation: Right-click any folder in the conversation tree and select “Start a new conversation in this directory”.
  2. Insert file reference: Find the target file in the resource tree, drag the row into the conversation input box, and release the mouse button to generate the reference.
  3. Submit an empty folder: Select a folder in the conversation tree, then double-click the folder. The folder is selected and submitted as empty content (at this point, its child nodes remain selected).

Use Cases and Considerations

  • Status: The plugin is currently in preview. The automated test suite has passed, but real-time runtime acceptance testing has not yet been performed for every DSH build.
  • Security restrictions: The plugin provides services via HTTP routes and rejects non-loopback ports, non-loopback Host headers, and cross-origin requests.
  • Ecosystem note: This plugin is part of the DSH ecosystem and has no official affiliation with DeepSeek or High-Flyer.

With this plugin, developers can manage directory-based conversation structures more clearly and achieve a smoother experience between file operations and conversation interactions.

Plugin Catalog | GitHub Repository