DeepSeek Harness (DSH) Web GUI provides powerful interactive capabilities, but file browsing often relies on external tools. Developers frequently need to view the directory structure of the current workspace directly within the interface. dsh-workspace-view aims to solve this problem. It is a workspace file browsing plugin for the DSH Web GUI.

Plugin Introduction

dsh-workspace-view is a DSH workspace file-tree drawer plugin maintained by user N5Tar. It is licensed under the MIT License and belongs to the client plugin category.

Features

The plugin mainly provides the following features:

  1. Full-height file tree drawer: Displays a file tree drawer on the right side of the page, expanded by default.
  2. Session association: Automatically switches to the workspace based on the current session without manual configuration.
  3. On-demand loading: Avoids recursively scanning the entire repository at startup. Contents are loaded only when a directory is expanded, reducing initialization overhead.
  4. Sorting and display: Directories are listed first, followed by files, sorted by name. Supports expanding and collapsing folders.
  5. Interaction controls: Supports refreshing the current file tree and showing or hiding dot files.
  6. UI optimization: When closed, it collapses into a narrow handle on the right side of the page. It provides Chinese and English interface text and uses DSH Theme Tokens to automatically adapt to the host theme.
  7. State handling: Built-in handling for loading, empty directory, no session, truncation, and error states.

Installation and Activation

Before using the plugin, you need to install dependencies, build the local package, and install it into the DSH Web Profile.

  1. Enter the plugin source directory and install dependencies:
    cd /path/to/dsh-workspace-view
    pnpm install
    pnpm run build
  1. Install it to the Web Profile:
    cd /path/to/deepseek-harness
    pnpm dsh plugin --profile web add /path/to/dsh-workspace-view
  1. Check the configuration:
    pnpm dsh --profile web --dump-config
  1. Start the Web GUI:
    pnpm dsh web

After starting, access the default address http://127.0.0.1:3080. If the Web GUI is already running, you need to restart the process to load the new plugin.

Configuration

The core plugin configuration is located in the cordis.patch.yml file and is used to control host-side scanning behavior.

Field Type Default Description
maxEntries number 500 Maximum number of entries returned to the Client per level (1–5000).
maxScannedEntries number 10000 Maximum number of directory entries scanned by the Host per level (1–50000), used to limit CPU and memory consumption for oversized directories.
maxConcurrentScans number 8 Maximum number of directory scans executed concurrently by the Host (1–64). Exceeding this limit returns HTTP 429.
ignoredNames string[] ['.git', 'node_modules'] File or directory names completely ignored by the Host.

Note: ignoredNames behaves differently from the hidden file toggle. Entries matching ignoredNames are not returned by the Host. Other dot files are still returned but are hidden in the interface by default. You can toggle their visibility from the drawer toolbar.

Usage and Limitations

  1. Read-only access: The plugin provides only read-only directory listing capabilities within the workspace scope. It does not provide file writing, deletion, renaming, or execution.
  2. Root directory determination: The workspace root directory is determined by the Host Session Store. The client cannot specify the root directory independently.
  3. Manual refresh: After file system changes occur, you need to manually refresh the file tree to see updates.
  4. Truncation handling: When a large directory reaches the configured limit, only some entries are displayed, and a truncation prompt is shown at the corresponding directory level.
  5. Layout impact: The drawer is implemented through shell.overlay, overlays the rightmost area, and does not participate in DSH core column width solving.
  6. Security model: The plugin uses path validation (realpath, relative) to prevent .. path traversal and symbolic link escape. However, a workspace that can be concurrently rewritten by untrusted local processes should not be treated as a strongly isolated sandbox.

Summary

dsh-workspace-view is a lightweight file tree browsing tool. By integrating into the right-side drawer of the DSH Web GUI, it addresses the developer need to view project structure in the Web interface. It supports on-demand loading, theme adaptation, and multiple languages, making it suitable for scenarios that frequently require filesystem interaction through the Web interface.

  • GitHub: https://github.com/N5Tar/dsh-workspace-view
  • Directory: https://www.skillhub.cn/plugins/N5Tar/dsh-workspace-view