Git-first file-tree sidebar for the DSH web GUI: VS Code-style indent guides, M/A/U/D/R git decorations, HEAD-vs-worktree diff preview, media preview, and drag-to-reference (files/folders/selected code with line numbers) — pure plugin.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:No-PRM/dsh-explorer
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
dsh-explorer
A file-tree sidebar for the DeepSeek Harness web UI. A blue round button on the right edge opens a drawer with the current workspace's files — lazy-loaded and virtualized, so even big directories stay responsive.
The plugins only add UI and a few read-only routes. Nothing in the shipped dsh packages is touched, so dsh updates shouldn't break anything.

What you get
- A right-side drawer (drag the edge to resize) with a floating blue toggle; open state and width are remembered
- VS Code-style indent guides, hover highlights the active line
- Git status at a glance: M/A/U/D/R letters in a right-aligned column, tinted filenames, dirty dots on folders, struck-through rows for deleted files, gitignored entries dimmed
- Modified files get a git diff view (HEAD vs working tree, side-by-side) right in the preview
- Click a file to preview it — text opens in CodeMirror (Ctrl+F gives a VS Code-like find bar), images/video/audio/PDF play inline
- Drag any file/folder (or selected code from the preview, which becomes
path:from-to) into the chat input — inserts a reference and shows a removable chip above the composer - Search (skips .git and node_modules), expand/collapse-all, auto-refresh every 1.2 s
Two packages
| package | what it does |
|---|---|
dsh-explorer |
Host side (Node). Serves the read-only /filetree/* API: directory listing, file read, search, git status, raw media streaming. No dependencies. |
dsh-client-ui-explorer |
Browser side (TS/TSX). The toggle, the drawer, and everything you see. |
Both follow the official dsh plugin contract. Wiring and deployment details live in dsh-plugins/README.md.
Install
You need both halves. One-line bundle install:
dsh plugin --profile web add "github:No-PRM/dsh-explorer#main&path:/dsh-plugins/dsh-explorer"
dsh plugin --profile web add "github:No-PRM/dsh-explorer#main&path:/dsh-plugins/dsh-client-ui-explorer"
# restart dsh
(Dev machine: keep the junction + cordis.patch.yml insert-row setup — don't run the bundle commands in the same profile.)
Manual (dev, no restart): copy the two packages into the profile's node_modules and add them to its cordis.patch.yml:
- insert:
- id: filetree
name: dsh-explorer-v1
- id: ui-filetree
name: dsh-client-ui-explorer
Restart dsh — or bump the host package name (v8, v9…) to avoid the restart. The browser bundle is self-contained; no npm install needed to run it. Full steps: dsh-plugins/README.md.
Development
cd dsh-plugins/dsh-client-ui-explorer
npm run dev # watch + sync into the running profile
npm run bundle # one-shot minified build
npm run types # generate lib/types/*.d.ts
npm run typecheck
Host changes go into dsh-plugins/dsh-explorer/lib/index.js; copy it into the profile under a bumped package name to reload without restarting.
Docs
- dsh-plugins — architecture, install, deploy (中文: README.zh-CN.md)
- dsh-client-ui-explorer (中文: README.zh-CN.md)
- dsh-explorer (中文: README.zh-CN.md)
MIT
Links
More in this category
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2775
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
omdsh-dev/DSH-better-sidebar★ 1305
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
ccch1mneyyy/dsh-TUI★ 1293
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/dsh-at-file★ 225
Codex-style `@file` mentions: search workspace files in the composer and attach their contents to prompts.
huiliyi37/dsh-tianshu-tui★ 174
A terminal UI (TUI) for DeepSeek Harness.
Nagi-ovo/dsh-visualize★ 126
In-conversation generative UI: the model renders interactive HTML cards into the chat stream, with streaming preview and sandboxed rendering.