DSH Launcher Panel

September 3, 2026 · View on GitHub

Version VS Marketplace License

English | 简体中文 | GitHub

Start DeepSeek Harness (dsh) inside VS Code and open its web UI in the built-in browser.

DSH Launcher Panel

This extension does not ship an LLM model, DeepSeek Harness itself, or a DeepSeek API key.

Principles

  • Loose coupling — the extension starts dsh only through its public entry points (a launcher-managed pnpm install or a source checkout), reads only the stable ~/.dsh data, and never depends on dsh internals — so your dsh plugins keep working as-is, and the launcher keeps working across dsh upgrades.

Features

  • Start / Stop — installs dsh into a launcher-managed location (first run), then runs pnpm exec dsh web and opens the web UI once it is ready.
  • Source run — clones deepseek-harness automatically into a managed location and runs it (a custom dsh.srcPath overrides the clone location); an existing checkout at that path is reused as-is. Before starting it runs pnpm install + build when deps are missing/stale or the checkout moved past its last build (detected via the commit hash in dsh's own build record); the build is preceded by pnpm run clean (when the checkout provides the script) to clear stale build residue, and uses dsh's official build profile so the web UI shows the same DeepSeek Harness brand as the packaged dsh.
  • Dashboard panel — server status, a live console (with clickable log files), the official DeepSeek API status with Peak / Off-peak pricing (weekends are billed at the off-peak rate), and your account balance.
  • DSH Update — click the refresh button (⟳) to check; when a new version is available, an Update button appears next to the dsh version (pkg reinstalls the channel's latest; source checks out the newest official dsh-v… release tag, never upstream master).
  • Browser choice — built-in or system browser.

Usage

Click the 🐳DSH WebUI whale icon in the activity bar, then click Start. The status bar whale icon mirrors the launcher state (blue pill while running, pulsing spout while starting) — click it for a quick menu: Open Web UI / Open Dashboard / Stop / Open Settings.

Settings

Settings → search "dsh":

KeyDefaultDescription
dsh.runModepnpmpnpm installs dsh into a launcher-managed location and runs pnpm exec dsh web; source runs a local checkout via tsx
dsh.npmChannellatestnpm dist-tag pkg mode installs @deepseek-ai/dsh from on first install, and the Update button targets it: latest (stable), next (release candidates), or alpha (alphas). An installed dsh always starts as-is — the channel never downgrades or auto-upgrades it. Source mode ignores this and always tracks the newest official dsh-v<version> git tag.
dsh.pkgPathemptyOptional: custom directory where pkg mode installs dsh. When empty, a managed default location is used.
dsh.srcPathemptyOptional: path to an existing deepseek-harness clone for source mode. When empty, the extension clones the repo automatically.
dsh.nodePathemptyPath to node.exe; empty uses the node on PATH
dsh.port3080Web UI port
dsh.autoOpenBrowsertrueAutomatically open the browser after Start; turn off to keep your current tab (the Start button's "New Tab" click still opens one per dsh.browser)
dsh.browserbuilt-inbuilt-in uses VS Code's Simple Browser (falls back to the system browser if unavailable); external opens the system browser
dsh.hideConsoletrueHide the server console window on Windows
dsh.clearServerLogOnStarttrueClear the server log file at the start of each launch so it only contains the current run
dsh.sourceDebugfalsePrint module-loading progress in source mode (NODE_DEBUG=module, very verbose; console shows a periodic count, full detail in the server log)

Notes

  • The default pnpm mode installs dsh with pnpm (the tool the dsh repo itself uses) into a managed location and runs it directly — npm's peer resolver can hang indefinitely on dsh's dependency graph, so npx is not offered. On the first install the chosen location (default or custom) is recorded in dsh.pkgPath / dsh.srcPath, so it shows up in Settings and stays pinned.
  • The mode pill in the panel uses short labels: pkg = the pnpm mode, src = the source mode. When dsh.srcPath does not point at an existing checkout, the launcher asks where to clone.
  • The panel shows where dsh lives (package in pkg mode, source in source mode) and the data (~/.dsh) locations; the dsh row has Update and Check updates buttons.
  • Start/stop is idempotent: it probes the port first and does not start twice.
  • Closing VS Code does not stop the server; stop it from the panel or command palette.
  • The 🐳 whale artwork (activity bar icon + status bar icon font) is Twemoji's spouting whale (Twitter, Inc., CC-BY 4.0) rendered as a monochrome silhouette with punched eye and belly-band details — see NOTICE.
  • The API Status card supports DeepSeek only for now — it only shows when a DeepSeek model is configured in dsh.
  • Log files: ~/.dsh-launcher-panel/logs/client.log (launcher activity) and server.log (server output), alongside the managed package/source dirs; both are clickable in the panel. The managed dirs live directly under the user's home directory (%USERPROFILE% on Windows).
  • DSH cannot run "minimal mode" properly on Windows for now.

Environment

  • Node.js — 22.x (22.19 or later) or >= 24 (the 23.x line is not supported)
  • pnpm — required for the default pnpm mode; if missing, the extension installs it automatically (npm install -g pnpm) on first start
  • VS Code — 1.85+
  • PowerShell 7 — optional; recommended on Windows (dsh's tool subprocesses use pwsh; the launcher itself works with any shell)

License

MIT