Plugin directory / Developer / deepseek-harness-for-vscode
deepseek-harness-for-vscode
Verified · install-tested on dsh skymecode
What it does
deepseek-harness for vscode .This is a community project, and we welcome your valuable feedback!
Recommended — verified working and popular
deepseek-harness for vscode .This is a community project, and we welcome your valuable feedback! It installs cleanly and boots without issues in our testing. With 149+ stars it's a community-endorsed, low-risk pick.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
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.1-devrelease. 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 V4. Supported older logs are migrated on resume into a new generation while their original files are preserved. Old runtimes cannot read the new V4 generation; back up
~/.dsh/vscode/harness-homebefore upgrading, and do not downgrade an active profile. Third-party plugins using the removedctx.agentor runtimeInboxAPIs need their own compatibility updates. The extension keeps its native VS Code interface rather than embedding the official Web UI.
Startup uses the official runtime package resolver. Only a recognized legacy module conflict triggers one bounded backup-and-repair attempt; ordinary profile packages are no longer moved on every startup or installation.
Runtime update policy
The bundled DeepSeek Harness runtime is upgraded selectively, not automatically with every upstream release. We review the actual changes—relevant features, bug and security fixes, and breaking changes—and adopt an update after compatibility adaptation and regression testing, with particular attention to Windows, macOS, Linux, existing conversation history, and plugins. The 0.1.7 native capability gap is tracked in the upgrade audit.
Stability and the upgrade experience for existing users take priority over always bundling the newest version. Releases that still need validation or introduce compatibility risks may be deferred; an extension update may also keep the current pinned runtime. The bundled version and any upgrade caveats are documented in this README and the changelog.
Features
- Native VS Code workbench — all interaction happens in the sidebar; the local Harness Gateway exposes only the loopback API transport, while the official WebUI is neither served nor embedded.
- Shared local history — the bundled runtime and an independently installed official DSH can read the same saved conversations. Installing the official CLI is optional; credentials and plugin profiles stay separate.
- Detachable workbench — open the same synchronized conversation UI in an editor-area panel and move it to another VS Code window when more space is needed.
- Complete session workflow — persistent history, create, switch, rename, fork, resume, archive/restore, export, and import sessions (official DSH ZIP, ChatGPT export ZIP, and other agent transcripts via
dsh-chat-import); changing the DSH mode opens a fresh session in the new mode and carries the previous context as a hidden digest attached to your next message. - Streaming Markdown — headings, lists, tables, code blocks, copy controls, safe external links, and clickable workspace file references.
- Stable incremental rendering — streamed updates preserve disclosure state and the reader's scroll position.
- Progressive reasoning timeline — nodes appear as thinking steps arrive, connecting only existing steps within the same turn. Completed turns retain their timeline inside the expandable process section.
- Session titles — automatic titles and manual renames are owned by the official session service.
- Per-turn file changes — official snapshots and historical diffs include shell-driven edits. Old or unavailable snapshots fall back to labeled tool statistics; current workspace changes never stand in for a historical diff.
- Compact completed turns — reasoning, tool calls and interim updates fold into a duration row; the final answer and file changes remain visible.
- Reader-friendly streaming — while a turn streams you can scroll up through earlier messages freely; auto-follow yields to your scroll and only resumes at the very bottom. The finished conclusion is set off by a divider between the thinking and the final answer (or above the message when there is no thinking).
- DeepSeek Harness-native reasoning — thinking is presented in a native reasoning block that opens as deltas stream, follows the newest content, and collapses to a summary row once the block completes.
- Editor context — selected code appears as a removable context card; type
@to fuzzy-search and attach workspace files without leaving the composer. - Slash commands — use official Harness commands plus
/model,/reasoning, and/presetextension commands. - Harness-native capabilities — reasoning, tool calls, approvals, structured questions, Todos, Skills, Goals, Plan mode, and background jobs.
- Model and agent controls — official catalogs provide model capabilities and reasoning choices; new sessions default to
deepseek-flash. The PTC preset usesptc; legacycodesessions keep a compatible preset. - Token usage — see current input and output token counts in the composer.
- Native DSH plugin center — search a curated catalog, filter by category, inspect installed plugins, or install an npm/GitHub/local/tarball package.
- Automatic localization — follows the VS Code display language with English and Simplified Chinese support.
- Zero-deployment runtime — official
dsh, pnpm, and standalone Node 22.22.3 are bundled in each platform VSIX and managed by the extension.
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.
|
|
| 0.5.9 workbench — compact turn process, final answer and per-turn file changes | Flash / Pro, four DSH modes and the effort slider |
Installation
- Download the VSIX matching your platform from Releases.
- Open the VS Code Extensions view (
Cmd/Ctrl+Shift+X). - Select
...→ Install from VSIX... and choose the downloaded file. - Reload the VS Code window when prompted.
For example, an Apple Silicon Mac requires the darwin-arm64 package.
Quick start
- Open the project you want to work on.
- Select the DeepSeek Harness icon in the Activity Bar.
- Open Connection settings and configure DeepSeek Official or add a relay source. You can also run
DeepSeek Harness: Set API Keyfor the official source. - 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 and pin state use the native DSH workspace registry in the extension's private home and remain separate from independently launched DSH. Tags and the VS Code history filter stay local to this workbench. 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 V4, DSH 0.1.7-alpha.1). An older official CLI cannot read new V4 logs and must be updated to use this sharing feature; original V2/V3 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.
0.5.9 plugin center — built-in catalog example, not the complete live GitHub marketplace
Ordinary bundles use the running official Plugin Manager for installation, cancellation, enable/disable and removal. The UI reports read-only, overridden and restart-required results. Bundled Node/pnpm are used without a system package manager. The optional Routing Suite keeps its preset-installation recipe and stopped-runtime CLI path. Super Injector is no longer installed automatically; existing installations are retained.
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
DSH 0.1.7 uses only Messages for DeepSeek Official, at https://api.deepseek.com/anthropic. Old hand-written llm-deepseek.protocol options must be removed; Chat Completions endpoints belong under a custom provider. Custom-provider protocols remain unchanged.
OTel, request-attached session logs (dsh_session_log) and plugin inventories (dsh_plugin_packages) are disabled by default. Normal model requests still contain submitted messages, context and attachments.
Workspace files use official persistent upload receipts for any file type (20 MiB per file, 40 MiB and eight files per submission). Editor selections stay native. Delivered files open in VS Code or an installed format viewer; binary attachments in subagent conversations are not yet supported.
The official browser's Office preview, restored session terminals and dedicated SSH/Browser Use/Computer Use interfaces are not embedded. Existing VS Code editor and terminal integration remains, and experimental permissions are not enabled by upgrading.
| Setting | Default | Description |
|---|---|---|
deepseekHarness.model |
deepseek-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 OpenAI-compatible or Anthropic Messages sources. Custom sources are registered live through the upstream llm-pi-ai adapter; test the endpoint to import its advertised model ids, or enter them manually. API keys are optional for local endpoints such as llama-server, llama-swap, and Ollama-compatible servers. Configured providers and their models appear in the model panel grouped by provider.
Model modalities, context windows and reasoning options come from the official LLM resolver. For endpoints that omit context size, enter an explicit override such as model-id:32k in Model IDs. Existing model declarations are preserved when editing a provider; an empty new catalog does not invent DeepSeek models. The extension no longer maintains a parallel capacity or vision table.
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.
- macOS: uses the system AppleScript notification service. Allow notifications/banners for the sender shown in System Settings → Notifications (it may appear as Script Editor/osascript, not a separate Harness app).
- Windows: uses Windows PowerShell and Windows Toast with the running VS Code product's AppUserModelID (including Insiders). Use an installed VS Code with its registered Start menu shortcut; portable/custom builds without a registered identity may not show notifications. No registry changes, administrator access or extra notification package is required.
- OS permissions, Focus/Do Not Disturb and enterprise policies can suppress banners even after successful submission. This feature currently requires a local desktop extension host; Linux, Remote SSH, WSL, containers and browser-hosted VS Code are not supported. Disconnected runs are not replayed after reconnection.
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
- The Harness Gateway listens only on a random
127.0.0.1port. - The Webview uses a strict CSP and loads no remote scripts or iframes.
- Plugin catalog JSON is fetched by the Extension Host, validated into a narrow UI data model, and rendered with
textContent. - Raw Markdown HTML is disabled, and rendered markup is sanitized through a DOMPurify allowlist.
- Remote Markdown images are disabled; http(s) links are validated again by the extension host.
- File and command access is controlled by
permissionModeand Harness approval policies. - The API Key is never sent to the Webview or written to extension logs.
- Third-party DSH plugins are trusted Extension Host dependencies: they run outside the Agent sandbox. Review their source before installation.
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:
- macOS:
darwin-arm64,darwin-x64 - Linux:
linux-arm64,linux-x64 - Windows:
win32-arm64,win32-x64
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.
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install deepseek-harness-for-vscode for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
Web profile:
dsh plugin --profile web add github:skymecode/deepseek-harness-for-vscode Headless (CLI) profile:
dsh plugin --profile headless add github:skymecode/deepseek-harness-for-vscode Test report
Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.
When to use it
Extend the agent's coding surface — give it a new tool, workflow, or integration so it handles a dev task it couldn't before.
Who it's for
Developers who want dsh to behave like a teammate on real codebases — editing, running, and verifying changes rather than just answering.
For developers — extending it
The tool/command surface is the seam: expose more of the SDK, add smarter context wiring, or tighten the loop between code changes and verification.