Back to home

name-loading

dsh-vscode

Use DeepSeek Harness (DSH) directly inside the VS Code sidebar by embedding its web UI. Reuses an already-running `dsh web` server, or launches one for you.

Stars
0
Language
JavaScript
Created
Aug 14, 2026
Updated
Aug 14, 2026

Introduction

dsh-vscode

DeepSeek Harness (DSH) 的完整 Web UI 嵌入到 VS Code 侧栏,像 Codex 的扩展那样在编辑器里直接使用 DSH。

侧栏 Webview 用 <iframe> 复用现有的 dsh web 页面,因此会话、流式输出、工具卡片、审批、预设、设置等全部功能都原样可用;扩展只负责「找到 / 拉起 DSH 服务 + 放进侧栏 + 恢复最近会话」。

功能

  • 嵌入完整 DSH:侧栏 iframe 直连 loopback 上的 dsh web,功能与浏览器一致。
  • 复用优先127.0.0.1:3080 上已有健康 DSH 就直接接入,绝不重复启动。
  • 自动拉起:没在跑就按配置自动启动 dsh web,探活成功后再挂载 iframe。
  • 恢复最近会话:读取服务端 session.list,取最近一条非空会话,拼 ?session=<id> 打开,不再每次都落进新空会话。
  • 进程归属:只终止「自己拉起的」进程;复用外部进程时不接管它的生死。
  • 状态栏指示 + Start / Stop / Open in Browser 三个命令。

依赖

  • DeepSeek Harnessdsh web 服务)。
  • 「恢复最近会话」依赖 DSH Web 客户端支持 ?session=<id> 深链——见 docs/harness-deep-link-pr.md(含给官方 harness 的 PR 文本与补丁)。未合入前,扩展仍可用,只是 dsh.resumeRecent 静默失效(落到默认会话)。

安装

方式 A:VS Code Marketplace(发布后)

code --install-extension dsh-community.dsh-vscode

或在扩展面板搜索 "DSH"。

方式 B:本地安装

# 打包
npm install -g @vscode/vsce
vsce package
# 安装生成的 .vsix
code --install-extension dsh-vscode-0.1.0.vsix

方式 C:开发 / 直接放入扩展目录

git clone <repo-url> ~/.vscode/extensions/dsh-vscode

然后 Ctrl+Shift+PReload Window,点左侧活动栏的 DSH(鲸鱼)图标。

配置

开箱即用:默认 dsh.command = dshdsh.args = ["web"]dsh.cwd = ""——适配 npm i -g @deepseek-ai/dshdsh 在 PATH 上的用户,且默认复用已运行的 DSH。

设置默认说明
dsh.commanddsh启动 DSH 的可执行文件
dsh.args["web"]传给 command 的参数
dsh.cwd""进程工作目录(空 = 继承 VS Code)
dsh.host127.0.0.1绑定主机(侧栏只能嵌入 loopback)
dsh.port3080监听端口
dsh.autoStarttrue视图可见且无服务时自动启动
dsh.reuseExistingtrue优先复用已运行的 DSH
dsh.resumeRecenttrue打开时恢复最近一条非空会话
dsh.startupTimeoutMs30000启动后等待可达的时长

源码 checkout(dsh 不在 PATH 上),在 VS Code 设置里加:

{
  "dsh.command": "pnpm",
  "dsh.args": ["run", "dsh", "web"],
  "dsh.cwd": "/path/to/deepseek-harness"
}

工作原理

VS Code 侧栏 Webview
   └─ <iframe src="http://127.0.0.1:3080/?session=<最近会话id>">
        └─ 现有 DSH Web UI(完整功能)
              └─ /api + WebSocket ──> dsh web 进程

已知限制

  • 只嵌入 loopback127.0.0.1 / localhost)上的 DSH;远程 DSH 请用浏览器。
  • 「恢复最近会话」取的是最近一条非空会话(按 updatedAt),并非跨端精确的 dsh.sessions.current
  • 尚未做「VS Code ↔ DSH」编辑器上下文桥(文件/选区注入、diff 预览、在 VS Code 打开)——可作后续路线图。

项目结构

.
├── package.json        # 扩展清单(视图容器、命令、配置项、图标)
├── extension.js        # 宿主逻辑:Webview 视图 + DSH 子进程生命周期 + 会话深链
├── media/
│   ├── dsh-icon.png    # 扩展商店图标(128×128,DSH 鲸鱼 logo,黑白)
│   ├── dsh.svg         # 活动栏图标(鲸鱼,currentColor 自适应主题)
│   ├── main.js         # 侧栏 Webview 脚本(iframe + 状态 overlay)
│   └── style.css       # 侧栏 Webview 样式
└── docs/
    └── harness-deep-link-pr.md  # 官方 harness 深链 PR 文本与补丁

纯 JavaScript、零构建步骤、无 npm 依赖(vscode 模块由扩展宿主在运行时提供)。

License

MIT