← 返回列表
未验证
在 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 密钥和计费
扫码进群