Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>DSH Lite for VS CodeNew to Visual Studio Code? Get it now.
DSH Lite for VS Code

DSH Lite for VS Code

Fla1337

|
32 installs
| (0) | Free
DeepSeek Harness (dsh) agent integration for VS Code: chat, code edits and tool calls via the Agent Client Protocol.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

DSH Lite — DeepSeek Harness for VS Code

Chat with the DeepSeek Harness agent inside VS Code: sessions, streaming replies, tool-call cards, permission prompts, model/effort/preset pickers, change review, and @-mentions — built on the standard Agent Client Protocol (ACP), like the Claude Code and Codex extensions.

Features

  • Chat view with matching user/assistant bubbles, polished Markdown and consistent code backgrounds, thought folds, single-line tool names, structured tool cards, and a sessions sidebar
  • Session management — list / resume / rename / delete (rename & delete need the bridge plugin), local transcript cache
  • Model, reasoning-effort, agent-preset, and permission-mode pickers in the composer rail
  • Change review — open a native diff against HEAD per file; Git workspaces reconcile the settled list to final changes, removing reverted/deleted paths and Git scratch files
  • @ file mentions and editor-context attachment; image attachments (paste or picker, when the route supports them)
  • @dsh chat participant in the native Chat view, and DSH: Explain Selection for one-shot code explanations
  • Import Web models and agent presets with preview and confirmation (bridge ≥ 0.4.0)
  • Todo cards / plan-mode banner streamed from the agent (bridge plugin)
  • Status-bar shortcuts — model and context usage stay visible; click to focus a hidden chat, or open the DSH command palette when the chat is visible
  • Cross-environment: run dsh on Windows, in WSL, or inside a Remote-WSL window (see Topologies)

Requirements

  • Node.js ≥ 22.19 on the side where dsh runs (the dsh CLI requires ^22.19.0 || >=24.0.0; nvm/volta/mise are picked up automatically)
  • DeepSeek Harness — installed (npm i -g @deepseek-ai/dsh), used via npx, or from a repository checkout
  • dsh-vscode-bridge dsh plugin (required) — the DSH: Install/Repair Bridge Plugin command wires it in (creates the default acp-vscode profile, registers the service rows, installs the plugin). It powers session titles, delete, presets, permission modes, workspace grouping, todo/plan push, native slash commands, skill catalog, and session-log export.

Version matching

dsh-lite-vscode dsh-vscode-bridge
0.3.2 ^0.4.0
0.3.0 ^0.3.0
0.2.2 ^0.2.0
≤ 0.2.1 0.1.3 – 0.2.x

The table lists recommended extension/bridge pairings, not hard minimums for every feature. Extension 0.3.2 retains existing features with older bridges; Web configuration import requires bridge 0.4.0+ advertising configSync.

For bridge-to-DSH host compatibility, see the dsh-vscode-bridge compatibility matrix. The installer probes the host version and selects the appropriate profile wiring and bridge package: dsh-vscode-bridge@^0.4.0 for current hosts, or ^0.2.0 for legacy hosts outside the newer bridge's support corridor. It also repairs obsolete preset service rows when upgrading an older profile. Live extension-host verification of the newly recognized host versions is still required.

Quick start

  1. Install this extension (.vsix or build from source — see Development).
  2. On first run, the DSH Lite Setup page opens: pick where dsh runs and how to launch it. Reopen anytime with DSH: Setup.
  3. Run DSH: Install/Repair Bridge Plugin (required): creates the default acp-vscode dsh profile, wires the services, and installs the bridge plugin.
  4. Open the DSH view in the activity bar — the agent boots automatically, and a session is created for you.

Settings

Setting Default Description
dsh.runtime auto Where the agent process runs: auto (same side as the extension host), wsl, or windows
dsh.command npx -y @deepseek-ai/dsh Launch command on the target side; the extension appends --profile <dsh.profile>
dsh.profile acp-vscode dsh profile to boot; the default is created by the required bridge install. acp runs bridge-less
dsh.wsl.distro "" WSL distribution name when dsh.runtime is wsl (empty = default)
dsh.env {} Extra environment variables for the dsh process (e.g. DEEPSEEK_API_KEY)
dsh.mcpServers [] MCP servers mounted on every new session (prefer DSH: Configure MCP Servers)
dsh.autoAttachActiveFile false Attach the active editor file/selection to every prompt

Topologies

VS Code window dsh runs Setting
Windows Windows auto
Windows WSL wsl
Remote-WSL WSL auto
Remote-WSL Windows windows (best-effort: WSL-native files appear as slow \\wsl$ UNC paths; the bridge channel is unavailable in this direction)

Path translation between the VS Code side and the dsh side is automatic (wslpath probing + drvfs prefix mapping).

Commands

Click the DSH model/usage item in the status bar to reveal and focus the chat when it is hidden or collapsed. When the chat view is visible, the same click opens Quick Open filtered to DSH, providing access to the commands below without leaving the keyboard-friendly command picker.

Command What it does
DSH: Setup Open the setup page (runtime/command/distro/profile)
DSH: New Session New session (an untouched empty session is reused instead)
DSH: Install/Repair Bridge Plugin Idempotent bridge installer/repairer on the target side
DSH: Import Models and Presets from Web Preview and import Web profile models/presets into the connected bridge profile (bridge ≥ 0.4.0)
DSH: Doctor Probe node/dsh availability on the dsh side, and report the bridge connection with its host dsh version
DSH: Show Agent Changes QuickPick over agent-changed files → native diff
DSH: Configure MCP Servers Add/remove MCP servers (stdio/HTTP) mounted on new sessions
DSH: Explain Selection One-shot explanation of the selected code in a preview tab
DSH: Run in Terminal Launch the dsh TUI in an integrated terminal (topology-aware)
DSH: Focus Chat / DSH: Refresh Sessions View utilities

Import Web configuration

Run DSH: Import Models and Presets from Web (dsh.importWebConfig; Chinese title: DSH: 从 Web 导入模型与预设).

  1. Connect DSH Chat to the target ACP profile with bridge 0.4.0+ advertising configSync. Older bridges remain usable for their existing features.
  2. Choose models, agent presets, or both. Same-name target entries are kept by default; opt-in overwrite replaces the complete provider (including its model list) or preset definition.
  3. Review the source/target profile, providers, presets, supporting service rows and skipped entries, then confirm. Cancellation or an unchanged preview writes nothing. The exact preview revision and options are sent to config.import; a stale preview requires running the command again, never an automatic retry. Preview/import requests have 30/60-second deadlines. A timeout or disconnection does not cancel host-side writes: check the target configuration and backups before previewing again.
  4. The result shows the backup path on the DSH host. After active turns finish, restart the target ACP/bridge process. For the extension-managed process, use Developer: Reload Window. Existing sessions do not automatically switch models/presets; select the imported configuration in a new session as needed.

This is an explicit one-way import from web in the same DSH_HOME into the connected bridge profile, not background synchronization. File operations stay on the DSH host (including Windows → WSL); VS Code receives identifiers and a revision, not configuration bytes or secrets. Only the target cordis.patch.yml is rewritten, with a backup when the file already exists. To roll back, stop the target process first and restore that backup on the host.

Environment files, OAuth/credential stores and third-party packages are not copied. Environment/credential references must work on the target; custom preset dependencies may need manual installation/wiring. YAML formatting/comments can change. Shared home overrides, missing packages and unsupported profile structures can prevent import; resolve these on the host and preview again.

Troubleshooting

Everything the agent process prints lands in the DSH output channel; bridge connection state is logged there too.

  • Chat stuck on “Initializing…” → run DSH: Doctor. Common causes: nvm-managed node not on the non-interactive PATH (the extension sources nvm/volta/mise/asdf quietly; otherwise use an absolute node path in dsh.command), wrong distro, or a non-ACP profile (web/tui/desktop are rejected with a warning).
  • First npx run times out → it downloads the package; install once (npm i -g @deepseek-ai/dsh) or point dsh.command at a checkout.
  • “no API key for provider route” → configure the key once in the dsh Web UI Models page (shared via $DSH_HOME), or set dsh.env.DEEPSEEK_API_KEY.
  • Bridge features missing (titles/delete/presets/permissions) → run DSH: Install/Repair Bridge Plugin; the bridge is required (see the version table).
  • “profile "acp-vscode" does not exist” on startup → the default profile is created by the bridge installer; run DSH: Install/Repair Bridge Plugin.
  • VSIX installation fails with ScanningExtension / “cannot read extension” in a custom VS Code profile → switch to the Default profile, install the VSIX there, then switch back and reload the window. This avoids a profile-registration mismatch when updating an application-scoped extension; the VSIX itself does not need to be rebuilt.
  • Custom models gone / “no adapter registered for provider …” after a dsh 0.1.7-rc.1 upgrade → 0.1.7-rc.1 made model providers per-profile (the global settings.yaml was folded into the profile that booted first and renamed to settings.yaml.imported). Use DSH: Import Models and Presets from Web with bridge 0.4.0+, or manually copy the llm-pi-ai section into the target profile's cordis.patch.yml.

Development

npm install
npm run build       # bundle extension + webview into dist/
npm run watch       # incremental
npm test            # unit tests (node:test, esbuild-bundled)
npm run typecheck   # strict tsc
npm run smoke       # headless ACP contract test against a real dsh (DSH_COMMAND=… to override)
npm run package     # produce a .vsix

# publishing (needs a publisher PAT):
VSCE_PAT=<azure-devops-pat> npm run publish:marketplace   # VS Code Marketplace
OVSX_PAT=<open-vsx-pat>     npm run publish:ovsx          # Open VSX

CI in .github/workflows/ci.yml follows these rules:

  • Branch pushes (including release branches and merges into main): no workflow run.
  • Pull requests (opened, updated or reopened): Ubuntu + Windows validation with typecheck, build, unit tests and ACP contract smoke against the published DSH. Each platform writes step outcomes and unit-test totals to the Actions Summary, including when validation fails; one platform's failure does not cancel the other.
  • Tag pushes (v*): first verify the tag equals v<package.json version> and both lockfile versions match, then typecheck, build/package, GitHub Release and marketplace publishing only — no unit tests or ACP smoke. Publishing uses the locally built VSIX and does not depend on the PR test jobs. Enable VSCE_PUBLISH / OVSX_PUBLISH repository variables (true) and configure the corresponding VSCE_PAT / OVSX_PAT secrets; with neither enabled, the job still builds/packages and creates a GitHub Release with the VSIX attached and automatically generated release notes.
  • No Actions artifacts are uploaded. PR test results are reported in Summary; only v* tag runs create GitHub Releases and upload the VSIX as a release asset.

Press F5 for an Extension Development Host with this project opened.

src/launcher/   topology detection, process launch specs, WSL↔Windows path mapping
src/acp/        typed ACP client + shared service (vscode-free core)
src/bridge/     dsh-vscode-bridge client + centralized discovery (>=0.1.2)
src/chat/       chat view host: sessions, permissions, context, transcripts, changes
src/webview/    React chat UI (RailSelect, sessions sidebar, todo/plan, welcome)
src/setup/      first-run setup webview panel
src/shared/     host↔webview protocol + pure helpers
tests/          node:test suites (launcher matrix, session ordering, bridge protocol, …)
scripts/        smoke test + icon generator

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft