moxingovo / dsh-web-panel

목록에 있음

Embed DeepSeek Harness (dsh) web GUI in VS Code — zero-config auto-start, workspace follow, self-healing. /在 VS Code 里内嵌 DeepSeek Harness 网页版,零配置自动启动、多工作区跟随、掉线自愈。

main도구 소스 보기

설치

npx -y @deepseek-ai/dsh plugin --profile web add github:moxingovo/dsh-web-panel

이 설치 명령은 GitHub 저장소 주소에서 생성된 확인되지 않은 시작점입니다.

README

유지 관리자가 작성한 문서 스냅샷입니다.

GitHub에서 보기 ↗
커밋 e6b5ca1동기화 2026. 8. 18.

DSH Web Panel

Embed the DeepSeek Harness (dsh) web GUI inside VS Code. Attaches to — or automatically starts — the local dsh web server and renders the full GUI in an iframe: sessions, terminal, plan approval, slash commands, todo, token/cache stats — everything, unchanged.

Unofficial community extension. Not affiliated with DeepSeek.

  • Sidebar view: DSH activity-bar icon → "DSH Panel".
  • Editor-tab panel (recommended, wider): Command Palette → DSH: Open Panel; opens automatically on startup by default (dshWeb.autoOpen).
  • Status bar indicator (✓ running / ⎌ attached / ⟳ starting / ⛔ error); click to open the panel.
  • Panel memory: the DSH tab is restored with your window layout across restarts.
  • Workspace follow: a self-started server restarts with the new cwd when the first workspace folder changes (dsh's workspace root = server cwd).
  • No extra windows: the extension spawns dsh hidden (windowsHide); nothing pops up.
  • Self-healing: if an attached instance dies (e.g. its desktop window was closed), it is detected within ~15s and a hidden instance takes over; a crashed self-started instance restarts automatically.

Install

From a released .vsix:

code --install-extension dsh-webview-0.2.1.vsix

Or build it yourself:

cd dsh-webview
npx @vscode/vsce package
code --install-extension dsh-webview-0.2.1.vsix

Zero-config launch

On startup the extension probes dshWeb.port (default 3080) and attaches if a real dsh instance responds (page carries the __DSH_BOOT__ manifest). Otherwise it starts one, trying each strategy in order (120s each):

  1. dshWeb.command (explicit override),
  2. dshWeb.checkout (a deepseek-harness checkout, if set and present),
  3. dsh on PATH (official npm install: npm i -g @deepseek-ai/dsh),
  4. npx --yes @deepseek-ai/dsh (downloads the CLI on demand — zero setup).

The server runs with cwd = the first workspace folder, so each project gets its own dsh workspace. Requirements: VS Code ≥ 1.85 and Node.js (both already required by the official dsh setup). Configure your DeepSeek API key in the GUI as usual.

Settings

SettingDefaultMeaning
dshWeb.port3080Port to attach to or start on
dshWeb.attachExistingtrueReuse a running instance instead of starting a new one
dshWeb.spawnIfMissingtrueStart a server when none is running
dshWeb.checkout"" (auto)Optional checkout path (launches apps/cli/lib/bin.js)
dshWeb.command""Full command override, e.g. pnpm dsh (runs via shell in the workspace)
dshWeb.extraArgs[]Extra arguments appended to the launch, e.g. --trusted-host
dshWeb.autoOpentrueOpen the DSH panel automatically on startup
dshWeb.followWorkspacetrueRestart self-started server when the first folder changes
dshWeb.stopOnExittrueStop a self-started server when VS Code exits (process-tree kill)

Troubleshooting: Output → DSH Server.

Known boundaries

  • The panel shows dsh's own web UI — it is not a Claude Code panel clone.
  • "DSH: Restart Server" only restarts servers started by this extension; restart an external instance yourself, then run "DSH: Reload Panel".
  • On exit, self-started servers are killed hard (taskkill /T on Windows); dsh session logs survive crashes, so this is generally harmless.

Development

# headless checks (mock the vscode API; attach + spawn + real-launch paths)
node test/mock-verify.js
node test/spawn-verify.js      # needs pipe-capable shell (no sandbox)
node test/real-launch-verify.js # spawns the real dsh from the checkout

License

MIT — see LICENSE.

프로젝트 파일 및 신호

표시된 항목은 디렉터리 스냅샷에서 감지된 공개 저장소 신호입니다.

테스트감지됨

저장소 정보

언어
JavaScript
라이선스
MIT
최신 릴리스
v0.2.1
마지막 업데이트
2026. 8. 14. 오전 6:52

신중하게 설치하기

소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.