【开源】把 DeepSeek Harness 智能体嵌进 IntelliJ IDEA —— AI 编程插件
标签:IntelliJ IDEA / 插件开发 / DeepSeek / AI 编程 / MCP / 开源
项目地址(求 Star ⭐):https://github.com/tieJiangW/deepseek-harness-idea
一、为什么做这个插件?
日常用 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.0-rc.7)随插件打包(zip 约 98MB),首次打开工具窗口自动解压(约 1 分钟),用户无需安装 Node、无需联网下载任何东西。
3️⃣ 以项目为工作区
工具窗口打开时,插件自动把当前项目目录注册为智能体工作区(调用 dsh 内部 RPC,幂等)。智能体可以读取、新建、修改项目里的文件,做完的活就在你的项目树里。
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️⃣ 改动审查与还原(Diff)
智能体改完文件,打开 Review changes 面板:基线快照对比当前盘面,列出修改/新增/删除三类改动,每文件可看原生 Diff,支持还原单个 / 还原全部 / 忽略 / 重新基线。AI 的活,你说了算。
7️⃣ 生命周期管理,不留后患
每项目一个 dsh 实例(并发上限 3),项目关闭 / IDE 退出自动终止进程树;dsh 崩溃自动退避重启(最多 3 次)并弹通知;DSH Log 标签页可查看进程输出,方便排查。
8️⃣ 中英双语
插件 UI 跟随 IDE 语言(English / 简体中文),面向国内外用户。
三、快速上手
环境要求
- IntelliJ IDEA Community / Ultimate 2024.1 – 2026.2(build 241 – 262;v0.1.1 起支持至 2026.2,当前支持 Windows 10/11 x64)
- DeepSeek API Key(
deepseek-chat/deepseek-reasoner)
安装(3 步)
- 下载插件包:Releases 页面 或直链:
https://github.com/tieJiangW/deepseek-harness-idea/releases/download/v0.1.2/deepseek-harness-idea-0.1.2.zip - IDEA 中打开 Settings → Plugins → ⚙ → Install Plugin from Disk…,选择下载的 zip,重启 IDE。
- 打开右侧 DeepSeek Harness 工具窗口(首次打开自动解压运行时,耐心等约 1 分钟),在 Settings → Tools → DeepSeek Harness 填入 API Key(支持从
~/.dsh一键导入),开始对话。
典型使用场景
1. "给 UserService 加一层缓存" → 智能体读项目、改代码 → 你在审查面板看 diff → 决定保留/还原
2. 选中一段代码 → 右键发送 → "这段代码有什么问题?" → 智能体基于上下文回答
3. "当前打开的文件是什么?" → 智能体经 MCP 工具准确回答
4. "新建 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
▼
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.0-rc.7; - 基线快照带忽略规则(
.git/node_modules/build/out等)+ 单文件 1MB 上限 + 200MB LRU,大项目也不慌; - 45 个自动化测试(43 单元 + 2 真实 dsh 冒烟)守护核心链路。
五、开源信息
| 项 | 内容 |
|---|---|
| 仓库 | https://github.com/tieJiangW/deepseek-harness-idea |
| 许可证 | MIT(可自由商用/修改/分发) |
| 发布版本 | v0.1.1(兼容修复:支持至 IDEA 2026.2 / build 262) |
| 插件包 | deepseek-harness-idea-0.1.2.zip(≈98MB,含内嵌运行时) |
| 技术栈 | 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/
gradlew test # 全量测试(45 个;冒烟需 DSH_IDEA_RUNTIME 环境变量)
六、已知限制与规划
当前限制
- 仅支持 Windows 10/11 x64(macOS/Linux 规划中);
- dsh 输入框暂不支持原生"文件引用 chip"(上游能力缺失),当前用紧凑引用方案替代;
- PRD §7 的手工验收项(真实 API Key 对话、审查面板 UI 等)待真实 IDE 会话闭环。
近期更新(v0.1.1)
- 兼容 IntelliJ IDEA 2026.2(build 262):此前
until-build仅到 2025.1(251.*),新版 IDE 安装即报"版本不兼容";已放宽并对 2026.2 SDK 做前向编译验证; - 移除对平台自带 Gson 的依赖(JetBrains 正逐步移出),JSON 序列化改为自研
JsonCodec,更稳更轻; - 测试 36 → 45(新增 JsonCodec 9 例),全部通过。
后续规划
- v0.6:验收闭环、"发送当前文件"动作、版本号对齐;
- v0.7:IntelliJ Gradle 插件 2.x 升级、dsh 版本升级评估、单实例多工作区;
- v1.x:Marketplace 上架评估、macOS/Linux、内联补全等 AI 原生体验。
七、结语
这个插件从零写起:打包 Node + dsh 运行时、JCEF 嵌入、MCP 桥接、快照 diff……每一步都踩过坑也填了坑,最终把"IDE 里的 AI 编程"这条链路完整打通并开源出来。
如果你觉得有用,欢迎:
- ⭐ 点个 Star(对我最大的鼓励)
- 🐛 提 Issue 反馈 bug / 需求
- 🤝 提 PR 一起完善
项目地址:https://github.com/tieJiangW/deepseek-harness-idea
如果文章对你有帮助,欢迎点赞、收藏、转发~ 也欢迎在评论区交流 IDEA 插件开发 / MCP 桥接的经验。