Новости платформы IntelliJ
Всё больше вашей работы в терминале выполняется с помощью инструментов, которые нагружают терминал сильнее, чем когда-либо нагружала командная строка: это ИИ-ассистенты программирования вроде Claude Code и Codex, полноэкранные приложения вроде Neovim и tmux, системные мониторы и панели управления. Эти инструменты опираются на современные протоколы терминалов, на которых созданы лучшие современные автономные терминалы.
Начиная с версии 2026.3, встроенный терминал в IDE от JetBrains говорит на том же языке. Теперь он работает на libghostty, библиотеке эмуляции терминала, которая лежит в основе самого Ghostty.
Многие проекты уже используют libghostty, и она по праву считается надежной и производительной библиотекой, поэтому мы выбрали ее среди других рассмотренных вариантов.
В наших IDE libghostty заменяет JediTerm — эмулятор терминала, на который мы полагались долгие годы. TUI-приложения всё больше зависят от современных протоколов, которые JediTerm никогда не поддерживал. Этот разрыв казался скорее мелким неудобством, поскольку работа не совсем соответствовала другим терминалам, однако он не был настолько критичным, чтобы требовать создания баг-репорта. Теперь libghostty берет на себя синтаксический анализ и состояние терминала в наших IDE, в то время как сама IDE по-прежнему отвечает за отрисовку, а также за функции и интеграции более высокого уровня.
Вот что эти изменения означают на практике.
Многострочные запросы и комбинации клавиш работают так, как написано в документации
Благодаря поддержке протокола клавиатуры Kitty терминальные приложения теперь могут различать клавиши Enter, Shift+Enter и Ctrl+Enter, а также запрашивать события отпускания и повтора клавиш. CLI-ассистенты ИИ, такие как Claude Code, Codex и Pi, а также оболочка fish и такие приложения, как Neovim, используют этот протокол. Терминал также поддерживает modifyOtherKeys от xterm — более старый протокол клавиатуры, который использует Vim.
Для вас это означает, что Shift+Enter начинает новую строку в командной строке вместо отправки недописанного сообщения, а сочетания клавиш, объединяющие Ctrl, Shift или Alt с другими клавишами, доходят до приложения в исходном виде. Терминальные редакторы и инструменты реагируют так, как и должны, без необходимости настраивать IDE. Старая настройка, которая отправляла Esc+CR при нажатии Shift+Enter, больше не нужна и игнорируется.
Ваши инструменты следуют теме вашей IDE
Раньше при переключении IDE в темный режим терминальные приложения оставались в неведении, и в итоге вы получали темный текст на темном фоне или светлую цветовую схему внутри темной IDE, если только не настраивали каждый инструмент вручную.
Теперь терминал отвечает на запрос темной/светлой темы (CSI ? 996 n) из текущей темы IDE и отправляет уведомление через режим 2031 при переключении. Claude Code, OpenCode, Pi, Neovim и tmux
Терминал также отвечает на запросы палитры OSC 4 и запрос цвета Kitty OSC 21 в дополнение к запросам OSC 10/11, которые JediTerm уже обрабатывал. OpenCode и Pi считывают палитру, а Junie CLI запрашивает, является ли терминал темным или светлым. Программы теперь могут устанавливать расширенные цвета палитры от 16 до 255 с помощью OSC 4, в то время как цвета от 0 до 15 остаются под управлением темы IDE.
Терминальные приложения с расширенным выводом теперь отображаются лучше
ИИ-ассистенты, системные мониторы, файловые менеджеры и панели управления хороши ровно настолько, насколько хорош рендерящий их терминал. Новый движок обрабатывает почти 50 управляющих последовательностей, которые JediTerm либо игнорировал, либо считывал некорректно. Вот лишь некоторые из них, с которыми вы могли столкнуться:
- REP (CSI Ps b): ncurses использует ее для последовательностей из 7 или более одинаковых символов, поэтому некоторые строки раньше отображались с пропущенными символами.
- Цвета SGR, разделенные двоеточиями (38:2::r:g:b): JediTerm выводил двоеточия и объединял цифры в неверный атрибут.
- Неизвестные строки APC, SOS и PM: JediTerm выводил их как текст. Теперь они молча отбрасываются.
Также поддерживаются левые/правые поля (DECSLRM), защищенные области, управление табуляцией, режим вставки, XTSAVE/XTRESTORE, прокрутка и очистка Kitty CSI 22 J, а также отчеты мыши X10. Теперь учитывается режим мигания курсора (?12); раньше курсор мигал всегда. И это далеко не всё — полный список поддерживаемых управляющих последовательностей смотрите в этой таблице.
Подводя итог: линии, рамки и разделители больше не отображаются некорректно, цветной вывод больше не содержит случайных двоеточий или неверных цветов, а оставшиеся невидимые коды больше не выводятся в виде «мусорного» текста.
И это только начало
Библиотека libghostty уже распознает множество последовательностей, с которыми IDE пока не работает: буфер обмена OSC 52, системные уведомления (OSC 9/777), индикаторы выполнения ConEmu, графику Kitty, а также стилизованные и цветные подчеркивания. Синтаксический анализ больше не является узким местом. Осталась только часть на стороне IDE, так что ожидайте появления этих функций быстрее, чем во времена JediTerm.
На практике эта база охватывает функции, которые вы можете знать по автономным терминалам: копирование в буфер обмена из программы, запущенной на удаленном сервере, получение уведомлений, когда приложение в терминале завершает задачу (например, Claude заканчивает обработку запроса и ждет вас), отображение индикатора выполнения для долгих задач и показ изображений прямо в терминале.
Попробуйте уже сейчас: функция включена по умолчанию в 2026.3
Движок на базе libghostty уже включен по умолчанию в переработанном терминале в сборках EAP 2026.3 для ваших IDE, и это останется неизменным в сборках Beta, Release Candidate и в стабильном релизе.
Если что-то пойдет не так, вы можете вернуться к JediTerm: перейдите в Справку | Найти действие (Help | Find Action), откройте Реестр (Registry…) и отключите параметр terminal.use.ghostty.emulator. Мы будем признательны, если вы также сообщите нам о случившемся, оставив комментарий по ссылке или создав баг-репорт.
Спасибо, Ghostty
Эта история началась с команды Ghostty, которая обратилась к нам на конференции в прошлом году и спросила, не рассмотрим ли мы возможность использования их эмулятора на IntelliJ IDEA Conf. С тех пор они активно участвовали во всех последующих обсуждениях. Большое спасибо Митчеллу Хасимото (Mitchell Hashimoto), Тиму Калверхаусу (Tim Culverhouse) и всем участникам проекта Ghostty. Вы создали libghostty как многократно используемую библиотеку и продолжали улучшать ее, пока мы ее интегрировали. За последние месяцы в libghostty также появились функции, на которые полагались пользователи JediTerm, что и сделало этот переход возможным. Мы рады развивать ваш труд и с нетерпением ждем возможности внести свой вклад в ответ.











