JiayuuWang/dsh-files-panel 预览 preview

JiayuuWang/dsh-files-panel

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

项目介绍Project Overview

dsh-files-panel 是 DeepSeek Harness 网页 GUI 插件,提供交互式终端、工作区文件树与语法高亮编辑,以及 tmux 式分屏;适合在 dsh web 中边聊天边操作 shell、浏览编辑文件和并列多会话。注意:它通过补丁修改核心包,需在指定提交的干净检出上安装构建;终端为轮询、固定尺寸且 TERM=dumb,文件与终端内容也不会提供给模型。

dsh-files-panel is a plugin for the DeepSeek Harness web GUI that adds an interactive terminal, a workspace file browser with syntax-highlighted editing, and tmux-style split panes. Use it in dsh web to run shells, inspect or edit files, and place multiple chats or tools side by side. Caveat: it installs by patching core packages on a clean checkout at a specific commit; the terminal is polled, fixed-size, and TERM=dumb, and terminal/file content is not sent to the model.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add github:JiayuuWang/dsh-files-panel

JiayuuWang/dsh-files-panel 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

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:

Feature What you get
Terminal A real interactive terminal tab beside Chat/Trajectory. Per-pane PTYs with a shell picker (Windows: pwsh / cmd; Linux/macOS: bash / zsh / sh).
File browser A workspace file tree with per-type icons and syntax-highlighted editing (save with conflict detection, Vim/Emacs keymaps, drag-resizable tree/editor split).
Split panes tmux-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

上一个 Prev dsh-opencode-go-provider 下一个 Next dsh-custom-logo