DeepSeek Harness Plugin

tingfeng347/dsh-vscode-workbench

Stars ★ 11 Downloads (30d) 964 Category UI Enhancements Added 2026-08-26 npm dsh-vscode-workbench

VS Code-style local workbench for DSH with a file explorer, Monaco editor, full-text search and a Git panel.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-vscode-workbench

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:tingfeng347/dsh-vscode-workbench

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 — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

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/ripgrep supports case, whole-word, regex, and path filters; Git covers stage, unstage, discard, commit, branches, diffs, commit files, and the graph.
  • Terminal: node-pty and 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

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.