Back to home@JiayuuWang

dsh-files-panel

DeepSeek Harness web GUI file panel plugin: browse and edit workspace files in-browser (Monaco editor + vim/emacs keymaps).

Stars
0
Language
TypeScript
Created
Aug 16, 2026
Updated
Aug 17, 2026

Introduction

dsh-files-panel

Layout overview

Interactive terminal, workspace file browser, and tmux-style split panes for the DeepSeek Harness web GUI (dsh web).

This plugin extends the DeepSeek Harness browser surface with three features:

FeatureWhat you get
TerminalA real interactive terminal tab beside Chat/Trajectory. Per-pane PTYs with a shell picker (Windows: pwsh / cmd; Linux/macOS: bash / zsh / sh).
File browserA workspace file tree with per-type icons and syntax-highlighted editing (save with conflict detection, Vim/Emacs keymaps, drag-resizable tree/editor split).
Split panestmux-style panes: recursive split right/down, per-pane fullscreen, draggable dividers, sizes that follow the window. Splitting a Chat pane starts a new session side by side, and each chat pane gets its own input box sized with the pane.

Install

The plugin is a set of packages inside the deepseek-harness monorepo. It modifies core packages, so it is installed by applying the cumulative patch to a clean checkout and building with the app — three ways, from easiest to most manual:

1. npm (recommended) — no need to clone this repo (package: @jiayuw/dsh-files-panel):

npx @jiayuw/dsh-files-panel <deepseek-harness checkout>

The npm package ships the patch and an installer bin: it validates the checkout, applies patch/dsh-files-panel.patch (skipped when already applied), then runs pnpm install and pnpm run build. (--apply-only skips the build for a dry check.)

2. Installer scripts from this checkout:

# Windows PowerShell:  .\install.ps1 <deepseek-harness checkout>
# Linux/macOS/Git Bash: ./install.sh  <deepseek-harness checkout>

3. Manually — in a deepseek-harness checkout at base commit 47f943859b:

git apply path/to/dsh-files-panel.patch
pnpm install
pnpm run build
pnpm dsh --profile web   # do NOT use npx @deepseek-ai/dsh web

Open the printed URL (default http://127.0.0.1:3080) and hard-refresh (Ctrl+F5).

Usage

  • Open a session → the Terminal tab opens a live shell; the toolbar lets you pick the shell and restart it.
  • The folder icon in the session header opens the workspace file browser.
  • Each pane's thin toolbar has split right, split down, fullscreen, close. Focus a pane, then click the top tab to switch its view (Chat / Trajectory / Terminal). A split chat pane has its own input box; closing a pane re-flows the rest to fill the grid.

Full usage: docs/USAGE.md · docs/USAGE.zh.md(中文)

Repository layout

patch/dsh-files-panel.patch   the single cumulative patch (everything above)
package.json, bin/            npm package (@jiayuw/dsh-files-panel) — the npx installer
install.ps1 / install.sh      one-command installer (apply + pnpm install + build)
src/packages/                 the plugin source, mirroring the monorepo packages/ layout
assets/layout.png             the layout screenshot shown above

src/packages/ mirrors the harness monorepo paths, so each file's location tells you where it belongs:

  • host/web-terminal, host/web-terminal-local — terminal capability seam + local provider
  • host/workspace-files, host/workspace-files-fs — workspace file seam + provider
  • host/apiproxy/src/api/{terminal,files}.* + fetch/* — the terminal.* / files.* wire domains
  • client/ui-terminal, client/ui-files — the browser Terminal and file-panel views
  • client/ui-conversation — the split-pane grid, pane store, and cross-session panes
  • client/ui-slots, client/web-react, client/runtime — framework additions (SessionBoundary, provideInfoOf)
  • client/tsdown.client.ts, bundle/web-app — build + registration

Limitations

  • Terminal output is polled (~60 ms), not streamed; fixed size, TERM=dumb (no color / full-screen programs yet).
  • A split grid shares each session's chat state across panes of that session.
  • The file tree and terminal are human-facing only; their content is not fed to the model.

License

MIT