dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
deepseek-harness for vscode .A native VS Code coding-agent extension for DeepSeek Harness. Streamlined workbench with session management, streaming Markdown, slash commands, plugin center, and zero-deployment runtime — no WebUI served, no Harness setup
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 codebase with unreleased fixes. Current source pins the official@deepseek-ai/dsh@0.2.1-rc.3package (Typert Remote protocol). The published 0.6.1 assets still contain0.2.1-alpha.1; DeepSeek Harness remains a Developer Preview.
Pending updates fix duplicate user prompts appearing after their answers when editor context is attached, preserve message order during streaming and rapid submissions, and support the new external-task entries in the native subagent catalog. See the changelog.
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 the shared history home (default~/.dsh) and the private~/.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.
This update connects the DSH 0.2.1 services and trims unused runtime resources:
1s, cross-platform file links are more reliable, and a native declaration keeps legacy code sessions usable.Download the VSIX from the v0.6.1 release and reload VS Code after installation. This release is not automatically published to Marketplace. Release notes for 0.6.1 and 0.6.0 are available in Chinese in the changelog.
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 earlier 0.1.7 native capability audit 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.
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.@ to fuzzy-search and attach workspace files without leaving the composer./model, /reasoning, and /preset extension commands.deepseek-flash. The PTC preset uses ptc; legacy code sessions keep a compatible preset.deepseekHarness.worktreeAutoMerge = onTurnEnd.deepseekHarness.mcpServers as a JSON array in VS Code Settings. The extension writes validated stdio or Streamable HTTP entries into DSH's profile and restarts the Gateway; discovered tools use names such as mcp__github__create_issue. toolCallTimeoutMs, maxInstructionBytes, failOnStartupError, and bounded reconnect options are passed through to the native DSH MCP client.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.
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
Cmd/Ctrl+Shift+X).... → Install from VSIX... and choose the downloaded file.For example, an Apple Silicon Mac requires the darwin-arm64 package.
DeepSeek Harness: Set API Key for the official source.onTurnEnd only after you are comfortable with the review flow.No Harness install or start command is required.
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.2.1-rc.3). 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.
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
Online results merge GitHub Topic and curated metadata. A network failure names the failed source and retains successful results for the current extension session; use Refresh to retry. A first load without network access or cache shows only three built-in recipes.
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.
The current source uses DSH 0.2.1-rc.3 (npm next; extension version remains 0.6.1). In VS Code Settings, deepseekHarness.webSearchProvider selects messages (default: Messages search with local HTTP retrieval) or search-api (native DeepSeek Search and Fetch APIs). Reload the workbench after changing it. The direct APIs use the official DeepSeek credential, independently of the chat provider, and require access on that account. Disabling deepseekHarness.webSearch disables both DeepSeek web providers while retaining local HTTP retrieval. As in official DSH, Search API requests may include up to 128 characters of the initiating question.
DSH 0.2.1 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.
Example MCP configuration:
[
{
"serverName": "github",
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "$env:GITHUB_TOKEN" }
}
]MCP servers are disabled by default. Review the server source and permissions before enabling one.
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.
This package excludes the official Web Office/PDF preview and experimental voice payloads, and disables the Office-to-PDF/document-preview profile rows. File uploads, editor opening and DSH file APIs remain available. Restored session terminals and dedicated SSH/Browser Use/Computer Use interfaces still require native workbench integration; installing a Web UI plugin alone does not add them. 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.
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
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": falseRun 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.
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.
127.0.0.1 port.textContent.