资讯动态

IDEA插件:为Claude Code/Codex打造GUI外壳,告别终端切换

发布时间:2026/10/5 3:04:00 来源:尧图企业网站定制
我先开个题外话暴露一下背景我是一个写 Java 比写别的语言都多的老后端日常几乎全程泡在 IntelliJ IDEA 里连 git 都懒得回终端敲。而 2024 到 2025 年这段Claude Code 和 Codex 这类 AI 编程代理有多火大家有目共睹——它们跑在终端里进去之后是交互式对话能读项目、改代码、跑命令、甚至自己修 bug确实能打。可问题来了我一个 IDEA 重度用户凭什么要为了用 AI 编程工具被迫离开 IDE 去终端能不能在 IDEA 里面做一个 GUI 插件把 Claude Code、Codex 这两个 CLI 工具变成 IDE 内的聊天面板、任务面板让我一边看代码一边跟 AI 代理聊这个开源项目就是干这个的。这篇文章我尽量把话说透先说为什么要做、GUI 到底做了什么、再说技术选型里最要命的几个决策、最后把踩过的坑、安装方式、和同类方案对比一次讲完。如果你也是离不开 IDEA 的开发者并且想在 IDE 内流畅使用 Claude Code 或 Codex那这篇文章应该能帮你省不少事。1. 一个IDEA老用户为什么非要给CLI套上GUI先说一个反直觉的事实Claude Code 和 Codex 本身是 CLI 工具它们的原生交互方式就是终端。但终端交互对 IDE 用户来说存在一层非常真实的割裂。我不是说终端不好——恰恰相反命令行才适合批量、管道、复杂脚本。但我用 IDEA 的时间越长就越发现IDE 内开发 终端跑 AI 代理的组合有几个很难受的地方。1.1 痛点清单当我同时面对IDEA和终端我用一个真实场景还原一下。某天我在调一个 Spring Boot 项目需要在 IDEA 里看代码、改配置同时用 Claude Code 帮我分析某个 Service 接口的调用链路。于是我的屏幕布局变成了左边是 IDEA 编辑器右边是一个单独的终端窗口。然后我遇到了这些事复制一段代码给 Claude Code得先选中、复制再切到终端粘贴来回切窗口一天几十次非常烦。终端里工具跑出来的代码块想点一下就能定位到文件做不到。它输出的是路径和行号我得自己回 IDEA 里搜。Claude Code 跑一个长任务比如重构一个模块可能要几分钟期间我想切去写别的代码但终端窗口一被遮挡我就担心它是不是已经跑完、有没有报错。在 Windows 下某些终端对中文、特殊符号渲染很烂AI 输出的解释性文字经常糊成一片。最重要的一点IDEA里打开的 Project 文件上下文终端里的 AI 代理并不知道。我明明在编辑UserServiceImpl.java但 Claude Code 那边还得重新去扫描一遍才知道我在看什么。这些痛点的本质是开发上下文被分割在两个环境里。IDE 懂项目结构、懂当前选中文件、懂搜索结果但 AI 代理在终端里它只能靠自己的文件扫描能力去猜。如果我把 AI 代理直接请进 IDE让它能看到我当前在编辑哪个文件、选了什么代码这个上下文闭环就打通了。1.2 为什么不做VS Code插件、不做独立App动手之前我其实思考过三个备选方案做一个 VS Code 插件、做一个独立的 GUI 桌面应用、或者干脆用系统终端凑合。VS Code 的方案不是不行也有不少人在用。但问题是很多后端团队的主力 IDE 就是 IDEA不想为了让 AI 多一个入口去换编辑器。独立 GUI 桌面应用我最初也考虑过后来想明白一件事AI 编程工具的核心场景是在代码里干活不是在真空中聊天。一个脱离 IDE 的独立 App本质上就是套了一层壳的终端依然拿不到我在编辑器里的上下文。而直接做 IDEA 插件是可以拿到Project、Editor、SelectionModel这类 IDE 核心对象的——这意味着我可以把当前打开的文件和当前选中的代码直接喂给 AI 代理这是任何独立 App 都给的不了的体验。至于用系统终端凑合那更是我最不想做的选择。身为 IDEA 用户我不想改变自己的工作习惯来迁就工具应该是工具来迁就我。1.3 这个项目的定位和边界所以这个插件的定位就非常清楚了它不是要重新发明一个 AI 编程框架而是充当 Claude Code / Codex 命令行的 GUI 外壳GUI Wrapper。CLI 工具负责跟模型对话、读写文件、执行命令插件负责把终端交互转换成 IDE 里的面板、菜单、快捷键、文件上下文和持久化会话。说白了就是把 AI 代理的身体留在终端层但把脸换成 IDEA 的样子。边界也要说清楚如果你想在 IDEA 里直接调用模型 API、自己实现 agent 逻辑那这个项目不适合你。但如果你和我一样已经用惯了 Claude Code / Codex 的命令行工作流只是想让它别再跟 IDE 抢窗口焦点那这个插件就是为你准备的。2. 绝对不是换皮肤GUI外壳真实做了哪些事很多人以为给 CLI 套 GUI就是开个终端面板然后把输出重定向到 JTextArea。如果只是这样那确实没什么技术含量也没有必要开源。实际上要让 Claude Code / Codex 在 IDEA 里达到可用、好用的程度需要解决不少细节问题。2.1 一键拉起两个CLI工具窗口与启动逻辑插件在 IDEA 右侧或者底部添加了一个专门的工具窗口Tool Window叫 AICodex 也好、Claude Shell 也好安装后你自己可以在窗口设置里改位置。工具窗口里有一个启动面板两个大按钮分别对应 Claude Code 和 Codex。点击之后插件会依次做这几件事检查本机是否已安装对应 CLI执行claude --version或codex --version没装就会给出一条安装提示并弹出配置对话框让你填路径。校验版本号太老的版本会提醒你升级因为这两个工具的 CLI 参数和交互协议迭代很快。在插件内部创建一个伪终端会话这个后面详细讲并把当前 IDEA 项目目录作为工作目录启动 CLI 进程。启动成功后工具窗口自动切换到对应的会话 Tab。整个过程不需要你手动打开系统终端。以前是打开终端 - cd project - 输入 claude现在变成打开 IDEA - 点一下按钮。省掉的动作不算多但每天省几十次也会觉得清爽。2.2 把终端聊天改造成会话面板CLI 工具在真实终端里输出的是带 ANSI 转义序列的文本流比如颜色、加粗、光标移动。如果直接把这种原始输出丢给 JTextArea你会看到一堆类似[32m的乱码字母完全没法看。插件里做了一层终端到聊天的翻译对输出流做 ANSI 转义解析提取出纯文本和颜色信息。把 AI 回复中的代码块比如java ... 识别出来交给 IDERichTextPanel 渲染成带高亮的代码区块。把「用户输入命令」「工具执行计划」「AI 回复文本」「命令执行结果」这几个不同语义的块拆分开用不同的视觉样式呈现看起来更像一个会话面板而不是一坨滚动文本。这层翻译有个反直觉的难点Claude Code 和 Codex 的输出结构并不稳定同一个操作有时候是纯文本、有时候是 JSON 事件流、有时候又夹杂着进度条。解析器必须做得很宽容遇到能识别的结构化块就结构化渲染遇到不认识的格式就直接当纯文本兜底。理想很丰满但工程上必须接受尽力解析 兜底展示的策略否则解析器一崩整个面板就黑屏了体验更差。2.3 文件上下文联动把当前文件喂给Claude/Codex这是我认为整个插件最核心的功能也是它区别于裸终端的最大价值。IDEA 的编辑器是能感知用户行为的插件在EditorFactory上注册了一个事件监听器每当光标所在文件变化、或者选中代码变化时它会捕获这些信息并生成一个可选的上下文当前打开文件的相对路径和语言类型。当前光标所在的行号、方法名、类名。当前选中的代码片段如果用户选中了东西。然后插件会在输入框上方显示一行提示比如上下文: UserServiceImpl.java:42-58 (选中代码)。用户可以直接在输入框里 一下把这段上下文作为前缀或附加上下文发送给 CLI 工具。实践中这个功能有巨大的效率提升以前我需要用自然语言描述帮我看看 UserServiceImpl 里第 42 到 58 行那个方法为什么报空指针现在直接选中、附带上下文、打一句为什么这里会 NPE就够了。AI 代理拿到的 prompt 是结构化的理解准确率远超聊天式描述。2.4 会话管理断线重连与多任务并行CLI 工具跑长任务时用户经常需要同时开两个甚至多个会话一个在跑代码重构另一个可以拿来问问题。插件为每个 CLI 实例维护独立的会话 TabTab 之间互不干扰切换 Tab 时底层的 PTY 会话仍然在跑不会因为界面隐藏而挂掉。另一个重要功能是会话语义持久化。终端窗口一关Claude Code 的会话上下文就没了这在裸终端里几乎是不可逆的损失。插件会在每次会话结束或 Tab 关闭时把该会话的历史消息写到 IDEA 的LocalHistory目录下下次打开时可以一键恢复。恢复方式有两种一种是重新启动 CLI 并让它继续工作CLI 本身支持 headless 续跑另一种是只导出对话记录供人阅读。两种模式在插件设置里可以选。3. 最要命的技术选型CLI到GUI的桥怎么搭上面说的功能听起来不复杂但如果你真的动手做过就知道最麻烦的部分永远是CLI 工具到底怎么跟 GUI 通信。这里我踩过坑也重写过三轮。3.1 直接抓stdout为什么不靠谱最朴素的想法是用ProcessBuilder启动claude然后把process.getInputStream()读出来显示到面板再把用户输入写进process.getOutputStream()。我第一版就是这么写的只用了半天就发现问题了首先Claude Code 和 Codex 在启动时会检测当前标准输入输出是否为 TTY终端设备。如果不是 TTY它们会直接进入非交互模式很多能力会静默失效比如不会渲染交互式菜单、不会显示任务进度、部分斜杠命令直接不可用。你明明想让它干活它却像被绑住手脚一样只给你纸面回复。其次即使强制交互模式通过了ANSI 转义序列的处理也非常折磨人。Claude Code 喜欢用\r重绘进度条、用光标移动序列控制行内更新。直接读取输出会把所有中间状态全打印出来面板变成一帧一帧的幻灯片慢放。3.2 PTY方案模拟终端才是正路所以我很快就明白不能走ProcessBuilder直连这条路必须引入PTY伪终端层。PTY 的作用是向 CLI 进程伪装一个真实终端环境让它们认为自己在跟用户交互从而启用完整的交互能力。Java 生态里做 PTY 最成熟的库是pty4j。它内部基于 JNA 调用系统底层接口在 macOS/Linux 上走openpty/forkpty在 Windows 上则支持 Winpty 和 ConPTY 双后端。我们最终选择了pty4j ConPTY的组合因为 ConPTY 是微软官方推荐的现代伪终端方案对 Unicode、宽字符、鼠标事件的支持都比 Winpty 要完整。引入 PTY 之后的数据流变成这样用户输入(GUI) - PTY master - PTY slave - CLI进程(stdin) CLI进程(stdout) - PTY slave - PTY master - 输出解析 - GUI面板PTY 层带来的额外麻烦是字节流和字符流的边界问题。Claude Code 会输出 UTF-8 多字节字符而 PTY 读取时可能把一个字符拆成两半读到缓冲区末尾。所以我在 PTY 读取线程上做了字节拼接缓冲等完整的字符序列再交给上层解析否则中文大概率会乱码具体看第 5 节踩坑。3.3 渲染层终端字节流到聊天UI的数据通路数据通路的下一环是渲染。其实有两种方案可以选方案 A渲染成终端模拟器比如嵌入式 jediterm 或嵌入式 WebView xterm.js保留完整的终端交互能力。好处是兼容性极高任何 CLI 的异常输出都能显示坏处是实现复杂而且终端的视觉样式跟 IDEA 的主题格格不入。方案 B按语义拆分成聊天 UI只保留主要展示忽略部分底层细节。好处是好看、好用、贴近用户习惯坏处是遇到新的输出格式时可能会有兼容性问题。插件最终选择了 B 为主、A 为辅的混合方案默认把输出解析成结构化会话面板如果用户在设置里开启完全原始终端模式则切换成嵌入式终端模拟器用 ANSI 转义逐字渲染保证任何模式下工具都不会出现显示不出来的情况。3.4 为什么不直接用 JetBrains 自带的 Terminal 插件既然 IDEA 本身就有 Terminal 工具窗口为什么不直接在 Terminal 里反弹一个claude命令这其实是我被问得最多的一个问题。答案是IDEA 的内置 Terminal 插件太黑了它没有一个公开 API 能让你精准控制在指定 Tab 启动指定命令并把输出流实时回调给你的插件。你只能在里面模拟键盘输入读输出更是拿不到可直接消费的流。所以与其逆向 Terminal 插件不如自己基于 PTY 造一套可控的数据通路。4. 模块设计与工程落地插件是怎么拆出来的吹完技术方案落回工程。这个插件不是单文件项目我把它拆成了几个相对独立的模块每个模块只干一件事这也是我做得比较满意的地方。4.1 总体模块划分cli-bridge封装 PTY 进程管理。负责启动 CLI、读写字节流、维护进程生命周期、检测进程退出。对上层只暴露start(),write(),onOutput(),dispose()几个方法。parserANSI 转义解析、代码块识别、结构化消息拆分。输入是字节数组输出是ChatSegment列表。ui工具窗口、会话面板、消息渲染、输入框、右键菜单。只消费ChatSegment不直接接触 PTY 细节。config插件设置持久化包括 CLI 路径、API 密钥、模型参数、代理设置、UI 偏好。contextIDEA 编辑器上下文采集负责监听文件切换和选中事件生成结构化的代码上下文。分层带来的好处是parser 和 cli-bridge 完全可以在无 IDE 环境的单元测试里跑不需要每次改动都强拉 IDEA 来调试。4.2 IDEA插件开发的关键触点IDEA 插件开发本身有固定的门道。构建工具用 Gradle org.jetbrains.intellij插件dependency 加上platform类型指向具体 IDE 版本。我遇到过一个容易让人放弃的点如果要同时兼容 2023.1 和 2024.2很多 API 的签名都不一样尤其是 Tool Window 和 Editor 事件部分。我的建议是初期只认准一个主版本比如 2024.2把sinceBuild和untilBuild设好先跑通再谈兼容。几个核心 API 说下工具窗口注册在plugin.xml的toolWindow idAICodex anchorright里对应的ToolWindowFactory负责创建面板。编辑器上下文监听用EditorFactory.getInstance().getEventMulticaster().addCaretListener()能在光标移动、选中变化时回调。键盘快捷键通过ActionSystem注册右键菜单用EditorPopupMenu扩展点注入把选中代码发送给 AI的动作。4.3 配置体系密钥、模型与网络设置之前很多用户拿到插件的第一反应是API 密钥填在哪这里我坚持用 IDEA 的PasswordSafe来保存 API Key而不是明文写进配置文件。PasswordSafe是 IDEA 提供的能力会把密码加密后存在系统凭据管理器里读取通过PasswordSafe.getInstance().getPassword()。好处是第一不把密钥泄露到项目里第二和 IDEA 的记住密码体系一致用户心理上更容易接受。模型参数方面插件默认不硬编码模型名而是读取claude/codex自身的配置文件。如果你在系统里已经配置过模型和 Base URL插件直接沿用如果没配置插件会在首次启动时弹窗引导你完成基础配置。4.4 进程生命周期管理一个经常翻车的细节PTY 进程的生命周期管理绝对是看起来简单、做起来全是坑的部分。Claude Code 和 Codex 会自己 fork 子进程来跑 shell 命令如果你只 kill 掉父进程子进程会很顽固地继续占用终端。所以插件在 dispose 时必须做进程树的清理先发送CTRL_C或者exit命令让 CLI 优雅退出等几秒没有响应再调用系统级的 TerminateProcess 或 kill 进程组。另外还要注意 IDEA 关闭时的事件处理。用户直接关 IDEA插件必须保证 PTY 进程也跟着退出不能留一堆孤儿进程在后台跑这是最基本的职业素养。5. 开发路上踩过的坑从OneKey到ConPTY的几次返工聊聊真实开发过程中把我按在地上摩擦的几个坑。如果你也想做类似的 GUI 外壳型插件这些经验能让你少走至少两周弯路。5.1 坑一Windows下PTY后端选型翻车我最早在 Windows 上用的是 Winpty 后端因为它在老项目里很常见。结果被坑得很惨Winpty 对 ConPTY 模拟的现代终端控制序列支持得很差Claude Code 的某些多行渲染在 Winpty 下会出现严重的闪烁和错位。查了两天最后把后端切换成 ConPTY问题立刻消失。事后总结Windows 上做新项目无脑选 ConPTY别碰 Winpty。Winpty 只能兼容老版本 Windows如 Win7如果你愿意为一个 2015 年的系统牺牲用户体验那我没话说。5.2 坑二中文乱码与ANSI转义的相爱相杀这个坑是组合拳先遇到 ANSI 转义解析失败后来遇到中文乱码最后发现是同一个根因——字节边界处理失误。PTY 的读取事件没有固定边界Linux 下一个 UTF-8 中文可能是 2-3 个字节在不同的事件片里到来。我第一版代码天真地对每个读取事件直接 decoders 成字符于是中文只要跨片就乱。解决方法是在读取线程里加了一个ByteArrayOutputStream作为 pending buffer每次读入先 append然后尝试按 UTF-8 解码如果解码失败说明字符不全就继续等下一个事件片直到可以完整解码再上抛。另外 ANSI 解析器必须处理ESC 序列部分到达的情况。比如\x1b[32m可能分两片到达如果解析器没有状态机会把\x1b当成非法字符输出成?。做法是把 ANSI 解析器做成增量状态机输入不完备就缓存等待后续字节。5.3 坑三IDEA版本与JBR版本兼容性IDEA 从某个版本开始捆绑了自己的 JetBrains RuntimeJBR不同大版本的 JBR 差异很大。最直接的坑是你用本机 JDK 17 编译的插件放到用 JBR 21 的 IDEA 2024.2 里运行某些反射 API 直接报InaccessibleObjectException。解决方案很朴实在build.gradle里配置jvmToolchain(17)或者其他与目标 IDE JBR 大版本兼容的 JDK并且在 CI 里用多个 IDEA 版本跑 smoke test。5.4 坑四Tab切换竟然导致会话失联这个坑非常隐蔽。我在会话 Tab 切换时做了一个释放资源再重新绑定的优化结果发现一旦切走再切回来PTY 输出偶尔会丢失。排查了很久最后发现是 IDEA 的 Tool Window 在 Tab 被隐藏时会暂停低优先级的事件分发导致我的输出流回调线程被阻塞。解决办法是输出回调绝不直接更新 UI而是先丢进一个无锁队列再由 Swing 的Timer周期性拉取刷新。这既解决了 UI 线程卡顿也避免了隐藏时的回调丢失。5.5 坑五调试器的反直觉行为IDEA 插件项目调试有一个反直觉的地方你不能像普通 Java 程序那样直接跑 main必须在 Gradle 里启动runIde任务它会拉起一个带插件的新 IDE 实例。但这个实例的调试端口默认是随机的你需要先在build.gradle里设置jvmArgs [-agentlib:jdwptransportdt_socket,servery,suspendn,address*:5005]然后在 IDEA 里配置 Remote JVM Debug 连 5005 端口才能断点调试插件代码。第一次做插件开发的人十有八九卡在这一步特此写出来帮大家跳过。6. 安装、配置与一天的真实使用流下面这部分是纯操作指引照着做就能用。6.1 安装市场安装与本地ZIP两种方式推荐从 JetBrains Marketplace 直接安装打开 IDEA 的Settings - Plugins - Marketplace搜索插件名称按项目名搜即可点 Install重启 IDE 即可。这种方式的好处是以后能自动收到更新。如果你所在环境访问 Marketplace 不便有些内网环境完全隔离也可以走本地安装在项目 GitHub Releases 页面下载 zip 包然后Settings - Plugins - 齿轮图标 - Install Plugin from Disk...选择 zip 即可。本地安装的插件同样能正常使用只是更新需要手动下载覆盖。装完之后右侧或底部会出现一个新的工具窗口没有的话去View - Tool Windows里找。6.2 配置命令行工具路径与密钥第一次打开工具窗口时插件会检测系统里有没有claude和codex。如果之前装过且配置过基本直接可用如果没装先按官方移植方式装好这两个 CLI 工具或者把它们的可执行文件路径手动填进Settings - Tools - AI Shell。需要重点检查的配置项就一句话确认 API 密钥所在位置。如果 Claude Code / Codex 本身已通过环境变量或配置文件设置好了插件直接沿用如果你之前没配置过可以用插件内置的配置向导填 Key、选模型。这里我建议 Key 走PasswordSafe存别写在项目里的.env文件中免得哪天提交代码把密钥带出去。6.3 真实使用流一个Java项目的AI辅助开发演示为了让你更直观地感受用起来是什么体验我贴一段我自己下午的真实操作流打开项目定位到OrderService.java光标放在第 86 行一个嵌套循环内。按快捷键呼出插件输入框输入/why加一句这段循环每次都要查数据库能不能一次查出来。插件自动带上当前文件、当前方法行号作为上下文发给 Codex CLI。它基于代码内容和 IDE 给的文件路径直接给出优化建议并附上修改后的代码块。我在代码块右上角点一下应用插件就把代码块渲染成可 preview 的 diff我确认后直接写入文件。改完我又顺手开了第二个 Tab让 Claude Code 去跑一次全量测试同时自己继续写下一个功能。测试跑完面板里弹出结果出错的地方点了能直接跳到对应测试文件。整个过程里我没离开过 IDEA没有一次窗口切换、没有复制粘贴、没有手动跑命令。这就是我说上下文闭环的价值AI 工具嵌入 IDE 之后真正变成了编辑器的一部分而不是另一个需要折腾的 App。7. 对比与边界这个插件到底适合谁用最后做个坦诚的对比不吹不黑。7.1 和终端裸奔方案对比如果你是一个极简主义者所有工具都在终端里完成那这个插件对你来说是多余的。裸终端 Claude Code / Codex 是原汁原味的体验特别是 tmux 重度用户他们有自己成熟的多会话管理方案。但如果你和我一样整天在 IDEA 里点来点去那显然 GUI 交互更顺手。两者对比其实没有高下之分只有环境状态的差别。唯一我要提醒的是如果你在 Windows 上裸用终端跑 Claude Code至少先把终端模拟器选好Windows Terminal 是底线CMD 和 PowerShell 的老版本体验会让你怀疑人生。7.2 和VS Code扩展/第三方扩展对比VS Code 生态里已经出现了不少 Claude Code / Codex 扩展体验也相当不错。VS Code 的插件生态更开放容易嵌入 WebView xterm.js渲染天花板可能比 IDEA 插件更高。但 VS Code 的问题在于对 Java/Kotlin 这种重量级语言项目的支持始终不如 IDEA。所以这个对比的答案取决于你的主语言写前端、Python、GoVS Code 很好用去用它的扩展就行写 Java、Kotlin、Scala 的老老实实待在 IDEA 里这个插件更合适。7.3 和JetBrains自家AIAI Assistant对比JetBrains 自家 AI Assistant 在 IDE 集成深度上当然是最强的但它是封闭的、按订阅付费的而且主要接厂商自己的模型后端。如果你已经习惯 Claude Code / Codex 的工作流或者你用的是 Claude 这类模型在自己的场景下效果好那自家 AI 会显得不够灵活。这个插件的定位不是替代 AI Assistant而是把外部 CLI 工具的能力带进 IDEA二者可以共存。7.4 适合谁不适合谁适合人群IDEA 重度用户已经用着 Claude Code / Codex 但想减少窗口切换的人喜欢开源、愿意自己改插件逻辑的人。不适合人群终端原教旨主义者只用 IDEA 写简单脚本的人希望插件内置模型、不依赖外部 CLI 的人这个插件没有内置模型它只是壳模型和密钥都得你自己配。8. 我的体会与下一步做了这个项目之后我最大的体会是给 CLI 工具做 GUI 外壳难点根本不是 UI而是数据通路和生命周期管理。一个能用的壳子一天就能写完但一个在 Windows、macOS、Linux 上都不乱码、不丢输出、不残留进程的壳子需要一两周来打磨。这也是为什么这个项目值得开源——不同平台的坑一个人真的踩不完。下一步的规划里我想优先补三块一是把 IDEA 运行时 diff 预览做得更完善让 AI 改代码的每一步都可视化可回滚二是做一个会话导出功能把 AI 和你的对话记录按 Markdown 导出方便写周报和复盘三是把不同 CLI 工具的兼容层抽得更干净让以后接入更多 AI 编程工具不只 Claude Code / Codex变成改一行配置的事。最后再分享一个我在实际使用中的小技巧如果你在用这个插件跑 Claude Code 的大改代码任务建议把Settings - Tools - AI Shell - 输出缓冲区调大一点否则输出量特别大时旧版插件会出现 UI 卡顿。这个问题在 1.2 版本已经修复了但我还是在设置里留了这个选项给喜欢开超长上下文的用户。希望这个项目能帮到你也欢迎提交 issue 和 PR尤其是那些只有某个平台才出现的怪问题——我还挺感兴趣的。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑