Introduction

DeepSeek Harness (DSH) Web is built on a plugin-based architecture, and the official UI provides basic file-browsing capabilities. dsh-v-explorer is a right-sidebar extension plugin for the official UI, maintained by user victor10035445. It takes over the official files page type through the plugin mechanism, delivers an enhanced file-tree experience, and adds the bookmarks page type along with line-range reference excerpt functionality. The plugin uses a purely incremental model; uninstalling it or downgrading restores the official behavior.

Core Features

1. Files tab takeover

The plugin takes over the official file-tree page and provides directory lazy loading, context menus, and file preview.
- Operation logic: Clicking a file triggers the official preview; clicking a directory only expands or collapses it.
- Context menu: Supports opening the containing directory, copying the path, inserting into the conversation, adding a bookmark (★), and opening HTML files in the default browser.
- File display: Hidden files starting with . are displayed as usual (bookmarking is not available).

2. Bookmarks tab

A new bookmarks page type is added to manage file references for the current session.
- Session scope: Bookmarks are bound to the current session; refreshing or switching sessions resets the bookmark state.
- Persistence and sync: Bookmark data is persisted to <cwd>/.dsh-v-explorer/bookmarks.json, and changes are synchronized in real time across tabs via the SSE protocol.
- Invalidation marking: When a source file is deleted, its bookmark is retained and displayed with a strikethrough.
- Limits: The bookmark limit is 100 entries, with idempotent deduplication supported.

3. Change-feed automatic refresh

The plugin builds a change feed on top of the official ChangeFeed mechanism to maintain synchronization for the file tree and bookmarks.
- Refetch strategy: Expanding a directory triggers a 500ms debounced silent refetch.
- Removal strategy: When a file disappears from a directory, the corresponding bookmark or tree node is removed immediately.

4. Automatic expansion and layout

Each time a session is entered, the plugin automatically expands the official right sidebar and opens the files and bookmarks page types by default.
- Width control: The default width is fixed at 300px (previously the official viewport was too wide at 45%; the plugin corrects this contract through the interface).

5. Line-range reference excerpts

A syntax for referencing specific ranges of a file is provided, making it easy to include code snippets directly in a prompt.
- Syntax: <path>#start-end.
- Mechanism: Captured via agent/pre-step; when sending, a corresponding composer chip is generated.

6. Preview renderer

The plugin takes over the rendering logic for the official preview.
- Supported themes: Markdown Reader Pro theme.
- Supported formats: Pretty-printed JSON rendering.

Installation and enablement

Install it using the DSH CLI. Ensure the environment meets the minimum version requirement.

Minimum DSH version: 0.1.5-rc.2

# 安装插件
dsh plugin --profile web add "github:victor10035445/dsh-v-explorer"

Data directory notes:
The plugin creates a .dsh-v-explorer/ directory in the workspace root. This directory is excluded from Git via .git/info/exclude, so it has no perceivable impact on the Git workspace (idempotent, zero workspace changes).

Typical usage

After installation, the new bookmarks page appears in the right sidebar of the Web UI.

  1. Use the reference syntax: Use the <path>#start-end syntax in the input box to send a specific line range from a file as context.
  2. Manage bookmarks: Right-click in the files tree body or the bookmarks subtree, then choose “Add bookmark ★” or “Toggle expanded state”. Invalid bookmarks are displayed with a strikethrough on the bookmarks page.
  3. View changes: The file tree automatically refreshes according to the change feed, and disappeared nodes are removed immediately.

Applicable scenarios and notes

  • Target users: DSH Web users, especially developers who frequently cite file snippets or manage local code bookmarks.
  • Permissions and security: The plugin runs within the permission context of the current DSH process. File path reads are validated using lexical checks plus realpath resolution; out-of-bounds access is blocked (403), and file reads are capped at 10MB, including binary detection.
  • SSE notes: SSE communication only broadcasts bookmark change events and does not carry session-sensitive information such as file paths.

Short conclusion

dsh-v-explorer fills the gaps in DSH Web’s file browsing, bookmark management, and code-snippet reference capabilities through a plugin. By taking over official components rather than replacing the UI, it maintains compatibility with the DeepSeek Harness ecosystem. For more details and the source code, see the plugin directory or the GitHub repository.