Install
Inside DeepSeek Harness, with dsh-market
dsh plugin --profile web add dshmarket
Or from the command line
dsh plugin --profile web add dsh-vscode-workbench
Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.
README
Highlights
- One local workbench: explorer, Monaco editor, search, Git, terminal, and DSH conversation in one VS Code-style interface.
- Complete file experience: open text, Markdown, images, PDF, and Word files directly; the tree supports drag-and-drop uploads and common file operations.
- Reliable and live: atomic saves and revision checks prevent silent overwrites, while WebSocket updates flag external workspace changes.
- Visual Git workflow: status, staging, commits, branches, diffs, commit files, and a swimlane commit graph.
- Persistent workspace context: restore tabs, tree, views, panels, and widths per workspace; terminals support multiple sessions, splits, and rename.
- Built for DSH: reuse the DSH conversation surface on the right and manage theme and layout from workbench settings.
Features
- Files and editor: lazy explorer with create, upload, drag-and-drop, rename, delete, and Git markers; Monaco tabs provide dirty state, atomic saves, and conflict notices.
- Preview: Markdown source, outline, relative links, and images; built-in PDF paging and zoom plus DOCX rendering, with DOC/ODT download support.
- Search and Git:
@vscode/ripgrepsupports case, whole-word, regex, and path filters; Git covers stage, unstage, discard, commit, branches, diffs, commit files, and the graph. - Terminal:
node-ptyand xterm with up to eight sessions, rename, a right-side switcher, splits, ANSI output, and Ctrl+C. - Layout and DSH: the primary view, terminal panel, and DSH conversation sidebar can be shown and resized independently; settings manage theme and widths.
- Sync and restore: workspace file changes stream to the UI, while reload restores views, tabs, expanded directories, panels, and layout.
The workbench mounts through the official sidebar.footer.action and shell.overlay extension points. It does not replace or disable ui-layout.
Demo
Installation
dsh plugin --profile web add dsh-vscode-workbench
First terminal installation
The terminal uses node-pty. On the first install, pnpm 11 may block its build script, so dsh plugin ... add can report Ignored build scripts and end with an error. This is an expected safety check: the dependency has already been written to the profile. Run this on the machine that runs DSH:
cd ~/.dsh/profiles/web
pnpm approve-builds --all
This approves the node-pty build and completes the installation. Restart dsh web afterwards. If the terminal still reports that node-pty cannot load, run:
cd ~/.dsh/profiles/web
pnpm approve-builds --all && pnpm rebuild node-pty
pnpm can also delay versions published less than 24 hours ago. Retry after the waiting period, or use DSH's "Update now" action when it is offered.
Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+Shift+E |
Open Explorer |
Ctrl+Shift+F |
Open Search |
Ctrl+Shift+G |
Open Source Control |
Ctrl+S |
Save the active file |
Ctrl+Alt+B |
Toggle the DSH conversation panel |
| `Ctrl+`` | Show or hide the terminal |
| `Ctrl+Shift+`` | Create a terminal |
Security
The host accepts only paths relative to the active DSH session workspace and rejects traversal and symlink escape. Saves use revision checks and atomic replacement. Git and ripgrep run with argument arrays rather than shell-concatenated commands. The terminal accepts same-origin loopback requests only, starts in the session workspace, and removes API keys, tokens, secrets, and similar environment variables.
Development
pnpm install
pnpm typecheck
pnpm test
pnpm build
Requires Node.js ^22.19 || >=24, pnpm 11.7, system Git, and the native build prerequisites for node-pty when no prebuild is available.
License
Comments
Comments live in GitHub Discussions. Sign in with GitHub to post or react.