【开源】把 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 一键安装(推荐)

  1. IDEA 打开 Settings → Plugins → Marketplace,搜索 DeepSeek Harness
  2. Install,重启 IDE;
  3. 打开右侧 DeepSeek Harness 工具窗口(首次自动按平台下载并校验运行时,约 100MB,工具窗口有进度条/可取消,完成后离线复用),在 Settings → Tools → DeepSeek Harness 填入 API Key,开始对话。

方式二:离线安装(GitHub Releases)

  1. 下载插件包:Releases 页面 或直链:https://github.com/tieJiangW/deepseek-harness-idea/releases/download/v0.2.1/deepseek-harness-idea-0.2.1.zip(瘦身版,首次打开需联网按平台下载运行时);完全离线可用 -Pthin=false 构建的 fat 包(含内嵌运行时)。
  2. IDEA 中打开 Settings → Plugins → ⚙ → Install Plugin from Disk…,选择下载的 zip,重启 IDE;
  3. 打开 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 桥接的经验。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐