dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness for VS Code: @dsh chat participant, sidebar & standalone chat, plan mode, goals, subagents, turn-level Git rollback, workspaces/jobs/settings panels, 13-language UI.
Before using this extension: start the DeepSeek Harness server from your terminal first — the extension connects to it inside VS Code.
npx @deepseek-ai/dsh web
中文版 | Publisher: Jager · Latest: 0.13.63
Use DeepSeek Harness (dsh) directly in VS Code, alongside ChatGPT / Copilot: the built-in @dsh chat participant, secondary sidebar / standalone chat windows, workspaces / jobs / trajectory / settings panels, turn-level Git rollback, and a multi-language UI (简体中文 / 繁體中文 / English / 日本語 / 한국어 / Deutsch / Français / Español / Português / ไทย / Bahasa Indonesia / Türkçe / Русский / العربية — follows the VS Code display language or switch manually).

@dsh: type @ in the native Chat panel (Ctrl+Alt+I); streamed replies with tool calls and approval buttons; slash commands /new, /session <ID>, /preset <name>.DSH: Open Standalone Chat Window.4 turns 285 steps · 267 tok/s (click for session statistics — LLM time, tool time, average TTFT, output TPS) and 71M tok · 99.6% cache hit (click for token usage — exact total, cache hit, uncached input, cache read/write, output).messageFeedback with click-again-to-revoke, /feedback command fallback for older sessions) / message header shows model · thinking time · per-step tokens.Usage 25.8K tok pill (click for provider/model, cache hit rate, uncached input, cache read/write, output with reasoning share), a Ran for 5m 57s pill (click for total turn time, output TPS, time to first token), and the local clock of the closing message at the row's right end (HH:mm, M/D HH:mm for earlier days, Y-M-D HH:mm for other years). While the session is running, an earlier turn's action row and stats stay hidden and fade in on hover (only the settled latest turn shows them) — the web's data-actions-reveal behaviour.思考 • <first line> (expanded while it streams, collapsed once thinking ends, manual toggles preserved) and Read/Write/Pwsh/Grep • <human summary> with a status dot, a running sweep animation, and the full arguments/result (plus image results) behind a click; rows appear live as each event arrives, each run of rows ends with a web-style summary line (1 command · read 1 file · searched 2 times) that folds or unfolds that run when clicked, and the activity line above the composer names the running action (tool title + summary) rather than a generic label. Long JSON no longer floods the row.present parity): files the model delivers appear as cards at the turn tail — file name + description, an Open button (opens the file, or the HEAD→worktree diff for tracked files) and a ⋯ menu with "Open with default app" and "Reveal in File Explorer".dsh-git-rollback snapshots the workspace's git state (tracked + untracked files) at every turn start into hidden refs (refs/dsh/checkpoints/<sid>, zero pollution of your branch history) and records them under .dsh/rollback; the button restores the workspace to the state before that turn. Commands /rollback [N], /redo, /checkpoints work in both the web command panel and the VS Code chat (rollback is non-destructive: the pre-rollback state is saved first, /redo restores it, ignored files are never touched). Each message's ⋯/branch menu also offers "Undo this turn's file changes" (preview-and-confirm review dialog, reverses only the files that turn changed — your own commits and HEAD stay untouched), "View checkpoints", and "Undo this turn's changes and branch from here". The web chat gets the same Copilot-style turn dividers and a floating restore dialog out of the box (plugin web half, served via the DSH client-modules pipeline).

/plan, click to exit./ menu (official skill.list)..claude/commands, .claude/skills, .codex/skills (SKILL.md), .github/copilot-instructions.md, .github/instructions, .github/agents and .github/prompts are listed in the / menu and insertable./permission command).dsh.participantSessionMode: global to share one session.schedule/*, DSH 0.1.7+): every retained reminder with its rule text, next scheduled time and countdown, enabled / ended status, search and status filter; open a task for its instruction, frequency, time zone, linked session (jump straight to it), last delivery and its delivery records (newest-first with paging) and delete it after an inline confirmation. The catalog refreshes itself from the host's schedule/changed event; when the host has the schedule plugin disabled (the 0.1.7 default) the panel says so instead of erroring.schedule/*, DSH 0.1.7+): every retained reminder with its rule text, next scheduled time and countdown, enabled / ended status, search and status filter; open a task for its instruction, frequency, time zone, linked session (jump straight to it), last delivery and its delivery records (newest-first with paging) and delete it after an inline confirmation. The catalog refreshes itself from the host's schedule/changed event; when the host has the schedule plugin disabled (the 0.1.7 default) the panel says so instead of erroring.settings/canOpenAgentPresetDirectory reports support and presets are otherwise read-only composition text.
DSH: Generate Commit Message) reads the staged/unstaged git diff and generates a Conventional Commits-style message in a disposable session (archived immediately, never shown in the session list) with a lightweight model (default: the flash keyword matched against the DSH model catalog + low effort; configurable via dsh.commitModel / dsh.commitReasoningEffort), writing the result into the SCM input box and auto-cancelling on timeout or when the model requests extra interaction. The model switch is temporary — your default model and thinking depth are captured first and restored when generation ends, and the throwaway session is archived only after the answer arrives (DSH 0.1.7 blocks turns on archived sessions).dsh.language / the 🌐 section of the settings panel.cd <this folder>
npm install
npm run package # outputs Releases/dsh-vscode-<version>.vsix
VS Code → Extensions → … → Install from VSIX → pick the file in Releases\ → reload.
Prerequisites: VS Code ≥ 1.90 (built-in chat ≥ 1.95; secondary sidebar container ≥ 1.106); DSH CLI or npx fallback; model credentials configured (same as dsh web).
dsh.sendKey in settings.json) picks Enter (default), Ctrl+Enter or Shift+Enter to send — the other combination inserts a newline. The pill on the composer hint line always shows the active binding and switches it on click. While running the send button (paper-plane line icon) becomes stop (square line icon), typing turns it back into send (queued send)./ button (bottom-left): command menu (plan / compact / goal / feedback / permission / skills / .claude). Most entries insert the command into the input (press Enter to run); Compact context runs /compact straight away and the conversation shows a live compaction row — a sweep while compacting, then "Compacted N history items (~T tokens)" with the summary expandable, and the compacted range collapses into that row (the same row appears for automatic compaction).+ button next to it: add file / add folder; the blue chip is the auto-attached active file.working_directory tool (click it to reveal the folder); the switch also appears in the transcript as a one-line notice instead of a user bubble. Pending timed questions survive a view reload or session switch (restored from the host's userQuestions projection), the background-jobs panel is fed by the new job/registered / job/settled events (status, exit code and duration), and a host that grants this connection only limited access is reported instead of failing calls with a raw denial code. The bundled dsh-git-rollback plugin declares engines.dsh, an icon and 15 locale entries, so DSH's plugin manager lists it as compatible with its localized title/description.DSH: Send Selection to @dsh; file → DSH: Ask @dsh About This File.| Key | Default | Description |
|---|---|---|
dsh.url | http://127.0.0.1:3080 | DSH web server URL |
dsh.autoStart | true | On VS Code startup, start dsh web if the server is not running |
dsh.command | dsh | Start command; falls back to npx |
dsh.autoStartTimeoutSec | 60 | Auto-start timeout (seconds) |
dsh.participantSessionMode | per-workspace | @dsh session scope: per-project / global |
dsh.openPanelOnStartup | false | Open the standalone window on startup |
dsh.defaultReasoningEffort | "" | Default thinking depth for new sessions (off/high/max, model-dependent) |
dsh.commitModel | deepseek-v4-flash | Model used to generate commit messages (resolved from the DSH model catalog; falls back to the session's current model) |
dsh.commitReasoningEffort | low | Reasoning effort for commit messages (low = no thinking on DeepSeek models, fastest) |
dsh.language | auto | UI language: auto / zh-cn / zh-tw / en / ja / ko / de / fr / es / pt / th / id / tr / ru / ar |
dsh.installRollbackPlugin | true | Auto-install the turn-level Git rollback server plugin into the DSH web profile (enables /rollback, /redo, /checkpoints) |
dsh-git-rollback server plugin (host + web client halves) and installs it into your DSH web profile (~/.dsh/profiles/web) on activation (idempotent, version-tracked). If your DSH server was already running, the extension offers a one-click restart when it detects the plugin is not loaded yet. The web client half is picked up automatically by the DSH client-modules pipeline on the next server start — no manual setup.dsh plugin --profile web add dsh-git-rollback (published on npm), then restart dsh web..dsh/rollback records + hidden refs (refs/dsh/checkpoints/<sessionId>). Disable the auto-install with dsh.installRollbackPlugin: false."This session is already in use" / session/writer-held: a DSH session can only be written by one instance at a time. Quit the other instance that has it attached (the desktop app, another dsh web, or a second VS Code window driving the same server), or simply switch to another session in VS Code — then the notice bar above the composer disappears and model switching, renaming and sending work again.
Nothing appears → reload the window; run DSH: Show Diagnostics; check the extension runtime state for validation errors.
"No registered data provider" → run DSH: Repair Chat View (Reset View Locations) or Restart Extension Host.
Service worker error in the webview → VS Code 1.100.x platform bug: update VS Code or clear %APPDATA%\Code\Service Worker\CacheStorage.
"agent preset is fixed" → started sessions cannot switch presets; the preset pill only shows for new sessions.
Not connected → run DSH: Start Server; check dsh.url.
Server version: this build targets DSH 0.1.5-rc.1 and negotiates the changed attachment parameter names, so a 0.1.2-rc.1 server keeps working (commands, subagent prompts, streaming); upgrading the server to 0.1.5 additionally brings live streaming frames, V3 session logs, and the context breakdown projection.
Server does not auto-start → the extension retries every 15 s and connects as soon as the server is up; see the [server] log in the "DeepSeek Harness" output channel. If the error mentions 0xC0000142/EPERM, VS Code was launched from a DSH session or a restricted terminal (child process creation blocked) — launch VS Code normally, or set that session's permission to danger-full-access.
npm install
npm run typecheck
npm run build
npm run package # → Releases/
src/extension.ts, src/dsh/* (API client, server manager, session store, chat participant, project-session mapping, commit message generation).src/webview/{channel,panel,window,ui}.ts + media/chat.css; icon media/icon.png.package.nls.json + package.nls.zh-cn/zh-tw/ja/ko/de/fr/es/pt/th/id/tr/ar.json, l10n/bundle.l10n.json + bundle.l10n.zh-cn/zh-tw/ja/ko/de/fr/es/pt/th/id/tr/ar.json, the EN_TEXT dictionary in ui.ts + src/webview/texts/*.json.plugins/<name>/ (all new DSH server plugins go there); npm run build compiles them and syncs the bundle into resources/<name>/ via tools/sync-plugins.mjs for packaging into the vsix. Unit tests: cd plugins/<name> && npm test.使用前请先启动 DSH Web 服务:先在命令行中执行以下命令,安装并启动
dsh web,之后才能在 VS Code 中使用本插件。npx @deepseek-ai/dsh web
English version | 发布者:Jager · 最新版本:0.13.63
在 VS Code 中直接使用 DeepSeek Harness(dsh),与 ChatGPT / Copilot 一样融入 VS Code 聊天体系:内置聊天参与者 @dsh、辅助侧栏 / 独立聊天窗口、工作区 / 后台任务 / 轨迹 / 设置面板、回合级 Git 回退,以及多语言界面(简体中文 / 繁體中文 / English / 日本語 / 한국어 / Deutsch / Français / Español / Português / ไทย / Bahasa Indonesia / Türkçe / Русский / العربية,跟随 VS Code 显示语言或手动切换)。
@dsh:VS Code 原生 Chat 面板(Ctrl+Alt+I)输入 @ 选择 dsh;助手回复流式渲染,含工具调用与审批按钮;支持 /new、/session <ID>、/preset <名> 斜杠命令。DSH: 打开独立聊天窗口。4 轮 285 步 · 267 tok/s(点击展开 会话统计:模型用时 · 工具调用用时 · 首 token 平均 TTFT · 输出速度 TPS)与 71M tok · 缓存命中 99.6%(点击展开 Token 用量:精确总量 · 缓存命中 · 未缓存输入 · 缓存读取/写入 · 输出)。messageFeedback,再点一次即撤销,旧会话回退到 /feedback 命令)/ 消息头显示模型名 · 思考耗时 · 本步 token 消耗。用量 25.8K tok 胶囊(点击展开 提供方/模型 · 缓存命中率 · 未缓存输入 · 缓存读取/写入 · 输出(含推理占比))、用时 5分57秒 胶囊(点击展开 本轮总用时 · 输出速度 TPS · 首 token 用时 TTFT),最右侧显示收尾消息的本地时间(当天 HH:mm,更早 M月D日 HH:mm,跨年 Y年M月D日 HH:mm)。会话运行中,历史回合的操作条与统计默认隐藏、悬停该条消息才淡入(网页端 data-actions-reveal 同款),只有已结束的最新回合常显。思考 • <首行摘要>(流式期间展开,思考结束自动收起,手动开合会被保留)与 读取 / 写入 / Pwsh / Grep • <人类可读摘要>(状态点 + 运行中扫光),点击展开完整参数/结果(含图片结果);不再把整段 JSON 铺在行上。过程行随事件实时出现,每段末尾附一行网页端同款汇总(「执行了 1 条命令 · 读取了 1 个文件 · 搜索了 2 次」),点击即可折叠/展开该段;输入框上方的活动行同时说明当前动作(工具标题 + 摘要),不再是笼统的「执行工具…」。present 一致):模型交付的文件在回合尾渲染为卡片——文件名 + 描述、打开 按钮(已跟踪文件直接打开 HEAD→工作区 diff)与 ⋯ 菜单(用默认应用打开 / 在资源管理器中显示)。dsh-git-rollback 在每个回合开始时把工作区 git 状态(含未跟踪文件)快照到隐藏引用(refs/dsh/checkpoints/<sid>,用户分支历史零污染)并记录在 .dsh/rollback;点击按钮即可把工作区恢复到该回合之前的状态。/rollback [N]、/redo、/checkpoints 命令在 web 命令面板与 VS Code 聊天面板通用——回退非破坏性(先存保存点,/redo 可恢复,ignored 文件永不触碰)。每条消息的 ⋯/分支菜单另提供 「撤销本回合改动」(先预览后确认的审核弹窗,只反向应用该回合自身产生的文件改动——你自己的提交与 HEAD 完全不受影响)、「查看检查点」 与「撤销本回合变更并从此处新建分支」。网页端