deepseek-harness-for-vscode README

The project's README from github.com/skymecode/deepseek-harness-for-vscode. As one markdown file: README.md.

DeepSeek Harness for VS Code

English | 简体中文

A native VS Code coding-agent extension powered by DeepSeek Harness. Install the platform-specific VSIX and start working—there is no upstream repository to clone, no Node/npm setup, and no local Harness deployment to manage.

This is the community-maintained 0.6.0 release. DeepSeek Harness is currently a Developer Preview, and this extension pins the official @deepseek-ai/[email protected] package (Typert Remote protocol).

Runtime upgrade: Harness now uses session format V3. Supported older logs are migrated on resume into a new generation while their original files are preserved. Old runtimes cannot read the new V3 generation; back up ~/.dsh/vscode/harness-home before upgrading, and do not downgrade an active profile. Third-party plugins using the removed ctx.agent or runtime Inbox APIs need their own compatibility updates. The extension keeps its native VS Code interface rather than embedding the official Web UI.

Older installations can leave ordinary package directories where Harness expects managed links. Startup and plugin installation now recover these shared profiles/node_modules conflicts automatically: incompatible entries move into module-fallback-backup-* inside the Harness home, then Harness rebuilds its links. Backup paths appear in the output log. Existing links/proxies, profiles/web plugins, conversation history and credentials are preserved; no terminal cleanup is required for this conflict. Permission or sharing errors stop recovery without deleting the original data.

Features

Open the workbench with Ctrl+Alt+H on Windows/Linux or Cmd+Alt+H on macOS.

Interface preview

Screenshots use the 0.5.9 workbench UI with a demonstration conversation and no private account data. This README shows the English interface; the Chinese README shows the localized interface. Select an image to view it at full resolution.

DeepSeek Harness 0.5.9: single-row header, collapsed turn process, final answer and edited files DeepSeek Harness 0.5.9: Flash and Pro model selection, four DSH modes and reasoning effort slider
0.5.9 workbench — compact turn process, final answer and per-turn file changes Flash / Pro, four DSH modes and the effort slider

Installation

  1. Download the VSIX matching your platform from Releases.
  2. Open the VS Code Extensions view (Cmd/Ctrl+Shift+X).
  3. Select ... → Install from VSIX... and choose the downloaded file.
  4. Reload the VS Code window when prompted.

For example, an Apple Silicon Mac requires the darwin-arm64 package.

Quick start

  1. Open the project you want to work on.
  2. Select the DeepSeek Harness icon in the Activity Bar.
  3. Open Connection settings and configure DeepSeek Official or add a relay source. You can also run DeepSeek Harness: Set API Key for the official source.
  4. Describe your task in the composer and send it.

No Harness install or start command is required.

Shared history with official DSH

The extension still ships and starts its own tested Harness/Node runtime. A separately installed CLI is not required and is not substituted automatically. On the same machine and OS user account, both backends use the official history location by default:

Platform Shared history home
Windows %USERPROFILE%\.dsh
macOS ~/.dsh
Linux ~/.dsh

An inherited DSH_HOME takes precedence. If official DSH uses another home, set the application-level deepseekHarness.historyHome to that same absolute path. Only sessions/ and attachments/ are shared. The extension's credentials, plugin profile and caches remain under ~/.dsh/vscode/harness-home; archive/pin state and UI filters remain separate. VS Code uninstall does not remove the shared history.

Old private/globalStorage histories are migrated through the official session codecs, with the original logs retained. Equal records are not duplicated; a strictly newer compatible prefix is appended only with write ownership. Diverged histories, or newer copies whose destination is busy, become separately named “VS Code history” forks. Completed imports are journaled, so reopening the extension does not keep duplicating them. In-use old sources are deferred; if migration fails, the extension keeps its previous private history for that launch and shows a warning instead of silently starting with an empty migrated store.

Open the VS Code history panel to refresh its list; refresh the official Web UI page to discover externally created history. VS Code filters by the current project, while official DSH may show worktree sessions under their own workspace or as ungrouped sessions. This shares saved history, not another process's transient token stream. Kernel locks prevent simultaneous writes to one session: close the owning backend before continuing on the other side, or create a fork. Model credentials and installed plugins are configured independently.

Both runtimes must support the same log format (this build uses V3, DSH 0.1.5-alpha.1). An older official CLI cannot read new V3 logs and must be updated to use this sharing feature; original V2 files are retained, but are not a downgrade-sync mechanism. This is not cloud, cross-device, or Windows/WSL cross-kernel synchronization; do not run live shared stores through a network/sync drive. Back up both the shared home and the old private home before a major runtime upgrade.

DSH plugins

Open the ⊞ Plugins button in the workbench header to browse repositories read directly from the dsh-plugin GitHub topic. Results are merged with Awesome DSH Plugin metadata for curated categories, localized descriptions, and npm install specs. The Installed tab also accepts one package spec directly, including an npm package, github:owner/repository, a local path without shell metacharacters, or a tarball URL.

DeepSeek Harness 0.5.9 plugin center with built-in catalog entries and compatibility labels
0.5.9 plugin center — built-in catalog example, not the complete live GitHub marketplace

The extension uses the official dsh plugin --profile web add/remove workflow. Plugin profile files live under ~/.dsh/vscode/harness-home/profiles/web; Harness is stopped while pnpm changes that profile and is then restarted automatically. The bundled pnpm means no system package manager is required.

Host tools, policies, and runtime services contributed by a plugin work in this extension. A plugin may also contain client UI designed specifically for the upstream DSH browser application; those UI contributions cannot be rendered generically by this native VS Code workbench and are marked Official Web UI.

Marketplace cards classify known entries as Agent compatible, Agent works · Web UI unavailable, or Official Web UI only. UI-only themes and layout extensions cannot affect the native workbench, so their install button is disabled. GitHub-only entries without curated metadata are marked Compatibility unknown until their installed manifest can be inspected.

Configuration

Setting Default Description
deepseekHarness.model deepseek-v4-flash Default model for new sessions
deepseekHarness.reasoningEffort high off / low / high / max
deepseekHarness.agentPreset standard Default Agent Preset for new sessions
deepseekHarness.provider deepseek-official Default source selected from the extension's Connection settings panel
deepseekHarness.permissionMode workspace-write read-only / workspace-write / danger-full-access
deepseekHarness.autoAttachSelection true Automatically attach the active editor selection when sending

Provider endpoints and write-only credential references are managed through the bundled Harness settings and credentials services. API keys are stored in the extension's private Harness home, are never returned to the webview, and are not written to project-level .vscode/settings.json. Legacy deepseekHarness.apiKey, baseUrl, and providers values are imported once and then removed.

Use the Connection settings panel to add, edit, test, or remove DeepSeek relay sources. Custom sources are registered live through the upstream llm-pi-ai adapter and expose the same Flash/Pro choices in the model panel.

Automatically attached selections are limited to 16 KB and are truncated when necessary. If the same file selection is already embedded manually, the host will not attach it again.

Commands

Command Description
DeepSeek Harness: Open Workbench Open the sidebar workbench
DeepSeek Harness: Open Workbench in New Window Open the detachable editor-area workbench
DeepSeek Harness: Reload Workbench Restart the runtime and reconnect
DeepSeek Harness: Set API Key Save the API Key
DeepSeek Harness: Clear API Key Clear the API Key
DeepSeek Harness: Show Logs Open diagnostic logs
DeepSeek Harness: Import Sessions Import a DSH ZIP, ChatGPT ZIP, or other agent transcripts

System notifications

Completed foreground and background work now uses native Windows/macOS notifications, not VS Code's in-window completion popup. Duplicate idle events, child-agent completions and Stop actions from this extension do not generate extra alerts. Queued prompts notify when the agent becomes idle after finishing the queue; opening old history does not replay notifications. Approval/question prompts remain unchanged.

User settings (effective immediately, without restarting Harness):

"deepseekHarness.systemNotifications.enabled": true,
"deepseekHarness.systemNotifications.sound": false,
"deepseekHarness.systemNotifications.includeConversationTitle": false

Run DeepSeek Harness: Test System Notification from the Command Palette to test without an API request. Errors are recorded under DeepSeek Harness: Show Logs; there is no in-window fallback. Notifications never contain reply text or detailed errors; enabling titles may expose them on the lock screen.

Localization

English is the default language, and a Simplified Chinese language pack is included. Manifest contributions, settings, extension-host prompts, errors, and the full chat workbench follow the VS Code display language. After changing the display language, run Developer: Reload Window.

Security and privacy

Platform support

There is one extension ID and one Marketplace product. Platform-specific VSIX files are required because the bundled Node, PTY, and sandbox packages contain native binaries:

The current hosted GitHub Actions matrix builds darwin-arm64, linux-arm64, linux-x64, and win32-x64. Other architectures require a self-hosted runner or local packaging.

Development and packaging

npm install
npm run check-types
npm run lint
npm test
npm run compile
npm run package

npm run package creates a VSIX for the current operating system and CPU architecture. npm ci executes lifecycle scripts required by native dependencies, so build only trusted commits and lockfiles.

All project commit messages use English. See docs/ARCHITECTURE.md for the architecture and security boundaries.

License

Extension code is licensed under the MIT License. Licensing details for DeepSeek Harness, Node.js, and other dependencies are available in THIRD_PARTY_NOTICES.md and the license files shipped with each dependency.

deepseek-harness-for-vscode (skymecode/deepseek-harness-for-vscode)

Searching Database…

这是什么?一个原生 VS Code 扩展,把 DeepSeek Harness 编程智能体带入编辑器侧边栏,具备会话管理、流式 Markdown、斜杠命令和插件中心,而且无需单独的 WebUI 或 Harness 配置。
这是独立应用还是 VS Code 插件?它是一个通过平台专属 VSIX 文件安装的 VS Code 扩展;它自带 Harness/Node 运行时,不需要单独运行的 Harness 服务器。
我需要自己先安装 DeepSeek Harness 或 Node 吗?不需要——官方 dsh、pnpm 和独立的 Node 22.22.3 运行时都打包在每个平台对应的 VSIX 中,由扩展自动管理。
它能与官方安装的 DSH CLI 共享历史记录吗?可以,会话和附件可以在同一台机器上共享,但凭据和插件配置保持独立,且双方必须支持相同的 V3 日志格式——过时的官方 CLI 在更新前无法读取新日志。它明确不是云同步或跨设备同步机制。
我的 API 密钥存放在哪里?API 密钥保存在扩展私有的 Harness 主目录中,绝不会回传给 webview,也绝不会写入项目的 .vscode/settings.json。
它支持哪些模型和推理模式?它提供 DeepSeek V4 Flash 和 Pro 模型,支持 off/low/high/max 四档推理力度和四种官方 Agent 预设,可按会话选择。
我能安装第三方 DSH 插件吗?可以,通过内置的插件中心,它会读取 dsh-plugin GitHub 主题并合并 Awesome DSH Plugin 的元数据;也可以直接添加 npm 包、github:owner/repo、本地路径或 tarball URL。
我能导入其他工具的聊天记录吗?可以通过 dsh-chat-import 从官方 DSH ZIP 导出、ChatGPT 导出 ZIP 以及其他智能体的会话记录导入会话。
安装后怎么打开工作台?在 Windows/Linux 上按 Ctrl+Alt+H,在 macOS 上按 Cmd+Alt+H,或者点击活动栏中的 DeepSeek Harness 图标。
Creator
skymecode
Size
6.1 MB
Stars
157
Age
2mo
Commits · 90 Days