lonelymoon87/dsh-vscode 预览 preview

lonelymoon87/dsh-vscode

VS Code client for the DeepSeek Harness SDK runtime.

项目介绍Project Overview

这是 DeepSeek Harness 的独立预发布 VS Code 客户端,内嵌官方 SDK 运行时,可在侧边栏流式显示会话日志、工具活动,并用原生差异编辑器打开文件工具结果。适合在受信任本地文件夹中运行 DSH 代理、查看工具调用与改动。注意:当前仅测试 macOS arm64,需 Node 22.19+ 和 API 密钥;不支持审批、取消或会话恢复。

This is an independent pre-release VS Code client for DeepSeek Harness. It embeds the official SDK runtime, streams durable session logs and tool activity in a sidebar, and opens file-tool changes in the native diff editor. Use it to run a DSH agent in a trusted local workspace and inspect tool results. Caveat: only macOS arm64 is tested; Node 22.19+, an API key, and a platform-specific VSIX are required, with no approval, cancel, or resume support.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add github:lonelymoon87/dsh-vscode

lonelymoon87/dsh-vscode 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

DeepSeek Harness for VS Code

CI DSH compatibility Release VS Code License

English | 中文

An independent, pre-release VS Code client for DeepSeek Harness. Version 0.1.2 embeds the official 0.1.1-rc.1 SDK runtime, streams the durable session log into a sidebar, shows tool activity, and opens file-tool results in VS Code's native diff editor.

This community project is not maintained or endorsed by DeepSeek.

Real model demonstration

DeepSeek Harness VS Code real API demo

The recording uses the released extension architecture, official VS Code 1.133.0 arm64, the bundled official DSH SDK runtime, deepseek-official / deepseek-v4-flash, and a real bash tool call. No fixture or mock transport is involved.

Features

  • Reusable, bundled dsh-jsonrpc-agent subprocess managed by @deepseek-ai/dsh-sdk-client.
  • Streaming root-session assistant messages and collapsible tool cards.
  • Native before/after diff editors from durable tool/result.data.meta.diffs.
  • Session state and input/output token totals.
  • New-session, runtime-restart, and diagnostic-output commands.
  • Fixed workspace-write sandbox policy; operations that require interactive approval fail closed.

Prerequisites

  • VS Code 1.100 or newer with a trusted local folder open.
  • Node.js 22.19 or newer on PATH. The runtime is a separate Node process because signed macOS editors cannot load third-party native modules into their Electron executable.
  • A VSIX built for the current operating system and CPU. The embedded runtime contains native subprocess dependencies, so release artifacts are platform-specific.
  • DEEPSEEK_API_KEY in the environment that launches VS Code. DEEPSEEK_BASE_URL is optional. The extension deliberately has no secret-valued setting.

On macOS, a VS Code process started from the Dock may not inherit shell variables. Launching code . from a configured shell is the simplest development setup.

Install

Download and install the tested macOS arm64 VSIX:

curl -fLO https://github.com/lonelymoon87/dsh-vscode/releases/download/v0.1.2/dsh-vscode-darwin-arm64-0.1.2.vsix
code --install-extension dsh-vscode-darwin-arm64-0.1.2.vsix

The first release provides a tested macOS arm64 build only. Other platforms are not yet available.

To build the extension from source instead:

pnpm install
pnpm run check
code --install-extension dsh-vscode-*-0.1.2.vsix

Open the DeepSeek Harness Activity Bar view and submit a prompt. Cmd+Enter or Ctrl+Enter also sends the prompt.

Settings

Setting Default Meaning
deepseekHarness.nodePath node Node 22.19+ executable for the bundled runtime; set an absolute path when the editor does not inherit the shell PATH.
deepseekHarness.runtimeCommand empty Optional external dsh-jsonrpc-agent executable that replaces nodePath and the bundled entrypoint.
deepseekHarness.runtimeArgs [] Arguments appended to the resolved runtime executable.
deepseekHarness.provider deepseek-official Provider route sent during initialize.
deepseekHarness.model deepseek-v4-flash Model id sent during initialize.
deepseekHarness.maxTokens 49152 Positive output-token cap for each root-agent request.

The extension passes its bundled runtime/launcher/cordis.yml through DSH_CORDIS_CONFIG, the first workspace folder through DSH_CWD, and extension-private storage through DSH_SESSION_ROOT. The VSIX includes the matching official runtime packages. runtimeArgs follow the bundled entrypoint or the configured external runtime command.

Security and failure behavior

Untrusted and virtual workspaces are unsupported. The runtime receives the first local workspace folder as its writable root, and the extension never sends webview HTML through innerHTML. SDK transport errors remain visible in the transcript and the DeepSeek Harness output channel; restarting replaces the failed process and re-reads settings.

The current SDK wire has no server-to-client approval request or client approval response. The included runtime therefore uses a fixed workspace-write policy, and the official approval service rejects operations that require an answerer. The extension does not silently broaden permissions.

Known limitations

  • No mid-turn cancel, approval UI, session list, or session resume because the 0.1.1-rc.1 SDK protocol does not expose those operations.
  • One active root session and one workspace folder are shown at a time; descendant notifications are not mixed into the root transcript.
  • Markdown, image attachments, and structured non-diff tool presentations fall back to plain text.
  • VS Marketplace publication and signed release artifacts remain pending; GitHub Release VSIX files are unsigned community builds.

Development

pnpm run test covers notification projection and the official SDK against a real scripted JSON-RPC subprocess. pnpm run package builds a VSIX. Product-visible pull requests must include a GIF captured from the branch's real extension, runtime, and model flow; fixtures are test inputs, not release evidence.

See CONTRIBUTING.md and SECURITY.md.

Release evidence

  • pnpm run check covers type checking, unit tests, production build, and VSIX packaging.
  • CI runs on Node 22.19 and Node 24.
  • The bundled 0.1.1-rc.1 runtime completes its real SDK initialize and shutdown handshake; the v0.1.2 VSIX remains macOS arm64 until platform release automation is added.
  • Bugs and compatibility reports are tracked in GitHub Issues.
上一个 Prev dsh-custom-font 下一个 Next dsh-bio-genie