Новый открытый проект под названием gPTY переосмысливает, что может представлять собой терминальный мультиплексор. Вместо того чтобы оставаться в текстовом мире tmux или screen, он использует игровой движок Godot для графического интерфейса и Rust для PTY‑бэкенда. В результате получаем кроссплатформенное настольное приложение, которое размещает терминальные панели рядом с просмотрщиками кода, файловыми деревьями и пользовательскими панелями — всё управляемо AI‑агентами через документированный протокол. [1] [2]
Почему Godot и Rust для терминала?
Проект начался как учебное упражнение: создатель хотел объединить Godot и Rust в личном проекте. Основным вдохновением был tmux — создание нескольких PTY и их размещение в сетке. Но Godot предоставляет аппаратно‑ускоренный 2D‑канвас, работающий на Linux, macOS, Windows, Android и даже в VR‑гарнитурах. Этот канвас позволяет gPTY делать то, чего не могут традиционные терминалы: регулируемый счётчик FPS для управления энергопотреблением, полноэкранный «зен‑режим» без панелей задач и дорожную карту, включающую рендеринг Markdown, локальный вики‑фреймворк, нативные аудио/видео‑панели и простые 2D‑игры. Создатель отмечает, что панель браузера явно не планируется.
Основные возможности терминала
Под капотом gPTY использует portable-pty для кроссплатформенного создания PTY (Linux /dev/ptmx, Windows ConPTY), crate vte для разбора ANSI и alacritty_terminal для полноценного DEC STD 070‑состояния сетки с поддержкой 16/256/true‑color, прокручиваемой истории, доступной через регулярные выражения, и выделения текста с переносом строк. Каждый PTY работает в отдельном std::thread для предсказуемого блокирующего чтения, соединённом с Tokio через MPSC‑каналы. Мост Godot использует gdext 0.5 как нативное GDExtension для Godot 4.7+. Настройки, рабочие пространства, профили и история каждой панели сохраняются в SQLite и JSON с полнотекстовым поиском по истории, и всё восстанавливается при перезапуске.
Управление AI‑агентами
То, что отличает gPTY, — слой управления. Он открывает JSON‑RPC IPC‑сокет, CLI (gpty new-pane, gpty inject, gpty layout save и т.д.) и сервер MCP (Model Context Protocol), позволяющие AI‑агентам и скриптам создавать панели, внедрять текст и читать вывод без парсинга TUI. Сервер MCP работает через stdio для локальных агентов или через HTTP для облачных. Схемы инструментов генерируются из тех же определений Clap, что и CLI, поэтому они не могут отойти от gpty --help. Регулярно‑выраженный движок концепций наблюдает за выводом PTY и направляет совпадения в соседние панели — например, отправляя сообщения об ошибках компилятора в просмотрщик кода — но концепции только захватывают и отображают информацию; они никогда не вводят данные обратно в оболочку. По умолчанию поставляются две панели наблюдения: панель «Reasoning», пассивно проецирующая документированные события жизненного цикла агента (OMP, расширяемо), и панель «Inspector», запускающая приватную сессию вопросов‑ответов без инструментов. Проект подчёркивает, что gPTY никогда не оркестрирует состояние агента; он лишь наблюдает.
Установка и распространение
Самодостаточные бинарные файлы публикуются в GitHub Releases для Linux (tar.gz), macOS (zip с .app) и Windows (zip). Для запуска не требуется ни Godot, ни Rust‑toolchain. Каждый релиз содержит файл SHA256SUMS для проверки целостности. CLI‑бинарник (gpty) поставляется рядом с GUI и подключается к запущенному экземпляру через Unix‑socket ($XDG_RUNTIME_DIR/gpty.sock в Linux) или переменную окружения GPTY_SOCKET. Команда gpty schema --format mcp выводит манифест MCP‑инструментов для передачи в конфигурации агентов без запущенного GUI.
Текущее состояние и компромиссы
Подавляющая часть кодовой базы — включая большую часть UI‑разметки Godot и мост Rust GDExtension — была сгенерирована с помощью LLM. В README есть отказ от ответственности, что код может содержать неидиоматичные конструкции и баги. Проект — побочный и находится в активной разработке; остаются задачи полировки и улучшения удобства. В README нет скриншотов (они есть на сайте документации), а работа над доступностью продолжается (стандартные элементы управления Godot интегрируются с AccessKit). Лицензия GPL‑3.0 с исключениями: плагины, расширения и адаптеры, работающие через CLI, JSON‑RPC, MCP или события gPTY, могут использовать Apache‑2.0, MIT или другие условия. Конфигурационные и данные файлы не несут копилефт.
Если вы разрабатываете инструменты для рабочих процессов AI‑агентов и хотите визуальное, скриптуемое рабочее пространство, выходящее за рамки текстовых сеток, gPTY стоит вашего внимания. Скачайте бинарный релиз, запустите GUI и попробуйте gpty mcp из конфигурации агента, чтобы увидеть слой управления в действии.
Sources
- GitHub - godot-pty/gpty: Godot-based Rust multi-PTY emulator desktop …
- Godot and Rust power a terminal · 36 HN comments | Zeli
- Godot and Rust based multiplexer (terminal panes and more)
- Show HN: Godot and Rust based multiplexer (terminal panes and more)
- Godot + Rust: Redefining the Terminal Multiplexer Experience
- GitHub - samdotson61/gpty: One Go toolset over real C tmux: gives LLM …
- Show HN: Godot and Rust based multiplexer (terminal panes and more)
- gPTY: A Godot-Powered Terminal for AI Agent Workspaces