Preface¶
DeepSeek Harness (DSH) consolidates conversations, traces, and tool calls into a single web client. When an agent modifies code, workspace files are often only accessible via the terminal or an external editor. Reviewing diffs, modifying a few lines with context, or running a command requires switching between multiple windows.
dsh-code-ide, maintained by SakalioLabs, adds an optional IDE workbench to Harness as a plugin. It does not replace the Harness home, conversation, session, settings, or tool interfaces; it merely adds an IDE tab at the top of the session. The default remains the conversation view. This document outlines its positioning, capability boundaries, and steps for installation and daily use.
What is This?¶
dsh-code-ide (GitHub: SakalioLabs/dsh-code-ide) is a client-side plugin for the DeepSeek Harness web profile. The current version is v0.1.0-alpha.0 (GitHub pre-release, with pre-built packages, not published to npm). The license is MIT.
The plugin embeds into the official session area via the same-origin route /dsh-code-ide/. The parent Harness syncs the current session’s workspace, light/dark theme, and zh/en language to the IDE. The interface borrows from VS Code workbench conventions, but it is not Code-OSS, nor does it include a VS Code Extension Host or Marketplace compatibility layer.
The tab structure within Harness is as follows:
DeepSeek Harness /
├─ Conversation (Official, Default)
├─ Trace (Official)
└─ IDE (This plugin, optional)
└─ /dsh-code-ide/?embedded=1&workspaceId=…
The workbench only mounts when the user opens the IDE tab. The regular message input bar for that session is temporarily hidden and restores exactly when switching back to the conversation. Questions awaiting user response or approvals still have higher priority and are not hidden by the IDE.
Environment Requirements¶
Before installation, verify that Harness and the runtime environment match. The current main branch has been validated for compatibility with DeepSeek Harness 0.1.1-rc.2 (tag dsh-v0.1.1-rc.2, source commit b150a551b8d465e31e418e1b2eaf5e79bbb7d28e). Other commits or future npm RCs are not part of the compatibility commitment.
| Item | Requirement |
|---|---|
| DeepSeek Harness | 0.1.1-rc.2 |
| Node.js | ^22.19.0 or >=24.0.0 |
| pnpm | Fixed to 10.17.0 in this plugin repository; Harness fixed to 11.7.0 |
| Browser | Modern same-origin browser supporting WebSocket, localStorage, and Web Locks |
| Search | @vscode/ripgrep@1.18.0 platform binary |
| Terminal | Reuses the node-pty@1.2.0-beta.15 provided in the target Harness host image; do not manually install a second native copy |
npm currently provides @deepseek-ai/dsh@0.1.1-rc.2. To ensure reproducibility, pin to the aforementioned tag or commit.
Core Features¶
The following capabilities are derived from the plugin’s README and package.json descriptions, organized by module.
Explorer and File Operations¶
- Bounded lazy loading, Seti-style file icons, keyboard navigation, preserve expansion state, workspace-relative path validation.
- Windows x64 native NTFS workspace: supports creating new files/directories, drag-and-drop move, rename, and permanent delete.
- Linux x64 Host (runtime
openat2probe passes) and macOS x64/arm64 native APFS workspace (runtimelibSystemprobe passes): supports creating new files and directories; move, rename, and delete remain disabled.
Editor and Preview¶
- CodeMirror 6 editor: multiple tabs, drag/keyboard sorting, up to 4 editor groups, independent undo/selection/scroll state per document, auto-wrapping, indentation, line endings, and language modes.
- Syntax highlighting: built-in and lazily loaded for Plain Text, JavaScript, JSX, TypeScript, TSX, JSON, CSS/SCSS/Less, HTML, Markdown, Python, C, C++, Java, Go, Rust, Shell, PowerShell, YAML, XML, and SQL.
- Markdown preview:
.md,.markdown,.mdxcan switch between source and safe preview; the preview directly reflects the current unsaved edit buffer. - Media preview: read-only display for common images (PNG, JPEG, GIF, WebP, AVIF), audio (MP3, WAV, OGG, FLAC), and video (MP4, WebM, MOV); audio and video use native browser controls and range streaming, and do not auto-play.
Save, Search, and Commands¶
- Version-aware saving, external change detection, conflict handling, delete file recreation, dirty tab close confirmation, and bounded hot-exit recovery in browser local storage.
- Quick Open, workspace search, regex/case-sensitive/whole-word/include-exclude, result navigation, and preview-before-apply replacement. Replacement only modifies the edit buffer and does not auto-save to disk.
- Command palette, editable one- or two-segment keybindings, conflict detection, and browser local persistence.
Terminal and Layout¶
- Multiple named xterm.js sessions, with the working directory set to the current workspace, supporting find, clear, rename, restart, interrupt, kill, collapse, and maximize.
- Desktop/compact layout, adjustable panels; IDE UI supports Simplified Chinese and English, and follows Harness hot-switching.
Installation and Enabling¶
Quick Installation (Recommended)¶
For users who already have dsh installed, run:
dsh plugin --profile web add github:SakalioLabs/dsh-code-ide
If you are running from the Harness source checkout, replace dsh with pnpm dsh in the directory. The repository has committed pre-built dist/ synced with the source; a Git install will not rebuild this plugin in the user environment, so there is no need to configure allowBuilds for dsh-code-ide, nor to clone this plugin or manually copy patches.
You can also send the following instruction directly to Harness for it to install and verify:
Please install github:SakalioLabs/dsh-code-ide into the current DeepSeek Harness web profile, and after completion, verify that `plugin list` and `--dump-config` show only one dsh-code-ide.
Note: The GitHub shorthand github:SakalioLabs/dsh-code-ide follows the repository’s main branch. To pin to a released version, verify download contents, or keep an offline archive, use the Release process.
Pinned Version Installation (Auditable)¶
Download and verify v0.1.0-alpha.0 on Linux/macOS:
curl -fLO https://github.com/SakalioLabs/dsh-code-ide/releases/download/v0.1.0-alpha.0/dsh-code-ide-0.1.0-alpha.0.tgz
curl -fLO https://github.com/SakalioLabs/dsh-code-ide/releases/download/v0.1.0-alpha.0/dsh-code-ide-0.1.0-alpha.0.tgz.sha256
sha256sum -c dsh-code-ide-0.1.0-alpha.0.tgz.sha256
After verification passes, install the local file in the Harness checkout:
pnpm dsh plugin --profile web add /absolute/path/to/dsh-code-ide-0.1.0-alpha.0.tgz
Verification and Startup¶
Installation, startup, updates, and uninstallation must use the same DSH_HOME. In the Harness checkout, execute:
pnpm dsh plugin --profile web list --depth 0
pnpm dsh --profile web --dump-config
pnpm dsh web
Visit http://127.0.0.1:3080/, enter a session with an associated workspace, then select the IDE tab at the top. The plugin package will automatically apply its dsh.bundle.patch; do not manually copy examples/dsh-code-ide.bundle.patch.yml, otherwise duplicate entries will result. --dump-config should retain all official web entries and show only one enabled dsh-code-ide.
Update and Uninstallation¶
Before updating, stop dsh web, then re-run add or use a new Release, and restart Harness:
pnpm dsh plugin --profile web add github:SakalioLabs/dsh-code-ide
pnpm dsh plugin --profile web remove dsh-code-ide
Uninstallation does not delete Harness sessions or workspace files, nor does it automatically clear IDE preferences and recovery data from browser localStorage.
Typical Usage¶
After completing the installation steps above, you can use the plugin in the following sequence:
- Open or create a session with an associated workspace in Harness.
- Select the IDE tab; if the workspace is not yet ready, it will show an explicit status and will not silently switch to another workspace.
- Open text, Markdown, or supported media files from the Explorer or Quick Open; Markdown can switch between source and preview.
- Edit text and save explicitly; the preview reflects the current unsaved Markdown buffer, and modifications from search-and-replace also require saving.
- When Harness input is needed, switch back to the Conversation tab.
Common Keyboard Shortcuts:
| Action | Windows/Linux | macOS |
|---|---|---|
| Quick Open | Ctrl+P |
Cmd+P |
| Command Palette | Ctrl+Shift+P / F1 |
Cmd+Shift+P / F1 |
| Save | Ctrl+S |
Cmd+S |
| Explorer / Search | Ctrl+Shift+E / Ctrl+Shift+F |
Cmd+Shift+E / Cmd+Shift+F |
| Go to Line | Ctrl+G |
Cmd+G |
| Keyboard Shortcuts Settings | Ctrl+K, then Ctrl+S |
Cmd+K, then Cmd+S |
| Show/Hide Terminal | Ctrl+Backtick |
Cmd+Backtick |
| Toggle Word Wrap | Alt+Z |
Option+Z |
Configuration Options¶
Default bundle configuration example:
- insert:
- id: dsh-code-ide
name: dsh-code-ide
config:
maxFileBytes: 4194304
maxMediaBytes: 536870912
terminalShell: auto
| Option | Default | Description |
|---|---|---|
maxFileBytes |
4 MiB | Read/write limit for UTF-8 text files |
maxMediaBytes |
512 MiB | Read-only limit for a single media preview; configurable, hard cap 8 GiB |
maxDirectoryEntries |
5,000 | Direct entry limit for a single directory listing |
terminalShell |
auto |
Uses COMSPEC on Windows, SHELL on Unix, with fallbacks |
terminalArgs |
Shell default | Explicit shell argument array |
maxTerminalSessions |
8 | Active/Pending PTY limit on Host, hard cap 64 |
maxConcurrentSearches |
2 | Concurrent managed search count |
searchTimeoutMs |
30,000 | Search timeout (milliseconds) |
For the full bounded configuration, see src/host/plugin.ts in the repository.
Use Cases and Caveats¶
Who Is This For?
- Developers running the Harness web profile locally with sessions bound to a local workspace.
- Users who want to browse and edit workspace files alongside the agent’s trace within the same browser session, without repeatedly switching to an external IDE.
- Scenarios requiring a built-in terminal to execute commands at the workspace root, coordinating with the conversation tab for review.
Pre-Installation Checks
- The plugin runs with the same OS user privileges as the current
dshprocess; the IDE terminal is not sandboxed. Before installation, it is recommended to review the repository source and MIT license to confirm that file operations and terminal capabilities meet your security expectations. - Intended for local, same-origin loopback use only. Currently, there is no remote user authentication, TLS, process isolation, quota, or comprehensive audit logging; do not expose it directly to a LAN or the internet.
- On Linux/macOS, structural operations like move, rename, and delete have platform limitations; when the probe fails, the relevant operations are safely disabled, while browsing, editing, saving, search, and terminal remain unaffected.
- Hot-exit, keybindings, and some recovery information are stored in plaintext in same-origin
localStorage; same-origin code can access this data. - Markdown preview does not execute raw HTML or MDX.
The DSH ecosystem adheres to the principle of “everything is a plugin.” Community directories like SkillHub are independent sites with no official affiliation to DeepSeek / High-Flyer. dsh-code-ide is classified as a client plugin on SkillHub, with approximately 11 GitHub stars at the time of writing.
Links¶
- SkillHub Directory Page: https://www.skillhub.cn/plugins/SakalioLabs/dsh-code-ide
- GitHub Repository: https://github.com/SakalioLabs/dsh-code-ide
If you are using Harness 0.1.1-rc.2 to work with a local workspace and wish to bring file browsing, editing, and the terminal into an optional tab within the session, dsh-code-ide provides an incremental integration path: it does not fork the client or take over the Harness home; it simply opens the IDE workbench when needed.