DeepSeek Harness Hub
← 返回列表

编辑器智能体面板Platohykj/dsh-vsc

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

在 VS Code 里聊天调用智能体改代码

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/16 · 已提供中文文档

VS Code 的非官方 DeepSeek Harness 客户端

综合分
27.6
GitHub 分
27.6
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Platohykj/dsh-vsc
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-vsc

非官方 DeepSeek Harness 的 VS Code 客户端

将完整的 DeepSeek Harness(dsh)智能体框架带入 VS Code —— 类 Copilot 的聊天、编辑器集成、会话管理和模型切换,尽在一个面板中。

[Status]()
Version
VS Code
License
PRs Welcome

[!WARNING]
这是一个非官方的社区项目 —— 并非 DeepSeek 的产品。
dsh-vsc 不隶属于 DeepSeek 或
deepseek-harness 团队,也未获得其认可或赞助。它是
一个独立的、尽力而为的开源框架 VS Code 客户端。

[!CAUTION]
非常早期的 alpha 版本 —— 使用风险完全自负。 此扩展会启动一个本地
dsh 智能体服务器,运行由模型驱动的代码。该智能体可以创建、修改和
删除你工作区中的文件,并且它会代表你调用 DeepSeek API,
消耗你的 token,并可能产生真实费用。本软件按“原样”提供,不附带任何形式的担保,
作者对因使用本软件而产生的任何错误、数据丢失或费用概不负责。使用前请
阅读完整的免责声明。

目录

- ✨ 功能特性
- ⚠️ 前提条件
- 🚀 快速开始
- 🖥️ 使用方法
- ⚙️ 配置
- ⌨️ 命令
- 🛠️ 开发
- 🧪 测试
- 🏗️ 架构
- 🗺️ 状态与路线图
- 🧩 已知限制
- 🤝 贡献
- 📄 许可证与免责声明

✨ 功能特性

- 💬 原生聊天面板(webview),支持流式输出、工具调用卡片、可折叠的推理过程以及完整的 Markdown 渲染。
- 🧠 会话管理 —— 新建 / 分叉 / 重命名,可折叠的会话侧栏,按会话切换模型与推理强度。
- 📝 编辑器集成 —— 右键询问 dsh 关于所选内容,以及解释 / 修复 / 生成测试 / 审查代码操作。
- 📂 类 Copilot 的文件变更行,带有 +新增 −删除 差异统计 —— 点击写入/编辑可打开整文件差异;读取则直接打开文件。
- 🛡️ 内联审批与提问,带有权限席位(审批预设)—— 直接在聊天输入框中作答。
- 🧮 上下文计量器,显示每轮和总计的 token 使用统计。
- 🗜️ 压缩 UI 和斜杠命令(/compact、/export、/feedback、/goal、/permission、/plan)。
- 🔑 API 密钥管理,可从命令面板 / 状态栏进行,并通过 dsh 服务器凭据存储持久化。
- 🚀 自动启动 dsh CLI —— 或连接到您已在运行的 dsh 服务器。

⚠️ 先决条件

| 要求 | 版本 | 备注 |
|---|---|---|
| VS Code | ^1.90.0 | 任何近期的稳定版本 |
| Node.js | >= 22 | 仅在从源码构建 / 运行扩展宿主时需要 |
| dsh CLI | 最新版 | 未捆绑 —— 使用 npm install -g @deepseek-ai/dsh 安装 |
| DeepSeek API 密钥 | — | 在扩展内设置,或通过启动 dsh 的 shell 中的 DEEPSEEK_API_KEY 设置 |

🚀 快速开始

1. 安装 dsh CLI

该扩展不捆绑 CLI —— 请先安装它:

npm install -g @deepseek-ai/dsh

然后重启 VS Code(或运行 dsh: Check dsh Installation)。该扩展将:

1. 在您的 PATH 中定位 dsh(或 dsh.cliPath 中设置的路径);
2. 使用 dsh --profile web --port 0 自动启动服务器并连接;
3. 当 CLI 缺失时,在状态栏中显示黄色警告 —— 点击它可打开安装终端。

已经在运行 dsh web 服务器?设置 dsh.connectionUrl(例如 http://127.0.0.1:3080),扩展将连接到它,而不是启动自己的服务器。

2. 安装扩展

选项 A —— 构建 VSIX 并安装:

npm install
npm run package     # → dsh-vsc-0.1.0.vsix
VS Code: Extensions → ⋯ → Install from VSIX...

选项 B —— 从源码运行:

npm install
npm run build
press F5 to launch the Extension Development Host

3. 快速开始

1. 打开聊天面板:dsh: Open dsh Chat(Ctrl+Alt+D)。
2. 在提示时设置您的 API 密钥,或随时使用 dsh: Set API Key 设置。
3. 输入一条消息 —— 将在您的工作区根目录创建一个新会话,代理随即开始工作。

🖥️ 使用方法

聊天面板

聊天面板是一个 Copilot 风格的对话界面:流式助手输出、工具调用卡片、可折叠的推理过程、上下文计量器以及每轮 token 统计。待处理的审批和问题会接管输入框,以便您内联回复。右侧的会话栏显示您的历史记录 —— 可创建、分叉、重命名,并按会话切换模型。

编辑器集成

选中代码并按下 dsh: Ask dsh About Selection(Ctrl+Alt+Shift+D)即可将其连同文件上下文一起发送,或使用编辑器上下文菜单或灯泡中的 Explain / Fix / Generate Tests / Review 代码操作。当代理编辑文件时,聊天中会出现 Copilot 风格的文件更改行,带有 +added −deleted 计数 —— 点击其中一行可打开整个文件的差异视图;读取调用会显示一行较淡的条目,直接打开该文件。

API 密钥
DeepSeek API 密钥通过 dsh 服务器的凭据机制存储(默认 ~/.dsh/.credentials.yaml,0600 权限),与 dsh Web UI 的 Models 页面一致。未配置密钥时,连接后会提示一次;你可以随时通过 dsh: Set API Key / dsh: Clear API Key 设置或清除它。点击 “dsh connected” 状态栏项可打开包含设置入口的菜单。

如果启动 dsh 的 shell 已设置 DEEPSEEK_API_KEY,它会被视为只读来源,扩展的写入将被拒绝——在通过扩展保存之前,请在启动 dsh 的 shell 中取消设置该变量。

快捷键

| 操作 | Windows / Linux | macOS |
|---|---|---|
| 打开 dsh Chat | Ctrl+Alt+D | Cmd+Alt+D |
| 询问 dsh 关于所选内容 | Ctrl+Alt+Shift+D | Cmd+Alt+Shift+D |

⚙️ 配置

所有设置都位于 settings.json 中的 dsh. 命名空间下(命令 dsh: Open dsh Settings):

| 设置 | 默认值 | 描述 |
|---|---|---|
| dsh.cliPath | "" | dsh 可执行文件的绝对路径;为空时搜索 PATH |
| dsh.connectionUrl | "" | 连接到正在运行的服务器;为空时自动启动 CLI |
| dsh.autoStart | true | 扩展激活时启动 dsh |
| dsh.autoConnectWorkspace | true | 启动后创建以工作区为根的会话 |
| dsh.cwdStrategy | workspace | 新会话的工作目录:workspace / firstWorkspace / host |
| dsh.agentPreset | standard | 新会话的代理预设;standard 会渲染工作目录并加载 AGENTS.md,minimal 则不会 |
| dsh.provider / dsh.model | "" | 新会话的默认提供商 / 模型(为空 = dsh 默认值) |
| dsh.reasoningEffort | "" | 模型支持时的默认推理强度 |
| dsh.webviewTheme | auto | 聊天面板主题:跟随 VS Code 或强制浅色 / 深色 |
| dsh.autoScrollThreshold | 100 | 流式传输期间的自动滚动阈值(距底部像素数) |
| dsh.notifyOnChanges | true | 当代理修改文件时显示通知 |

⌨️ 命令

| 命令 | 描述 |
|---|---|
| dsh: Open dsh Chat | 打开聊天面板 |
| dsh: Start dsh / Stop dsh / Restart dsh | 管理 dsh 服务器 |
| dsh: New Session | 创建新会话 |
| dsh: Session History | 打开聊天面板并浏览历史记录 |
| dsh: Select Model | 切换当前会话的提供商 / 模型 / 推理强度 |
| dsh: Set API Key / Clear API Key | 管理 DeepSeek API 密钥 |
| dsh: Ask dsh About Selection | 将所选内容连同文件上下文发送给 dsh |
| dsh: Explain / Fix with dsh / Generate Tests / Review with dsh | 编辑器右键菜单 / 代码操作 |
| dsh: Stop Current Response | 取消当前响应 |
| dsh: Check dsh Installation | 检查 CLI 是否可用 |
| dsh: Install dsh CLI | 在终端中运行全局安装 |
| dsh: Open dsh Web UI in Browser | 在浏览器中打开 dsh Web UI |
| dsh: Open dsh Settings | 打开 dsh. 设置 |
| dsh: Show dsh Menu | 打开状态栏菜单 |

🛠️ 开发

npm install
npm run build     # esbuild → out/extension.js + out/webview/app.js
npm run watch     # 增量构建
npm test          # vitest(协议 / 会话折叠 / 纯函数单元测试)
npm run typecheck # tsc --noEmit
npm run lint      # eslint(扁平配置,推荐规则;见 eslint.config.mjs)
npm run package   # vsce package → dsh-vsc-.vsix

在 VS Code 中按 F5 启动扩展宿主(需要 Node ≥ 22)。

🧪 测试

npm test 仅运行单元测试(test//.test.ts),且从不需要 API 密钥。两个针对真实 dsh 服务器的集成测试在 CLI 缺失时会自动跳过:

- test/e2e-real-dsh.test.ts — 需要已构建的 deepseek-harness CLI;检出路径来自 DSH_REPO 环境变量,默认为同级的 ../deepseek-harness。
- test/_probe-real-title.test.ts — 手动开发探针(打印追踪信息,不做断言),默认跳过;使用 DSH_PROBE=1 显式运行:
$env:DSH_PROBE=1; npx vitest run _probe-real-title(PowerShell)

🏗️ 架构

flowchart LR
subgraph VS Code Extension Host
WEB[Webview Chat PanelReact 18] -->|request / push| RELAY[Message Relay]
EDITOR[Editor IntegrationAsk / Code Actions / Diff] --> SESS[Session Manager]
RELAY --> SESS
SESS --> PROTO[Protocol ClientHTTP RPC + WS Downlink]
end
PROTO -->|HTTP / WebSocket| DSH[dsh Server--profile web]
DSH --> API[(DeepSeek API)]

- src/shared/ — 线格式类型(信封 / 帧 / SessionEvent),由宿主和 webview 原样共享;不依赖 VS Code。
- src/host/ — CLI 定位、启动、URL 解析、进程生命周期;HostManager 连接状态机。
- src/protocol/ — HTTP RPC 客户端、双 WS 下行流、重连、类型化 API。
- src/sessions/ — 会话列表缓存、每会话事件窗口(seq 去重 / 历史分页 / 整页替换)、待处理的审批/问题。
- src/webview/ — WebviewView 提供程序与消息中继(请求/响应关联 + 推送分发)。
- src/editor/ — 选区 → 上下文提示、代码操作、文件快照与差异。
- src/settings/ — dsh. 配置读取、会话 cwd 策略。
- src/install/ — CLI 检测、状态栏指示器、安装提示。
- webview/ — React 18 前端:将事件折叠为渲染模型(轮次/步骤分组、分块累积、工具调用配对)。

🗺️ 状态与路线图

当前状态: 早期 alpha。核心循环——聊天、会话、模型切换、编辑器集成、审批和差异——已能针对真实 dsh 服务器端到端运行。

计划中 / 尚未移植:

- 图片附件(粘贴 / 拖拽 / 灯箱 + session.attachment 上传)
- 编辑器中的引用芯片 / @ 提及
- 计划模式开关
- 市场发布和预构建 VSIX 发布

🧩 已知限制
- 极早期 alpha 版本——随时可能遇到 bug、粗糙的边缘、破坏性变更和缺失的功能。
- Windows 是主要测试平台;macOS / Linux 尚未验证。
- 该扩展会驱动一个真实的 agent——请参阅免责声明。

🤝 贡献

欢迎贡献!这是一个社区项目,因此 PR、issue 和想法都有帮助。

- 通过 GitHub Issues 报告 bug 和请求功能。
- 提交拉取请求并附上你的更改。
- 在提交 PR 之前,请运行检查:npm run typecheck && npm run lint && npm test && npm run build。
- 保持更改聚焦;在更改行为的同时添加或更新测试。
- 保持友善和建设性——遵循标准的开源行为准则。

📄 许可证与免责声明

许可证:MIT。版权所有 © 2026 dsh-vsc 贡献者。

非官方状态:dsh-vsc 是一个非官方的、由社区维护的扩展。它不隶属于 DeepSeek 或 deepseek-harness 项目,也未获得其认可或赞助。“DeepSeek”、“DeepSeek Harness”和“dsh”是其各自所有者的商标或名称,此处仅用于描述兼容性。

无担保 / 责任:本软件按“原样”提供,不附带任何形式的担保,无论是明示还是暗示,包括但不限于对适销性、特定用途适用性和非侵权的担保。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为还是其他方面,由本软件或本软件的使用或其他交易引起、产生或与之相关。你对 agent 在你的工作区中的行为以及它产生的 API 使用(和费用)负责。

🔗 相关

- dsh-vsc — 本仓库
- DeepSeek Harness (dsh) — 本扩展所通信的 agent harness
- DeepSeek API — API 密钥和计费

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群