Adds a workbench to the DSH Web UI with chat, a syntax-highlighted editor, files and Git, terminal, browser, control plane, and model tools. Requires DeepSeek Harness 0.1.5 or newer; older hosts refuse installation.
This plugin line is adapted for DeepSeek Harness 0.1.5+, which ships the official right sidebar (ui-sidebar-right). Workbench panels (Git, Usage, terminal, browser, control plane, and more) dock into that host sidebar instead of only using the plugin’s own chrome.
On older harness versions you may still see an update available notice, but install is refused so your environment is not broken. Upgrade DeepSeek Harness to 0.1.5 or newer first, then install or upgrade this plugin.
A workbench plugin for the DeepSeek Harness Web UI. After Workbench is opened in Conversation, chat stays on the left. Two columns appear on the right: the editor (Agent Control Plane, syntax highlighting, and smart terminal) and the side dock for files, Git, the Usage panel, and the Ultra Slash panel.
Look for these first:
Usage — official API balance, this-machine observed spend, this-session tokens and context. Pin it above the left Settings button so you can see spend while chatting.
Agent Control Plane — the editor’s first tab by default. Two pages: Execution trajectory (timeline fishbone of user → LLM → tools → agent reply, with expandable I/O) and Capabilities (current-session agent model, tools, prompt sections, and session knobs). Toggle visibility in Settings.
Ultra Slash — slash commands that inject guidance without stopping the current turn. Manage them in the right dock; send them from the bottom group of the chat / menu.
Canvas — live React previews for product prototypes, dashboards, and custom visuals. Agent-written files live under .canvas/*.canvas.tsx in the workspace (not in IDE config folders). After a write, the workbench auto-opens the file in preview; switch to edit or split like Markdown. Send /canvas <topic> to steer the model without interrupting the turn.
Smart terminal — a local PTY in the editor. Real shell lines (including pasted $ ls) run as-is. Natural language is translated by AI command assist (<kbd>Alt</kbd>+<kbd>I</kbd> or the ✨ button) and typed into the current terminal. Notes are never executed. A blacklist blocks destructive commands the assistant would otherwise type. <kbd>Alt</kbd>+<kbd>J</kbd> opens another terminal tab.
Add to chat — hand the model anything without copying and pasting. Drag a file from the tree (or a DevTools network request) into the chat box; right-click terminal output to add the selection or recent output (with its pwd/shell context); or tap the point-and-pick button in the embedded browser and click a page element. Each lands as a reference chip in the input and rides along with your next message.
AI commit messages — in the right-dock Source Control tab, generate a message from staged changes; the text streams into the commit box. The template is editable.
Notification sounds — when a session finishes while you are away or is waiting on you (approval, plan confirmation, question), the workbench plays a chime. Pick one of 5 built-in Web Audio sounds or upload your own audio (mp3, ogg, wav, webm, m4a, flac, up to 50 MB); a loop reminder keeps replaying it every N seconds (default 10) until the item is handled. The master switch, sound picker, and loop interval live in the workbench Settings panel.
The workbench uses a three-column layout. Conversation stays on the left. The two columns on the right are the capability area: editor (Agent Control Plane, syntax highlighting, smart terminal) in the center; file tree, Git, Usage, and Ultra Slash on the far right. The right dock tabs are Files, Source Control, Usage, and Ultra Slash. The editor’s first tab is Control Plane by default.
Workbench layout. Three columns: Conversation on the left, editor and terminal in the center, files / Git / Usage / Ultra Slash on the right. A new session opens the workbench immediately. By default the editor is collapsed, the files sidebar is open, and usage is pinned above Settings. Columns can be resized, collapsed to icon rails, and restored. Collapse, the side-dock tab, and the usage pin are remembered globally across reload and new sessions.
Smart terminal. A local PTY. Real shell lines (including pasted $ ls) go straight to the terminal; natural language is translated and typed into the current shell. Notes are non-executable. A configurable blacklist blocks destructive commands the assistant would otherwise type.
Agent Control Plane. First editor tab (on by default; toggle in Settings). Execution trajectory shows a threaded feed with a left rail for each LLM round, tool call, and agent reply (expand for full I/O). Capabilities lists the current session agent’s model, tools, prompt sections, sub-agents, and session knobs you can adjust online.
Workspace editor. CodeMirror 6 with syntax highlighting, Plain / Emacs / Vim keymaps, Markdown edit / preview / split, Canvas edit / preview / split (React render of .canvas/*.canvas.tsx), image and spreadsheet previews, Git diffs, tabs, breadcrumbs, save and dirty-close guards.
Files. Tree browse, filter, hidden files, .gitignore marks, new / rename / delete, and open in a local editor (Cursor, VS Code, and others).
Git. Status, stage, commit (including streamed AI messages), fetch / pull / push with safety checks, branches, merge, restore, commit graph, git init, and model-facing git_* tools.
Usage panel. Official API balance, this-machine observed spend, this-session tokens and context. Open the right-dock Usage tab, or pin the panel above the left Settings button (including the collapsed icon rail). The status bar always shows the balance next to Feedback.
Ultra Slash panel. Slash commands that inject guidance into the next model step without interrupting the current turn. Open the right-dock Ultra Slash tab to manage them; type / in chat and pick from the bottom Ultra Slash group. Built-in: /steer, /new, /skill, /docs, /canvas. Custom /name shortcuts are stored on this machine and shared by every session.
Status bar. Open-file tabs, balance, Feedback, version / upgrade, workspace path, branch, dirty count, editor mode.
Maintenance & privacy. In-UI upgrade checker, Chinese / English UI, and redaction of tokens in paths and errors.
Opens as soon as you create a session; no first message required
Header Workbench button shows or hides the whole workbench
Drag column widths; double-click a sash to reset; widths are remembered
Collapse Conversation, editor, or the right dock into a narrow icon rail
Editor
Multi-file tabs; save; unsaved indicator; confirm before closing dirty files
Close all / others / left / right
Path breadcrumbs
Syntax highlighting: JavaScript, TypeScript, JSX, TSX, JSON, HTML, CSS, Markdown, Python, XML, YAML; other files stay plain text
Keymaps: Plain / Emacs / Vim from the status bar; the choice persists; Emacs is the default so typing is insertion, not Vim normal mode
Vim mode: visual selections render properly (v / V / <C-v>); :w saves, :q closes the tab, :qa closes all, :x / :wq save and close, :vs / :sp split left-right / top-bottom, :only unsplits; append ! to force (skip unsaved-change confirmation)
Editor split: :vs / :sp splits only the editor body into two file views — the toolbar and tab bar stay single, nothing is duplicated; the split pane's tab is underlined, clicking a tab switches the focused pane's file; drag the sash to resize, :only or the "Unsplit" toolbar button merges back
Editor → chat: a floating "Add to chat" button appears on selection; the toolbar and the tab right-click menu can add the whole file — the same official composer chip as terminal / network refs, with the file path as context
Markdown: edit, preview, or split; GFM; http(s) and workspace-relative images; Mermaid fenced blocks (flowchart, sequence, state, class, ER, XY chart via beautiful-mermaid); workspace file links open in the editor; unsafe links are blocked
Canvas: .canvas/<name>.canvas.tsx under the workspace root; edit / preview / split like Markdown; host transpiles TSX, browser mounts a self-contained React component; auto-open in preview after Agent write/edit; manual open from the file tree defaults to preview too
Git working-tree diffs and commit diffs open as editor tabs
Table preview: csv, tsv, xlsx (UTF-8, then GB18030 if the file looks garbled). .xls is recognized but opens in an external app
New empty file; new terminal tab (<kbd>Alt</kbd>+<kbd>J</kbd>)
Agent Control Plane
First editor tab (Control Plane / Agent Control Plane). Toggle under Settings → Agent control plane; on by default
Execution trajectory (default): chronological user messages, each LLM round (expand for tools and agent reply), context injections, and more; left rail with blue / purple / orange fishbone lines; foldable rows with full tool I/O
Capabilities: current-session agent inventory — model, tools, prompt sections, sub-agents, environment plugins; overview stats on top, trajectory-style list below with adjustable knobs
Toggle hidden files; .gitignore ignored files are marked
Filter by file name
Open a file or the whole workspace in Cursor, VS Code, VS Code Insiders, VSCodium, Windsurf, Zed, or the system default (only apps that are actually installed)
Truncation notice when a folder is too large to list in full
Git
git init plus user.name / user.email when the folder is not a repo
Staged / unstaged / untracked lists
Stage, unstage, and whole-section actions
Discard unstaged edits or delete untracked files (with confirmation)
Open a file diff in the editor
Commit, commit all, <kbd>Ctrl</kbd>+<kbd>Enter</kbd>
Streamed AI commit messages; customizable template
Fetch / pull / push. Dirty tree, behind remote, detached HEAD, and missing upstream block the unsafe click. No --force
Pull mode: merge / fast-forward only / rebase. Push mode: normal / force-with-lease
Switch branch, create and switch, merge (conflicts abort cleanly)
Adds an `@` path picker to the DSH Web composer for searching workspace files and directories. It inserts relative-path references without reading file contents. Newer DSH releases include built-in `@file` and `@session`; this plugin is maintained on a best-effort basis.
Provides a full-screen terminal interface for DeepSeek Harness sessions, tools, and agents, with session management and model controls; requires Node.js and DSH.