Tools & Capabilities
dsh-code-server
immiq/dsh-code-server · ★ 0
A plugin for DeepSeek Harness (DSH): it adds a full VS Code workbench to DSH Web and wires it into your live DSH sessions — chat with the workspace agent from inside the…
安装
dsh plugin --profile web add github:immiq/dsh-code-serverGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
For install and environment setup, plus plugin development tutorials, see DSH community docs ↗
README
Table of contents
A plugin for DeepSeek Harness (DSH): it adds a full VS Code workbench to DSH Web and wires it into your live DSH sessions — chat with the workspace agent from inside the editor, turn selections into questions, and open any file the conversation mentions, all without leaving the browser.
Current release: v0.1.5 · VS Code 1.132.0 · Linux & macOS (amd64 / arm64)
What you get
- A full VS Code workbench in DSH Web. Editor, integrated terminal, Git, extensions and language servers run in a right-hand drawer that docks beside the conversation or floats above it.
- The workbench follows your conversation. Switching to a session of another registered DSH workspace steers the editor to that workspace instead of staying pinned to the first one.
- File references open in the editor. Click a file path shown by a conversation tool call and it opens in the running workbench — the window first switches to the file's owning workspace when needed; read rows land on the line the agent was reading.
- No chat panel — the conversation stays in DSH. The workbench ships without the VS Code Chat view: the drawer's left side already is the DSH conversation, so a second one would only duplicate it. The editor-anchored surfaces below still stream the session's replies, tool calls and all.
- Inline chat (Ctrl+I). Select code, press Ctrl+I and ask — the selection travels with the question, the answer streams into the inline zone, and the turn also lands in the DSH conversation.
- Editor commands.
DSH: Ask About This Selection(also in the editor context menu),DSH: Fix Problems in This File,DSH: Explain Terminal Selection, and aFix with DSHquick-fix offered on any diagnostic. - Full tool output. Bash cards whose output was truncated get an Open full output button that opens the complete stdout/stderr files.
- No bundled cloud AI. Copilot, the agent host and the MCP runtime are
removed from the bundled workbench; the Chat surfaces talk to your own DSH
session only. The plugin also seeds
chat.editor.localAgent.enabled: falseandworkbench.secondarySideBar.defaultVisibility: hidden, enforces both through VS Code's configuration API after activation (including JSONC user settings), and closes a restored secondary side bar on startup. Bare input and Ctrl+I therefore go to the DSH participant and DSH session instead of the removed built-in agent. It also sweeps any residualgithub.copilot*extension left by older runtimes or manual installs.
Requirements
- DeepSeek Harness with plugin support (verified against commit
47f9438) - Linux or macOS on x86-64 or ARM64 — Windows is not supported
- About 460 MB of disk after installation
- A trusted, single-user localhost setup (see Security)
Install
Pick the release archive for your platform and add it to a DSH profile:
dsh plugin --profile web add \
https://github.com/iMMIQ/dsh-code-server/releases/download/v0.1.5/dsh-code-server-0.1.5-linux-amd64.tgz
dsh --profile web
| Platform | Archive suffix |
|---|---|
| Linux x86-64 | linux-amd64 |
| Linux ARM64 | linux-arm64 |
| macOS Intel | macos-amd64 |
| macOS Apple Silicon | macos-arm64 |
The archive is self-contained — it bundles the workbench runtime, so no separate IDE installation is needed. Update or roll back by running the same command with the target version, then restart DSH and refresh the browser. Remove the plugin with:
dsh plugin --profile web remove dsh-code-server
Usage
- Open DSH Web and press the
</>button in the bottom-right corner: the workbench opens in a drawer beside the conversation. In docked mode the conversation reflows instead of being covered; below 800px viewport width the editor becomes a fullscreen overlay. Collapsing the drawer keeps the workbench alive — edits, terminals and extensions survive. - Click file paths in the conversation to open them in the workbench. A read tool row lands on the line its read window started at; other rows open at line 1.
- There is no chat panel in the workbench on purpose — the DSH conversation next to it is the chat. Ask from the editor instead: Ctrl+I inline chat, the right-menu commands, or the quick-fixes below. The workspace needs an active session — start one in DSH first; otherwise you get a clear error.
- Select code and press Ctrl+I for inline chat: the selection is sent along with the question, the answer streams into the zone right in the editor, and the turn is recorded in the DSH conversation.
- Right-click a selection for
DSH: Ask About This Selection. UseDSH: Fix Problems in This Fileon a file with diagnostics, take theFix with DSHquick-fix from the lightbulb or the Problems panel, or select terminal output and runDSH: Explain Terminal Selection. - On a bash card with truncated output, press Open full output to open the complete output files in the workbench.
Configuration
The workbench server listens on http://127.0.0.1:3081 and uses the
code-server bundled with the plugin (a copy on PATH is only used when the
bundled runtime is missing, e.g. in development). To change that, override
the block in your DSH user patch — it replaces the defaults as a whole, so
keep every field you need:
- id: dsh-code-server
config:
executable: /absolute/path/to/code-server
host: 127.0.0.1
port: 3081
startupTimeoutMs: 20000
Security
The plugin targets a trusted, single-user localhost setup. code-server is
forced to bind to 127.0.0.1 with authentication disabled, so nothing
outside the machine can reach it. Requests from the workbench extension carry
a one-time token generated at each launch. File opens follow chat rows to any
existing local path — workspace files, DSH output spill, scratch files under
/tmp — which only mirrors what the workbench's own open dialogs already
expose. Installing this plugin is equivalent to giving the local user a full
IDE.
Compatibility
Each release is developed and verified against a pinned DSH version (see Requirements); the integration surfaces are guarded by automated tests. After upgrading DSH, switch to the plugin release that matches it if anything misbehaves.
Development
pnpm install
pnpm check # unit tests + DSH compatibility tests
pnpm build
cd /path/to/deepseek-harness
pnpm dsh plugin --profile web add /path/to/dsh-code-server
pnpm dsh --profile web
Browser-level end-to-end suites live in tests/e2e.
License
The plugin code is licensed under the GNU LGPL v3. The workbench
runtime bundled in the release archives is a trimmed fork of
code-server
(iMMIQ/code-server @ dsh-v4.132.0),
MIT-licensed, with its license and third-party notices retained under
vendor/code-server in the package.