← 返回列表
⚠ 装前注意
适用于 VS Code 的 DeepSeek Harness dsh-vscode
基本兼容但装前注意:npm 同名包「dsh-vscode」归属 dushaobindoudou/dsh-vscode,装到的可能不是本插件 · 最近上游提交 2026/9/15 · 已提供中文文档
VS Code 的 DeepSeek Harness:@dsh 聊天参与者、侧边栏与独立聊天、计划模式、目标、子代理、回合级 Git 回滚、工作区/任务/设置面板、13 种语言界面。
综合分
42.2
GitHub 分
42.2
用户评分
—
★ Stars
10
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add NEXTINDIE/DeepSeek-Harness-for-VS-Codenpm 同名包「dsh-vscode」归属 dushaobindoudou/dsh-vscode,装到的可能不是本插件,改用 GitHub 源安装
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-vscode @ 0.0.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
npm 同名包「dsh-vscode」归属 dushaobindoudou/dsh-vscode,装到的可能不是本插件
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/17 23:39:02
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
适用于 VS Code 的 DeepSeek Harness (dsh-vscode)
使用此扩展前:请先在终端中启动 DeepSeek Harness 服务器——扩展会在 VS Code 内连接到它。
npx @deepseek-ai/dsh web
中文版 | 发布者:Jager · 最新版本:0.13.17
在 VS Code 中直接使用 DeepSeek Harness(dsh),与 ChatGPT / Copilot 并肩协作:内置的 @dsh 聊天参与者、辅助侧边栏 / 独立聊天窗口、工作区 / 任务 / 轨迹 / 设置面板、回合级 Git 回滚,以及多语言 UI(简体中文 / 繁體中文 / English / 日本語 / 한국어 / Deutsch / Français / Español / Português / ไทย / Bahasa Indonesia / Türkçe / Русский / العربية——跟随 VS Code 显示语言或手动切换)。
适用于 VS Code 的 DeepSeek Harness
功能
- 内置聊天参与者 @dsh:在原生 Chat 面板(Ctrl+Alt+I)中输入 @;流式回复,带工具调用和批准按钮;斜杠命令 /new、/session 、/preset 。
- 辅助侧边栏标签页:在 VS Code ≥ 1.106 上,容器会出现在辅助侧边栏中(在旧版本上回退到活动栏)。
- 独立聊天窗口:DSH: Open Standalone Chat Window。
- 现代聊天 UI:大号圆角输入框、胶囊工具栏(思考深度 / 模型 / 预设 / 权限),以及输入框右上角、预设胶囊右侧的上下文计量环(与网页版一致:点击可查看“已用上下文”、约已用 / 窗口读数,以及系统提示词 / 工具定义 / 对话的明细,带颜色编码的条形分段和各类别 token 计数)。输入框下方有两个会话统计胶囊(与网页版一致):4 turns 285 steps · 267 tok/s(点击查看会话统计——LLM 时间、工具时间、平均 TTFT、输出 TPS)和 71M tok · 99.6% cache hit(点击查看 token 用量——精确总量、缓存命中、未缓存输入、缓存读取/写入、输出)。
- 逐消息操作(极简线条图标):复制(双矩形图标)/ 分支(分叉线条图标;菜单:逆时针箭头“回退到此处” · 分叉图标“从此处分支” · 左上折叠“分支并回退到更早位置” · 左上箭头“返回主线”)/ 点赞/点踩(线条图标,官方 /feedback)/ 消息头部显示模型 · 思考时间 · 每步 token。
- 回合页脚统计(与网页版一致):一个 Usage 25.8K tok 胶囊(点击查看提供商/模型、缓存命中率、未缓存输入、缓存读取/写入、输出及推理占比)、一个 Ran for 5m 57s 胶囊(点击查看回合总时间、输出 TPS、首 token 时间),以及该行最右端结束消息的本地时钟(HH:mm,更早日期为 M/D HH:mm,其他年份为 Y-M-D HH:mm)。会话运行期间,较早回合的操作行和统计会保持隐藏,并在悬停时淡入(只有已结束的最新回合会显示它们)——即网页版的 data-actions-reveal 行为。
- 步骤时间线(Web ToolRow / ThinkRow 对等):思考和工具调用在左侧轨道上渲染为单行流程行——思考 • (流式输出时展开,思考结束后折叠,手动切换状态保留)以及 Read/Write/Pwsh/Grep • ,带有状态圆点、运行中的扫描动画,点击后可查看完整参数/结果(以及图片结果)。长 JSON 不再淹没整行。
- 交付文件卡片(Web present 对等):模型交付的文件以卡片形式出现在回合末尾——文件名 + 描述、一个 Open 按钮(打开文件,或对已跟踪文件打开 HEAD→工作区差异)以及一个 ⋯ 菜单,包含“用默认应用打开”和“在文件资源管理器中显示”。
- 回合级 Git 回滚(每个助手回合上的 ↩ 按钮 + 分支菜单项):DSH 服务端插件 dsh-git-rollback 在每个回合开始时将工作区的 git 状态(已跟踪 + 未跟踪文件)快照到隐藏引用(refs/dsh/checkpoints/,对你的分支历史零污染),并记录在 .dsh/rollback 下;该按钮将工作区恢复到该回合之前的状态。命令 /rollback [N]、/redo、/checkpoints 在 Web 命令面板和 VS Code 聊天中均可使用(回滚是非破坏性的:回滚前状态会先被保存,/redo 可恢复它,被忽略的文件永远不会被触碰)。每条消息的 ⋯/分支菜单还提供 “撤销本回合的文件更改”(预览并确认的审查对话框,仅反转该回合更改的文件——你自己的提交和 HEAD 保持不变)、“查看检查点” 以及“撤销本回合的更改并从此处分叉”。Web 聊天开箱即得相同的 Copilot 风格回合分隔线和浮动恢复对话框(插件 Web 部分,通过 DSH 客户端模块管道提供)。
撤销回合更改审查对话框
带有撤销 / 检查点 / 分支的消息操作
- 可折叠推理(默认隐藏)以及每回合工具摘要(“本回合调用了 N 个工具”)。
- 交付物框:每回合生成的文件列在对话末尾,点击即可打开。
- 会话管理:⋯ 菜单,包含分叉 / 重命名(预填标题)/ 归档。
- 目标:进度卡片 + 🎯 标签,支持编辑 / 完成 / 清除。
- 待办面板(Web TodoPanel 对等,停靠在输入框上方):清单图标 + “待办” + 仅列出非零计数的按状态摘要(“2 已完成 · 1 进行中 · 1 待处理”),可折叠列表,带有 Web 的三种状态图标(绿色对勾圆环 / 旋转渐变圆环 / 虚线圆环)。
- 计划模式:/plan 后出现 📝 标签,点击退出。
- 附件:自动附加活动编辑器文件(跟随编辑器切换)+ 添加文件/文件夹(独立选择器);上下文注入模型但显示为折叠状态。
- 子代理:状态标签,带最近回复预览。
- 技能:在 / 菜单中列出可用技能(官方 skill.list)。
- .claude / .codex / GitHub Copilot 目录:CLAUDE.md / AGENTS.md 由 DSH 核心自动加载;.claude/commands、.claude/skills、.codex/skills(SKILL.md)、.github/copilot-instructions.md、.github/instructions、.github/agents 和 .github/prompts 会列在 / 菜单中,并可插入。
- 权限:只读 / 工作区写入 / 完全访问切换(官方 /permission 命令)。
- 跨项目会话:按文件夹的 @dsh 会话;多根工作区跟随活动编辑器;dsh.participantSessionMode: global 可共享一个会话。
- 工作区浏览器(📁 按钮,与 Web Workspaces 对等):会话按工作区分组;添加 / 重命名 / 删除 / 重新排序工作区;按组进行会话排序和归档;会话内容搜索(即时标题匹配 + 服务器内容搜索,索引禁用时使用本地回退);行显示等待批准 / 计划审查 / 提问 / 运行状态。
- 后台任务面板(⚙️ 按钮):当前会话的 bash / pwsh / 子代理任务,带状态、耗时和详情,实时来自 session/jobs 帧。
- 轨迹视图(🧭 按钮,与 Web Trajectory 对等):按轮次感知的事件账本(seq · time · type · summary · token usage),点击展开完整事件 JSON,支持类型筛选。
- 设置面板(⚙️ 按钮,与 Web Settings 对等):常规设置(每个命名空间的 schema 驱动表单、重启徽章、按命名空间重置)、模型与提供商(提供商路由目录 + 模型目录 + 端点模型发现)、凭据管理(API 密钥设置/清除)、代理预设编写(查看组合 / 复制 / 打开目录编辑 cordis.yml / 删除用户预设)。
设置面板
- 子代理对话:点击子代理标签可打开其记录;可继续的子代理接受提示(subagent.prompt)和中断(subagent.interrupt)。
- 图片附件:🖼️ 添加图片(官方图片内容块通道),在发送和历史回放中均可用。
- 排队消息操作:排队消息可编辑 / 删除 / 引导(官方 session.updateQueue)。
- 目标创建:当不存在目标时,🎯 标签会创建一个目标(goal.create,带目标和轮次上限)。
- 一键提交消息:源代码管理标题栏中的 ✨ 按钮(DSH: Generate Commit Message)读取已暂存/未暂存的 git diff,并在一次性会话中生成 Conventional Commits 风格的消息(立即归档,从不显示在会话列表中),使用轻量模型(默认 deepseek-v4-flash + 低 effort;可通过 dsh.commitModel / dsh.commitReasoningEffort 配置),将结果写入 SCM 输入框,并在超时或模型请求额外交互时自动取消。
- 国际化:简体中文 / 繁体中文 / 英语 / 日语 / 韩语 / 德语 / 法语 / 西班牙语 / 葡萄牙语 / 泰语 / 印尼语 / 土耳其语 / 俄语 / 阿拉伯语 — 跟随 VS Code 显示语言,或通过 dsh.language / 设置面板的 🌐 部分就地切换。
安装
cd
npm install
npm run package # outputs Releases/dsh-vscode-.vsix
VS Code → 扩展 → … → 从 VSIX 安装 → 选择 Releases\ 中的文件 → 重新加载。
前提条件:VS Code ≥ 1.90(内置聊天 ≥ 1.95;辅助侧边栏容器 ≥ 1.106);DSH CLI 或 npx 回退;已配置模型凭据(与 dsh web 相同)。
使用亮点
- 按 Enter 发送,按 Shift+Enter 换行;运行期间发送按钮(纸飞机线条图标)变为停止(方形线条图标),输入内容会使其变回发送(排队发送)。
- / 按钮(左下角):命令菜单(plan / compact / goal / feedback / permission / skills / .claude)。大多数条目会将命令插入输入框(按 Enter 运行);压缩上下文 会直接运行 /compact,对话中会显示实时压缩行 — 压缩时显示扫描动画,然后显示“已压缩 N 条历史记录(约 T 个 token)”,摘要可展开,被压缩的范围会折叠到该行中(自动压缩时也会出现同一行)。
- 旁边的 + 按钮:添加文件 / 添加文件夹;蓝色标签是自动附加的活动文件。
- 消息操作:点击分叉线条图标打开分支/回退菜单 — 逆时针箭头“回退到此处”,分叉图标“从此处分叉”,左上折返“分叉并回退到更早位置”,以及当 git 回滚插件启用时的“撤销本轮文件更改” / “查看检查点”;分支会话还会显示左上箭头“返回主分支”。每个助手回合上的逆时针箭头(当 DSH 服务端插件启用时)会将工作区恢复到该回合之前的状态。
- 会话 ⋯ 菜单:分叉 / 重命名 / 归档;右上角的预设胶囊(仅新会话);右下角的思考 / 模型胶囊。
- 源代码管理标题栏:✨ 按钮会根据当前差异生成 Conventional Commits 消息并填入 SCM 输入框(打开多个仓库时会出现选择器)。
- 上下文菜单:选中内容 → DSH: Send Selection to @dsh;文件 → DSH: Ask @dsh About This File。
配置
| 键 | 默认值 | 描述 |
| --- | --- | --- |
| dsh.url | http://127.0.0.1:3080 | DSH Web 服务器 URL |
| dsh.autoStart | true | VS Code 启动时,如果服务器未运行,则启动 dsh web |
| dsh.command | dsh | 启动命令;回退到 npx |
| dsh.autoStartTimeoutSec | 60 | 自动启动超时(秒) |
| dsh.participantSessionMode | per-workspace | @dsh 会话范围:按项目 / 全局 |
| dsh.openPanelOnStartup | false | 启动时打开独立窗口 |
| dsh.defaultReasoningEffort | "" | 新会话的默认思考深度(off/high/max,取决于模型) |
| dsh.commitModel | deepseek-v4-flash | 用于生成提交信息的模型(从 DSH 模型目录中解析;回退到会话的当前模型) |
| dsh.commitReasoningEffort | low | 提交信息的推理强度(low = 在 DeepSeek 模型上不进行思考,速度最快) |
| dsh.language | auto | UI 语言:auto / zh-cn / zh-tw / en / ja / ko / de / fr / es / pt / th / id / tr / ru / ar |
| dsh.installRollbackPlugin | true | 自动将轮次级 Git 回滚服务器插件安装到 DSH Web 配置中(启用 /rollback、/redo、/checkpoints) |
轮次级 Git 回滚设置
- 自动(默认):该扩展附带 dsh-git-rollback 服务器插件(主机端 + Web 客户端两半),并在激活时将其安装到你的 DSH Web 配置(~/.dsh/profiles/web)中(幂等、带版本跟踪)。如果你的 DSH 服务器已在运行,当扩展检测到该插件尚未加载时,会提供一键重启。Web 客户端部分会在下次服务器启动时由 DSH 客户端模块流水线自动加载——无需手动设置。
- 手动(Web GUI 用户 / 其他配置):在终端中执行 dsh plugin --profile web add dsh-git-rollback(已发布到 npm),然后重启 dsh web。
- 要求:以 Git 仓库作为会话工作区;快照会在每个轮次开始时(turn/start)生成,并通过 .dsh/rollback 记录 + 隐藏引用(refs/dsh/checkpoints/)在服务器重启后保留。可通过 dsh.installRollbackPlugin: false 禁用自动安装。
故障排除
- 没有显示任何内容 → 重新加载窗口;运行 DSH: Show Diagnostics;检查扩展运行时状态是否有验证错误。
- “No registered data provider” → 运行 DSH: Repair Chat View (Reset View Locations) 或 Restart Extension Host。
- Webview 中的 Service Worker 错误 → VS Code 1.100.x 平台 bug:更新 VS Code 或清除 %APPDATA%\Code\Service Worker\CacheStorage。
- “agent preset is fixed” → 已启动的会话无法切换预设;预设胶囊仅对新会话显示。
- 未连接 → 运行 DSH: Start Server;检查 dsh.url。
- 服务器版本:此构建面向 DSH 0.1.5-rc.1,并协商已更改的附件参数名称,因此 0.1.2-rc.1 服务器仍可正常工作(命令、子代理提示、流式传输);将服务器升级到 0.1.5 还会带来实时流式帧、V3 会话日志和上下文分解投影。
- 服务器未自动启动 → 扩展每 15 秒重试一次,并在服务器启动后立即连接;请参阅“DeepSeek Harness”输出通道中的 [server] 日志。如果错误提到 0xC0000142/EPERM,则说明 VS Code 是从 DSH 会话或受限终端启动的(子进程创建被阻止)——请正常启动 VS Code,或将该会话的权限设置为 danger-full-access。
开发
npm install
npm run typecheck
npm run build
npm run package # → Releases/
- 宿主:src/extension.ts、src/dsh/(API 客户端、服务器管理器、会话存储、聊天参与者、项目-会话映射、提交消息生成)。
- UI:src/webview/{channel,panel,window,ui}.ts + media/chat.css;图标 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、ui.ts 中的 EN_TEXT 字典 + src/webview/texts/.json。
- 服务器插件:源码位于 plugins// 下(所有新的 DSH 服务器插件都放在那里);npm run build 会编译它们,并通过 tools/sync-plugins.mjs 将打包内容同步到 resources//,以便打包进 vsix。单元测试:cd plugins/ && npm test。
DeepSeek Harness for VS Code (dsh-vscode)
使用前请先启动 DSH Web 服务:先在命令行中执行以下命令,安装并启动 dsh web,之后才能在 VS Code 中使用本插件。
npx @deepseek-ai/dsh web
English version | 发布者:Jager · 最新版本:0.13.17
在 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 、/preset 斜杠命令。
- 辅助侧栏子 tab:VS Code ≥ 1.106 时容器直接出现在辅助侧栏(与 ChatGPT 等并列);旧版本自动回退到活动栏图标。
- 独立聊天窗口:编辑器区 WebviewPanel,命令 DSH: 打开独立聊天窗口。
- 现代聊天界面:大号圆角输入框、胶囊工具栏(思考深度 / 模型 / 预设 / 权限),以及输入框右上角、预设胶囊右侧的上下文进度环(与网页端一致:点击展开「上下文已用」读数 ~已用 / 上限,以及 系统提示词 / 工具定义 / 对话消息 三段彩色构成与各自 token 数)。输入框下方是两枚会话统计胶囊(与网页端一致):4 轮 285 步 · 267 tok/s(点击展开 会话统计:模型用时 · 工具调用用时 · 首 token 平均 TTFT · 输出速度 TPS)与 71M tok · 缓存命中 99.6%(点击展开 Token 用量:精确总量 · 缓存命中 · 未缓存输入 · 缓存读取/写入 · 输出)。
- 消息操作条(每条回答下方,简约线条图标):复制(双层矩形图标)/ 分支(分叉线条图标,点击展开菜单:逆时针箭头“回退到此处” · 分叉图标“从此处新建分支” · 左上折线“分支并回退到更早位置” · 左上箭头“回到主线”)/ 点赞、点踩(拇指线条图标,官方 /feedback 记录)/ 消息头显示模型名 · 思考耗时 · 本步 token 消耗。
- 回合尾统计(与网页端一致):用量 25.8K tok 胶囊(点击展开 提供方/模型 · 缓存命中率 · 未缓存输入 · 缓存读取/写入 · 输出(含推理占比))、用时 5分57秒 胶囊(点击展开 本轮总用时 · 输出速度 TPS · 首 token 用时 TTFT),最右侧显示收尾消息的本地时间(当天 HH:mm,更早 M月D日 HH:mm,跨年 Y年M月D日 HH:mm)。会话运行中,历史回合的操作条与统计默认隐藏、悬停该条消息才淡入(网页端 data-actions-reveal 同款),只有已结束的最新回合常显。
- 过程时间线(与网页端 ToolRow / ThinkRow 一致):思考与工具调用渲染为左侧导轨上的一行——思考 • (流式期间展开,思考结束自动收起,手动开合会被保留)与 读取 / 写入 / Pwsh / Grep • (状态点 + 运行中扫光),点击展开完整参数/结果(含图片结果);不再把整段 JSON 铺在行上。
- 交付文件卡(与网页端 present 一致):模型交付的文件在回合尾渲染为卡片——文件名 + 描述、打开 按钮(已跟踪文件直接打开 HEAD→工作区 diff)与 ⋯ 菜单(用默认应用打开 / 在资源管理器中显示)。
- 回合级 Git 回退(每条助手回答上的 ↩ 按钮 + 「分支/回退」菜单项):DSH 服务端插件 dsh-git-rollback 在每个回合开始时把工作区 git 状态(含未跟踪文件)快照到隐藏引用(refs/dsh/checkpoints/,用户分支历史零污染)并记录在 .dsh/rollback;点击按钮即可把工作区恢复到该回合之前的状态。/rollback [N]、/redo、/checkpoints 命令在 web 命令面板与 VS Code 聊天面板通用——回退非破坏性(先存保存点,/redo 可恢复,ignored 文件永不触碰)。每条消息的 ⋯/分支菜单另提供 「撤销本回合改动」(先预览后确认的审核弹窗,只反向应用该回合自身产生的文件改动——你自己的提交与 HEAD 完全不受影响)、「查看检查点」 与「撤销本回合变更并从此处新建分支」。网页端聊天开箱即用地获得同款 Copilot 风格回合分隔线与悬浮还原弹窗(插件 web 半区,经 DSH client-modules 管线分发)。
撤销本回合改动审核弹窗
消息操作菜单(撤销 / 检查点 / 分支)
- 思考过程折叠:💭 思考过程默认收起,点击展开;工具调用每轮折叠为一行摘要"本轮调用 N 个工具"。
- 产物文件框:每轮结束在对话末尾显示生成的文件列表,点击在编辑器中打开。
- 会话管理:会话下拉旁的 ⋯ 菜单支持 分叉 / 重命名(预填当前标题)/ 归档(仍保留在服务器)。
- 目标(goal):goal 进度卡(目标 · 阶段 · 轮次 · 进度条)+ 🎯 目标模式芯片,点击可 修改 / 完成 / 清除目标。
- 任务清单(与网页端 TodoPanel 同款,停靠在输入框上方):清单图标 + 「任务」+ 只列非零状态的进度摘要(如「2 已完成 · 1 进行中 · 1 待处理」),点击折叠/展开清单;三种状态图标与网页端一致(绿勾圆环 / 旋转渐变圆环 / 虚线圆环)。
- 计划模式:/ 命令菜单选"计划模式"后出现 📝 芯片,点击退出;plan/mode 状态实时同步。
- 附件:自动附加当前激活文件(跟随编辑器切换,蓝色芯片)+ 手动添加文件/文件夹(二选一菜单);发送时上下文注入模型,界面默认折叠为"📎 附件上下文"卡片,不展开文件内容。
- 子代理:对话底部显示子代理芯片(运行状态),点击查看最近回复。
- 技能:/ 菜单列出会话可用技能(官方 skill.list),点击插入提示词。
- .claude / .codex / GitHub Copilot 目录:CLAUDE.md / AGENTS.md 由 DSH 核心自动读取(菜单显示 ✅);.claude/commands 与 .claude/skills、.codex/skills(SKILL.md)、.github/copilot-instructions.md、.github/instructions、.github/agents、.github/prompts 均可在 / 菜单中查看并插入使用。
- 读写权限:权限胶囊切换只读 / 工作区可写 / 完全访问(危险),官方 /permission 命令。
- 跨项目会话:每项目(工作区文件夹)独立 @dsh 会话;多根工作区跟随活动编辑器;/session 显式切换;dsh.participantSessionMode: global 可全局共用。
- 工作区浏览器(📁 按钮,网页端 Workspace 对齐):按工作区分组显示会话;添加 / 重命名 / 删除 / 上移下移工作区,组内会话排序与归档;会话内容搜索(标题即时匹配 + 服务器内容搜索,后端索引禁用时自动回退本地匹配);会话行显示 等待审批 / 计划待审 / 等待回答 / 运行中 状态。
- 后台任务面板(⚙️ 按钮):当前会话的 bash / pwsh / 子代理等后台任务清单(状态 · 起止时间 · 耗时 · 明细),随 session/jobs 帧实时刷新。
- 轨迹视图(🧭 按钮,网页端 Trajectory 对齐):按回合组织的事件台账(序号 / 时间 / 类型 / 摘要 / token 用量),点击展开完整事件 JSON,支持类型筛选。
- 设置面板(⚙️ 按钮,网页端 Settings 对齐):常规设置(schema 驱动表单,全部命名空间,含"需重启"标注与命名空间重置)、模型与供应商(供应商路由目录 + 模型目录 + 发现模型端点探测)、凭据管理(API Key 写入 / 清除)、Agent 预设管理(查看组合文本 / 复制新预设 / 打开预设目录编辑 cordis.yml / 删除用户预设)。
设置面板
- 子代理对话:点击子代理芯片打开完整记录;continuable 子代理可直接追问(subagent.prompt)与打断(subagent.interrupt)。
- 图片附件:🖼️ 添加图片(官方 image 内容块通道),发送与历史回放均支持。
- 排队消息操作:排队消息条可 编辑 / 移除 / 插队(session.updateQueue 官方端点)。
- 目标创建:无目标时 🎯 芯片一键创建(goal.create,目标描述 + 最大轮数)。
- 一键生成提交信息:源代码管理(SCM)视图标题栏 ✨ 按钮(DSH: 生成提交信息),读取 git 暂存/未暂存 diff,在一次性会话(创建即归档,不占用会话列表)中用轻量模型按 Conventional Commits 风格生成提交信息并写入 SCM 输入框;模型与思考深度可配置(dsh.commitModel / dsh.commitReasoningEffort),超时或模型请求额外交互时自动取消。
- 多语言:扩展与聊天界面支持简体中文 / 繁體中文 / English / 日本語 / 한국어 / Deutsch / Français / Español / Português / ไทย / Bahasa Indonesia / Türkçe / Русский / العربية——跟随 VS Code 显示语言,或通过设置 dsh.language / 设置面板 🌐 就地切换。
安装
方式一:安装 .vsix(推荐)
cd
npm install
npm run package # 生成 Releases/dsh-vscode-.vsix
VS Code 中:扩展 → … → 从 VSIX 安装 → 选择 Releases\ 下的 .vsix → 重载窗口。
方式二:开发模式(F5)
npm install
npm run watch
用 VS Code 打开本目录,按 F5 启动扩展开发宿主。
前置条件
- VS Code ≥ 1.90;内置聊天 @dsh 需要 ≥ 1.95;辅助侧栏容器需要 ≥ 1.106(旧版自动回退活动栏)。
- DSH CLI(dsh),或允许扩展用 npx --yes @deepseek-ai/dsh@latest 自动启动服务器。
- DSH 已配置模型凭证(与 dsh web 一致)。
使用
| 入口 | 说明 |
| --- | --- |
| 内置 Chat @dsh | 输入 @ 选 dsh;DSH: 打开内置聊天 (@dsh) 或状态栏 DSH 图标可自动填入 |
| 辅助侧栏 tab | 视图 → 外观 → Secondary Side Bar(Ctrl+Alt+B) |
| 独立窗口 | DSH: 打开独立聊天窗口 |
| SCM 提交按钮 | 源代码管理视图标题栏的 ✨ 按钮(DSH: 生成提交信息),多仓库时弹出选择 |
- 输入框:Enter 发送,Shift+Enter 换行;运行中发送按钮(纸飞机线条图标)变为停止(方块线条图标),输入文字变回发送(消息排队)。
- 左下角 / 按钮:命令菜单(计划模式 / 压缩上下文 / 设置目标 / 记录反馈 / 切换权限 / 技能 / .claude 命令与技能)。多数项插入命令到输入框(回车执行);压缩上下文点击即执行 /compact,对话内实时显示压缩行 —— 压缩中扫光,完成后显示「已压缩 N 条历史记录(约 T tokens)」且摘要可展开,被压缩的区间折叠进该行(自动压缩同样单列一行)。
- 左上角 + 按钮:添加文件 / 添加文件夹(二选一);附件行蓝色芯片为自动附加的激活文件(× 移除)。
- 消息操作条:点击分叉线条图标打开分支/回退菜单 —— 逆时针箭头“回退到此处”(去掉本条及之后)、分叉图标“从此处新建分支”(保留到此)、左上折线“分支并回退到更早位置”,以及 git-rollback 插件激活时的“撤销本回合改动 / 查看检查点”;分叉会话另有左上箭头“回到主线”。
- 会话 ⋯ 菜单:分叉 / 重命名 / 归档;右上角“预设”胶囊(仅新会话显示);右下角“思考 / 模型”胶囊。
- 模式芯片:📝 计划模式(点击退出)、🎯 目标模式(点击管理目标)。
- 右键菜单:编辑器选中代码 → DSH: 发送选中代码到 @dsh;文件右键 → DSH: 向 @dsh 询问此文件。
配置
| 配置项 | 默认值 | 说明 |
| --- | --- | --- |
| dsh.url | http://127.0.0.1:3080 | DSH Web 服务器地址(修改后需重载) |
| dsh.autoStart | true | VS Code 启动时若服务器未运行则自动启动 dsh web |
| dsh.command | dsh | 启动命令;找不到时回退 npx |
| dsh.autoStartTimeoutSec | 60 | 自动启动最长等待秒数 |
| dsh.participantSessionMode | per-workspace | @dsh 会话范围:每项目 / 全局 |
| dsh.openPanelOnStartup | false | 启动时自动打开独立聊天窗口 |
| dsh.defaultReasoningEffort | "" | 新会话默认思考深度(off/high/max 等,取决于模型) |
| dsh.commitModel | deepseek-v4-flash | 生成提交信息所用的模型(从 DSH 模型目录解析,找不到时回退当前模型) |
| dsh.commitReasoningEffort | low | 生成提交信息时的思考深度(DeepSeek 模型上 low 表示不开思考,最快) |
| dsh.language | auto | 界面语言:auto / zh-cn / zh-tw / en / ja / ko / de / fr / es / pt / th / id / tr / ru / ar |
| dsh.installRollbackPlugin | true | 自动把回合级 Git 回退服务端插件安装到 DSH web profile(启用 /rollback、/redo、/checkpoints) |
回合级 Git 回退的安装
- 自动(默认):扩展随包携带 dsh-git-rollback 服务端插件(host + 网页端 client 两半),激活时幂等安装到你的 DSH web profile(~/.dsh/profiles/web,带版本标记增量更新)。若 DSH 服务器已在运行,扩展检测到插件未加载时会提示一键重启(仅限本扩展启动的服务器)。网页端 client 半区在下次服务器启动时由 DSH client-modules 管线自动发现,无需手动配置。
- 手动(web 界面用户 / 其他 profile):终端执行 dsh plugin --profile web add dsh-git-rollback(已发布到 npm),然后重启 dsh web。
- 前提:会话工作区是 git 仓库;每个回合开始(turn/start)自动快照,重启服务器后检查点依然可用(记录在 .dsh/rollback + 隐藏引用 refs/dsh/checkpoints/)。可设置 dsh.installRollbackPlugin: false 关闭自动安装。
故障排查
- 扩展没出现:确认已重载窗口;扩展面板查看运行时状态有无校验错误;命令面板执行 DSH: 显示诊断信息。
- 视图占位“没有已注册数据提供程序”:执行 DSH: 修复聊天视图(重置视图位置),或命令面板 Restart Extension Host。
- Webview 报 Service Worker 错误:VS Code 1.100.x 平台缺陷,升级 VS Code 或清空 %APPDATA%\Code\Service Worker\CacheStorage。
- “agent preset is fixed”:已开始的会话不可切换预设,预设胶囊只在新会话显示。
- 未连接:执行 DSH: 启动服务器;检查 dsh.url 端口。
- 服务器版本:本版本面向 DSH 0.1.5-rc.1,并会对改名的附件参数做协商,因此 0.1.2-rc.1 服务器同样可用(命令、子代理消息、流式输出);服务器升级到 0.1.5 后另有逐 token 流式帧、V3 会话日志与上下文构成投影。
- 启动时无法自动启动服务器:扩展会在 VS Code 启动时自动启动 dsh web(失败后每 15 秒重探,服务器上线即自动连接);具体失败原因见输出通道 "DeepSeek Harness" 的 [server] 日志。若报错含 0xC0000142/EPERM,说明 VS Code 是从 DSH 会话或受限终端启动的(子进程创建被拦截)——改用普通方式启动 VS Code,或把该会话权限调为 danger-full-access。
开发
npm install
npm run typecheck # 类型检查
npm run build # 构建
npm run package # 打包到 Releases/
- 宿主代码:src/extension.ts、src/dsh/(API 客户端 / 服务器管理 / 会话存储 / Chat Participant / 项目会话映射 / 提交信息生成)。
- 界面:src/webview/{channel,panel,window,ui}.ts + media/chat.css;图标 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(宿主运行时)、ui.ts 的 EN_TEXT 词典 + src/webview/texts/.json(Webview)。
- 服务端插件:源码统一放在 plugins//(以后所有新插件都建在此目录);npm run build 会自动编译并同步到 resources//(tools/sync-plugins.mjs)随 vsix 打包分发。插件单元测试:cd plugins/ && npm test。扫码进群