JetBrains终端改用libghostty内核
JetBrains IDE内置终端已采用libghostty,以应对AI编程代理及全屏终端应用对现代终端协议的需求。文章涉及Claude Code、Codex、Neovim和tmux等使用场景。
AI 深度解读
JetBrains 正在给 IDE 内置终端更换底层引擎:从 2026.3 开始,用 Ghostty 背后的 libghostty 替代沿用多年的 JediTerm。直接收益是 Claude Code 等工具的多行输入、快捷键、主题切换和复杂界面输出更接近独立终端的表现。
这次升级值得关注,因为终端早已不只负责运行命令。AI 编程代理和全屏应用越来越依赖现代终端协议,旧引擎缺少支持时,问题就会变成误发提示词、颜色错乱或界面缺字。不过,换用 libghostty 也不等于拥有 Ghostty 的全部功能。
换了引擎,为什么没有把整个 Ghostty 搬进来
终端里的程序会发送控制序列,要求终端移动光标、设置颜色或识别按键。终端模拟器负责理解这些指令,并维护屏幕状态。可以把它理解为应用和终端界面之间的协议翻译层。
JetBrains 这次替换的就是这一层。libghostty 接管解析和终端状态,IDE 继续负责渲染、上层功能与集成。用上 libghostty,不等于把 Ghostty 的整套界面和能力搬进 IDE。
团队给出的选型理由是,已有不少项目嵌入 libghostty,它的可靠性和性能口碑也不错。但原文没有列出候选方案、性能测试或资源占用对比,因此不能据此断言新终端更快、更省内存。
更明确的改进来自协议覆盖。JediTerm 未支持的一些协议,已经被新一代 TUI(文本用户界面)应用采用。这类兼容性问题未必会让程序崩溃,却会让内置终端用起来总有一点别扭。
多行提示词和主题切换,终于有了共同语言
第一个变化是支持 Kitty keyboard protocol。应用可以区分 Enter、Shift+Enter 和 Ctrl+Enter,还可以请求按键释放与重复事件。Claude Code、Codex、Pi、fish 和 Neovim 都使用这个协议;Vim 使用的较早方案 xterm modifyOtherKeys 也得到支持。
这解决了 AI 编程里很具体的烦恼:Shift+Enter 应该给提示词换行,而不是提交尚未写完的内容。Ctrl、Shift、Alt 的组合键也能更完整地传给应用。原来让 Shift+Enter 发送 Esc+CR 的设置已经不再需要,新引擎会忽略它。
第二个变化是主题沟通。终端会根据当前 IDE 主题回答深浅色查询 CSI ? 996 n,并在主题切换时通过 mode 2031 发送通知。Claude Code、OpenCode、Pi、Neovim 和 tmux 会订阅这类通知,原文称其中大多数能自动跟随 IDE 切换。
这里有个前提:应用自身也要实现相应协议。终端能发通知,不代表所有命令行工具都会响应。
颜色查询也补齐了。除了 JediTerm 已支持的 OSC 10/11,新引擎增加 OSC 4 调色板查询和 Kitty OSC 21 颜色查询。OpenCode、Pi 会读取调色板,Junie CLI 会查询深浅色。程序还能通过 OSC 4 设置编号 16 到 255 的扩展颜色;编号 0 到 15 仍由 IDE 主题控制,避免应用随意改掉基础配色。
界面少乱码是已落地的,剪贴板和图片还要等
新引擎能处理接近 50 种过去被 JediTerm 忽略或误读的控制序列。原文列出的几个例子,很能解释终端界面为什么会画坏:
- REP(
CSI Ps b)用于重复字符。ncurses 在连续出现 7 个或更多相同字符时会使用它,旧引擎处理不完整可能导致线条缺字。 - 冒号分隔的 SGR 颜色(
38:2::r:g:b)过去可能被误解析,出现多余冒号或错误的显示属性。 - 未识别的 APC、SOS、PM 字符串过去可能直接显示为文本,现在会被静默丢弃。
此外,新引擎还支持左右边距 DECSLRM、受保护区域、制表位控制、插入模式、XTSAVE/XTRESTORE、Kitty CSI 22 J 滚动清屏和 X10 鼠标报告。光标闪烁模式 ?12 也会得到遵守,旧实现则始终让光标闪烁。
这些变化主要修复输出是否正确。边框、分隔线、颜色和光标行为更符合应用预期,对 AI 代理、系统监控和文件管理器都有帮助。
但另一批能力尚未完成 IDE 侧接入:OSC 52 剪贴板、OSC 9/777 桌面通知、ConEmu 进度条、Kitty graphics,以及带样式和彩色的下划线。libghostty 已经能解析相关序列,IDE 还没有执行对应动作。
能识别协议,只说明底层准备好了,不能当作功能已经上线。 远程程序复制到本机剪贴板、任务完成通知、终端进度条和图片显示,都是后续方向,原文没有给出交付时间。
我的判断
我认可这次调整的优先级。对于同时开着编辑器和 AI 代理的程序员,快捷键是否准确、界面是否完整,比新增几个外观选项更直接影响操作。采用可复用的终端库,也有机会减少团队自行追赶协议的工作量。
但它的价值目前应落在兼容性上。原文是一份厂商功能说明,没有展示逐项测试记录,也没有与独立 Ghostty、其他终端的对照数据。关于可靠性、性能和后续功能能更快到来的说法,仍属于团队判断。
与继续使用独立终端相比,内置终端的优势是操作留在 IDE 内,并能跟随 IDE 主题;独立终端则可能已经具备这里尚待接入的能力。是否迁移,应该看自己依赖的应用和协议,而不是只看底层库名称。
能拿来做什么
- 如果你在 JetBrains IDE 中运行 Claude Code、Codex 或 Pi,可以在 2026.3 EAP 的重做版终端中检查 Shift+Enter 多行输入和常用组合键。libghostty 已默认启用,官方计划在 Beta、Release Candidate 和稳定版中继续保持默认。
- 如果你使用 Neovim、tmux、OpenCode 等工具,可以切换 IDE 深浅主题,检查颜色、边框和光标表现。遇到异常时,把应用、按键或输出内容记录清楚,便于定位具体协议问题。
- 如果升级后影响工作,可以进入
Help | Find Action,打开Registry…,关闭terminal.use.ghostty.emulator,切回 JediTerm,并向 IJPL-218849 留言或提交缺陷报告。 - 如果你的工作依赖远程剪贴板、桌面通知或终端图片,先保留现有工具。OSC 52、OSC 9/777 和 Kitty graphics 在这次公告中仍属于待接入能力。