把 DeepSeek Harness 智能体嵌进 IntelliJ IDEA —— 类 Qoder 的 AI 编程插件
【开源】把 DeepSeek Harness 智能体嵌进 IntelliJ IDEA —— 类 Qoder 的 AI 编程插件
🚀 已上架 JetBrains Marketplace(IDEA 插件市场),IDE 内可直接搜索安装(最新 v0.2.1 已上传,待审核)
标签:IntelliJ IDEA / 插件开发 / DeepSeek / AI 编程 / MCP / 开源
项目地址(求 Star ⭐):https://github.com/tieJiangW/deepseek-harness-idea
插件市场页:https://plugins.jetbrains.com/plugin/33820-deepseek-harness
一、为什么做这个插件?
日常用 AI 辅助编码时,你是不是也遇到过这些割裂感:
- 🔄 来回切换:在浏览器里跟智能体对话,在 IDE 里写代码,窗口切来切去;
- 👻 上下文盲区:智能体不知道你当前选了什么代码、打开了哪些文件、项目结构长什么样;
- 🛠 改动不可控:智能体改完文件,你只能自己去 diff,没有原生的审查/还原入口;
- 📤 传递麻烦:想把某段代码交给智能体,得复制粘贴,还得打字解释"这是哪里的代码"。
DeepSeek Harness 是 DeepSeek 的智能体工作台(dsh),本身是浏览器形态。与其把用户赶去浏览器,不如把 Harness 请进 IDE。
于是就有了这个开源插件 —— DeepSeek Harness for IntelliJ IDEA:把完整的 DeepSeek Harness Web UI 嵌入 IDEA 工具窗口,并通过 MCP 桥接 + 原生集成把 IDE 能力交给智能体,提供类 Qoder 的 AI 编程体验。
声明:本插件为个人开源项目,非 DeepSeek 官方产品;DeepSeek Harness 与相关商标归其各自所有者。
二、核心特性
1️⃣ 内嵌 Web UI,体验与浏览器版一致
插件用 JCEF(JetBrains 内置 Chromium)在工具窗口里加载 dsh Web UI,对话、会话管理、目标(Goal)、工作流(Workflow)全套功能直接可用,不用再开浏览器。
2️⃣ 跨平台运行时,开箱即用
Node.js 22 和 DeepSeek Harness 运行时(@deepseek-ai/dsh@0.1.1-rc.2)按平台解析:Windows / macOS(Apple Silicon)/ Linux x64 主机都能直接在 IDEA 跑。默认瘦身插件(约 1.8MB)在首次打开工具窗口时自动下载对应平台的运行时包(约 100MB,SHA-256 校验后本地解压,之后离线复用),工具窗口自带下载进度条与取消。也提供捆绑运行时的 fat 包(-Pthin=false)用于完全离线安装,或用 DSH_IDEA_RUNTIME / 设置页「运行时目录」指向已解压的运行时目录、直接跳过下载。
3️⃣ 每项目独立工作区,切换不串台
每个项目使用独立的 DSH_HOME(按项目根目录哈希派生),工作区、会话、历史数据都按项目隔离。切换项目后,DSH 自动以当前项目为工作空间,不会残留上一个项目的会话——多项目并行开发不再互相干扰。
4️⃣ MCP 桥接:把 IDE 上下文交给智能体
插件内置一个 MCP Server(streamable-http),通过 ide.yml patch 注入 dsh 的 mcp-client,智能体获得 6 个 mcp__ide__* 工具:
| 工具 | 能力 |
|---|---|
ide_get_selection | 读取当前编辑器选中代码、文件路径、语言 |
ide_get_open_files | 列出当前打开的文件 |
ide_get_project_tree | 获取项目结构树 |
ide_get_sent_selection | 拉取最近"发送到 DSH"的代码(兜底通道) |
ide_open_file / ide_reveal_file | 在 IDE 中打开 / 定位文件 |
你可以直接问智能体:“当前打开的文件是什么?”,它通过 MCP 工具就能答上来。
5️⃣ 一键发送选中代码
编辑器里选中代码 → 右键 “Send Selection to DSH” → 输入框自动填入紧凑文件引用 @路径#L1-14,光标落在下一行,直接打字提问。完整代码会写入 sent-selection 队列,即使注入失败也能被智能体拉取(剪贴板兜底),上下文绝不丢失。
6️⃣ 运行控制台"DSH 一键解释"(v0.1.3 新增)
在项目的运行日志窗口里选中一段日志 → 右键 “DSH 一键解释”,插件会自动把本地化的解释指令 + 选中日志作为用户问题提交给 DSH(无需手动复制/回车)。日志出错时不用再手动贴给 AI 了,选中即解释。
7️⃣ 改动审查与还原(Diff)
智能体改完文件,打开 Review changes 面板:基线快照对比当前盘面,列出修改/新增/删除三类改动,每文件可看原生 Diff,支持还原单个 / 还原全部 / 忽略 / 重新基线。AI 的活,你说了算。
8️⃣ 生命周期管理,不留后患
每项目一个 dsh 实例(并发上限 3),项目关闭 / IDE 退出自动终止进程树;dsh 崩溃自动退避重启(最多 3 次)并弹通知;DSH Log 标签页可查看进程输出,方便排查。
9️⃣ 中英双语
插件 UI 跟随 IDE 语言(English / 简体中文),面向国内外用户。
🔟 可靠的运行时下发 + 清晰诊断(v0.2.1 新增)
- 下载改用连接池、HTTP/2 客户端 + 浏览器 UA + 60s 连接超时 + 退避重试,慢网/国内访问 GitHub 也能一次成功;修复了「首次下载失败」问题(临时文件父目录缺失
NoSuchFileException)。 - 工具窗口实时进度条(字节 / MB / 速率)+ 可取消;设置页回显当前平台完整下载地址(精确到文件)并一键复制,下载超时可配置。
- 可选择本地运行时压缩包导入已下载的运行时(校验 + 对照
.sha256侧车),完全离线启动;失败时错误卡给出失败地址与根因。
三、快速上手
环境要求
- IntelliJ IDEA Community / Ultimate 2024.1 – 2026.2(build 241 – 262)
- 主机平台:Windows 10/11 x64、macOS(Apple Silicon)、Linux x64(运行时按平台下发;Intel Mac 的运行时资产在 GitHub 托管构建机上无法构建,暂缺,该平台可离线导入或自行构建)
- DeepSeek API Key(
deepseek-chat/deepseek-reasoner)
安装(建议优先从市场,享自动更新)
方式一:Marketplace 一键安装(推荐)
- IDEA 打开 Settings → Plugins → Marketplace,搜索 DeepSeek Harness;
- 点 Install,重启 IDE;
- 打开右侧 DeepSeek Harness 工具窗口(首次自动按平台下载并校验运行时,约 100MB,工具窗口有进度条/可取消,完成后离线复用),在 Settings → Tools → DeepSeek Harness 填入 API Key,开始对话。
方式二:离线安装(GitHub Releases)
- 下载插件包:Releases 页面 或直链:
https://github.com/tieJiangW/deepseek-harness-idea/releases/download/v0.2.1/deepseek-harness-idea-0.2.1.zip(瘦身版,首次打开需联网按平台下载运行时);完全离线可用-Pthin=false构建的 fat 包(含内嵌运行时)。 - IDEA 中打开 Settings → Plugins → ⚙ → Install Plugin from Disk…,选择下载的 zip,重启 IDE;
- 打开 Settings → Tools → DeepSeek Harness,点 选择本地运行时压缩包… 导入已下载的按平台运行时 zip(完全离线启动),或联网自动下载;填好 API Key 开始对话。
💡 API Key 在设置页会脱敏显示(前 6 位 + ****** + 后 6 位),既安全又能确认当前值;你在 dsh Web UI 里改 Key 也会同步到全局,所有项目保持一致。
典型使用场景
1. "给 UserService 加一层缓存" → 智能体读项目、改代码 → 你在审查面板看 diff → 决定保留/还原
2. 选中一段代码 → 右键发送 → "这段代码有什么问题?" → 智能体基于上下文回答
3. 运行日志报错 → 选中日志 → 右键"DSH 一键解释" → 自动提交给智能体分析
4. "当前打开的文件是什么?" → 智能体经 MCP 工具准确回答
5. "新建 src/Hello.java" → 文件出现在项目树,可直接打开
四、架构原理(一张图看懂)
┌──────────────── IntelliJ IDEA 进程 ────────────────┐
│ 工具窗口: JCEF 浏览器 ──loads──► http://127.0.0.1:<port> │
│ IDE Bridge Server(127.0.0.1 + 随机 token 鉴权) │
│ 快照 & 审查管理器(基线快照 → Diff → 还原) │
│ DshProcessManager(Node 子进程生命周期/端口发现/重启) │
└──────────────────────┬───────────────────────────────┘
│ node dsh/bin.js --profile web --patch ide.yml --no-open
▼
Node 子进程(dsh):Web UI + mcp-client(ide)
▲
│ streamable-http
MCP Server(mcp-ide-server.mjs,6 个 ide_* 工具)
│ fetch + token
▼
IDE Bridge Server(读 VFS/PSI)
关键技术点(实测踩坑后固化):
- 全随机端口(
--port 0),无端口冲突;所有服务仅绑定127.0.0.1,安全兜底; - MCP patch 用 cordis
insert:语法注入,dsh 版本锁定0.1.1-rc.2; - 每项目独立 DSH_HOME + 旧会话/投影缓存升级迁移:升级后旧会话仍可见、标题显示正确;dsh 内改 Key 会同步回全局;
- 运行时按平台从 GitHub Releases 下载,SHA-256 校验 + 安全解压;下载用连接池 HTTP/2 客户端 + 浏览器 UA + 退避重试,慢网也稳;
- 基线快照带忽略规则(
.git/node_modules/build/out等)+ 单文件 1MB 上限 + 200MB LRU,大项目也不慌; - 122 个自动化测试(0 失败)守护核心链路。
五、开源信息
| 项 | 内容 |
|---|---|
| 仓库 | https://github.com/tieJiangW/deepseek-harness-idea |
| 插件市场 | plugin/33820-deepseek-harness(已上架;最新 v0.2.1 已上传待审核 / 作者 Tie Jiang Wang) |
| 许可证 | MIT(可自由商用/修改/分发) |
| 发布版本 | v0.2.1(跨平台运行时 + 下载可靠性/进度/取消 + 本地 zip 导入 + URL 回显;v0.1.3 起含每项目工作区/一键解释/会话迁移/Key 全局同步) |
| 插件包 | deepseek-harness-idea-0.2.1.zip(瘦身 ≈1.8MB,首次按平台下载运行时;另有 fat 包可完全离线) |
| 支持平台 | Windows x64 / macOS(Apple Silicon)/ Linux x64 |
| 技术栈 | Kotlin / IntelliJ Platform SDK 2024.1–2026.2 / JCEF / MCP SDK / Gradle |
文档齐全:docs/ 目录下含 PRD、设计文档、验收清单、里程碑评审、开发知识库(中文),维护者友好。
构建(贡献者看这里)
# 要求 JAVA_HOME = JBR 21(IDE 自带),JDK 17 无法通过 instrumentCode
gradlew buildPlugin # 打包插件 zip → build/distributions/(默认瘦身;-Pthin=false 出含运行时 fat 包)
gradlew test # 全量测试(122 个;冒烟需 DSH_IDEA_RUNTIME 环境变量)
六、版本演进与已知规划
里程碑:已上架 JetBrains Marketplace(审核通过,可在 IDE 插件市场直接搜索安装)
近期更新(v0.2.0 → v0.2.1)
- 跨平台运行时:Windows / macOS(Apple Silicon)/ Linux x64 主机均可直接在 IDEA 运行,Node.js + dsh 运行时按平台解析;
- 瘦身通用插件:默认不再捆绑约 93MB 运行时,首次打开按平台自动下载(SHA-256 校验、缓存后离线复用);另供 fat 包(
-Pthin=false)与DSH_IDEA_RUNTIME离线方案; - 下载可靠 + 进度:工具窗口实时进度条(字节 / MB / 速率、可取消);连接池 HTTP/2 客户端 + 浏览器 UA + 60s 连接超时 + 退避重试,国内访问 GitHub 首启下载也能成功;修复了「首次下载失败」(临时文件父目录缺失
NoSuchFileException); - 本地 zip 导入:设置页 / 错误卡可「选择本地运行时压缩包…」导入已下载的运行时,完全离线启动(校验 + SHA-256 侧车);
- 清晰诊断:设置页回显当前平台完整下载地址(精确到文件)可一键复制;下载超时可配置;失败时给出具体地址与根因 + 重启入口;
- 测试 90 → 122(新增跨平台 / 下载 / 校验等用例,全部通过)。
当前限制
- Intel Mac(macos-x64)的运行时资产在 GitHub 托管构建机上无法构建(Intel macOS runner 已退役),该平台首次需离线导入或自行构建;
- dsh 输入框暂不支持原生「文件引用 chip」(上游能力缺失),当前用紧凑引用方案替代。
后续规划
- v0.2.2+:把运行时下载地址改为按 dsh 版本解耦(少随插件版本重复上传 / 下载);完整跟随 IntelliJ HTTP 代理;
- 后续:IntelliJ Gradle 插件 2.x 升级、dsh 版本升级评估、单实例多工作区、内联补全等 AI 原生体验。
七、结语
这个插件从零写起:打包 Node + dsh 运行时、JCEF 嵌入、MCP 桥接、快照 diff、每项目工作区隔离、旧会话迁移、API Key 全局同步……每一步都踩过坑也填了坑,最终把"IDE 里的 AI 编程"这条链路完整打通并开源出来。如今已上架 JetBrains Marketplace,在 IDEA 插件市场搜 DeepSeek Harness 即可一键安装,体验作者精心打磨的完整功能。
如果你觉得有用,欢迎:
- ⭐ 点个 Star(对我最大的鼓励)
- 🐛 提 Issue 反馈 bug / 需求
- 🤝 提 PR 一起完善
项目地址:https://github.com/tieJiangW/deepseek-harness-idea
插件市场页:https://plugins.jetbrains.com/plugin/33820-deepseek-harness
如果文章对你有帮助,欢迎点赞、收藏、转发~ 也欢迎在评论区交流 IDEA 插件开发 / MCP 桥接的经验。
更多推荐



所有评论(0)