Introduction¶
The plugin mechanism in DeepSeek Harness (DSH) allows developers to extend system capabilities by layering features. The dsh-vscode-workbench plugin is designed to add a VS Code-style local development workbench to the DSH environment. It integrates resource management, code editing, Git operations, and terminal support into a unified interface, solving the problem of frequently switching windows or relying on external tools to manage local files and code state during agent development.
Plugin Overview¶
Plugin Name: dsh-vscode-workbench
Maintainer: tingfeng347
License: MIT
This plugin is mounted through DSH extension points. It does not replace or uninstall ui-layout; instead, it exists as an overlay. It provides a complete local development environment experience, including the Monaco editor, a visual Git workflow, multi-session terminals, and seamless integration with DSH conversation capabilities.
Core Features¶
Files and Editor¶
- Monaco Editor: Supports multiple tabs, dirty-state indicators, atomic saving, and conflict detection.
- File Type Support: Supports opening and previewing text, Markdown, images, PDF, and Word documents directly.
- File Operations: Supports creating, uploading, drag and drop, renaming, deleting, and viewing Git status.
Visual Git Workflow¶
- Provides a graphical interface for Git operations such as status, staging, commits, branches, and diffs.
- Supports viewing commit files and a lane-style commit graph.
- Search functionality is based on
@vscode/ripgrep, with support for case sensitivity, whole word matching, regular expressions, and path filtering.
Terminal¶
- Implemented with
node-ptyand xterm.js. - Supports up to 8 terminal sessions, with session renaming, right-side switching, and split views.
- Supports ANSI output and
Ctrl+Csignal handling.
Layout and DSH Integration¶
- Layout Management: The left view, terminal panel, and right-side DSH conversation panel can be shown independently and resized.
- Themes and Settings: Themes and layout settings are managed centrally in the workbench settings.
- Context Synchronization: After refreshing, the active view, tabs, expanded directories, panel visibility, and layout configuration can be restored.
Installation and Configuration¶
Basic Installation¶
Install the plugin using the official command:
dsh plugin --profile web add dsh-vscode-workbench
Initial Terminal Support Installation¶
Terminal support depends on node-pty. In the DSH environment, when using pnpm 11, build scripts may be blocked during the initial installation, causing the installation to fail. This is an expected security check behavior.
To resolve this:
- Navigate to the plugin configuration directory:
cd ~/.dsh/profiles/web
- Approve build scripts and reinstall dependencies:
pnpm approve-builds --all
- Restart the
dsh webservice. - If the terminal still reports a loading failure, run:
pnpm approve-builds --all && pnpm rebuild node-pty
Usage Instructions¶
After installation, you can switch views using keyboard shortcuts or the activity bar buttons on the left.
A typical project development workflow example:
cd ~/.dsh/profiles/web
pnpm install && pnpm typecheck && pnpm test && pnpm build
Keyboard Shortcut Reference¶
| Shortcut | Action |
|---|---|
Ctrl+Shift+E |
Open Explorer |
Ctrl+Shift+F |
Open Search |
Ctrl+Shift+G |
Open Source Control |
Ctrl+S |
Save current file |
Ctrl+Alt+B |
Show or hide DSH conversation panel |
| `Ctrl+`` | Show or hide terminal |
| `Ctrl+Shift+`` | New terminal |
Notes¶
Security¶
- Path Restrictions: Host accepts only relative paths inside the current DSH session working directory and prevents directory traversal and symlink escapes.
- Command Execution: Git and ripgrep are started with argument arrays rather than concatenated Shell commands to prevent command injection.
- Terminal Security: Terminals accept only same-origin loopback requests, start fixed in the session working directory, and remove sensitive environment variables such as API keys, tokens, and secrets.
- Data Consistency: Save operations use version checking and atomic replacement to avoid silent overwrites.
Environment Dependencies¶
- Node.js: Requires
^22.19 || >=24 - pnpm: Requires
11.7 - System Tools: System Git must be installed.
Appendix¶
- GitHub Repository: https://github.com/tingfeng347/dsh-vscode-workbench
- DSH Plugin Directory: https://www.skillhub.cn/plugins/tingfeng347/dsh-vscode-workbench