Un nuevo proyecto de código abierto llamado gPTY está replanteando lo que puede ser un multiplexor de terminal. En lugar de quedarse en el mundo solo de texto de tmux o screen, utiliza el motor de juego Godot para su GUI y Rust para su backend PTY. El resultado es una aplicación de escritorio multiplataforma que coloca paneles de terminal en mosaico junto a visores de código, árboles de archivos y paneles personalizados — todo controlable por agentes de IA mediante un protocolo documentado. [1] [2]
¿Por qué Godot y Rust para una terminal?
El proyecto comenzó como un ejercicio de aprendizaje: el creador quería combinar Godot y Rust en un proyecto personal. La inspiración base fue tmux — generar múltiples PTY y permitir al usuario organizarlos en una cuadrícula. Pero Godot aporta un lienzo 2D acelerado por hardware que funciona en Linux, macOS, Windows, Android e incluso cascos de realidad virtual. Ese lienzo permite que gPTY haga cosas que los terminales tradicionales no pueden: un contador de FPS ajustable para la gestión de energía, modo “zen” a pantalla completa sin barras de tareas, y una hoja de ruta que incluye renderizado de Markdown, un marco de wiki local, paneles de audio/video nativos y juegos 2D simples. El creador señala que un panel de navegador no está planeado explícitamente.
Capacidades centrales del terminal
Bajo el capó, gPTY usa portable-pty para generar PTY multiplataforma (Linux /dev/ptmx, Windows ConPTY), la crate vte para el análisis ANSI, y alacritty_terminal para una máquina de estado de cuadrícula DEC STD 070 completa con colores de 16/256/true color, historial buscable con expresiones regulares y selección de texto envuelta. Cada PTY se ejecuta en un std::thread dedicado para lecturas bloqueantes predecibles, conectado a Tokio mediante canales MPSC. El puente de Godot usa gdext 0.5 como una GDExtension nativa para Godot 4.7+. Configuraciones, espacios de trabajo, perfiles y el historial por panel se persisten en SQLite y JSON con búsqueda de texto completo a través del historial, y todo se restaura al reiniciar.
Superficie de control para agentes de IA
Lo que distingue a gPTY es su capa de control. Expone un socket IPC JSON‑RPC, una CLI (gpty new-pane, gpty inject, gpty layout save, etc.) y un servidor MCP (Model Context Protocol) para que agentes y scripts puedan generar paneles, inyectar texto y leer la salida sin raspar una interfaz de texto. El servidor MCP se ejecuta sobre stdio para agentes locales o sobre HTTP para agentes en la nube. Los esquemas de herramientas se generan a partir de las mismas definiciones Clap que la CLI, por lo que no pueden desviarse de gpty --help. Un motor de conceptos impulsado por expresiones regulares observa la salida del PTY y dirige coincidencias a paneles adyacentes — por ejemplo, enviando errores de compilación a un visor de código — pero los conceptos solo capturan y muestran; nunca inyectan entrada de nuevo en una shell. Dos paneles de observabilidad se incluyen por defecto: un panel de Razonamiento que proyecta pasivamente eventos documentados del ciclo de vida del agente (OMP, extensible) y un panel de Inspector que ejecuta una sesión privada de preguntas y respuestas sin herramientas. El proyecto enfatiza que gPTY nunca orquesta el estado del agente; solo lo observa.
Instalación y distribución
Los binarios independientes se publican en GitHub Releases para Linux (tar.gz), macOS (zip con .app) y Windows (zip). No se requiere la cadena de herramientas de Godot o Rust para ejecutarlos. Cada lanzamiento incluye un archivo SHA256SUMS para verificar la integridad. El binario de la CLI (gpty) se entrega junto a la GUI y se conecta a una instancia en ejecución mediante un socket Unix ($XDG_RUNTIME_DIR/gpty.sock en Linux) o la variable de entorno GPTY_SOCKET. Un comando gpty schema --format mcp imprime el manifiesto de herramientas MCP para entregarlo a configuraciones de agentes sin una GUI en ejecución.
Estado actual y compromisos
La gran mayoría del código —incluyendo la mayor parte del diseño UI de Godot y el puente GDExtension en Rust— fue generado usando LLMs. El README lleva una advertencia de que el código puede contener patrones poco idiomáticos y errores. El proyecto es un side‑project en desarrollo activo; quedan pendientes pulido y mejoras de usabilidad. El README carece de capturas de pantalla (el sitio de documentación las tiene), y el trabajo de accesibilidad está en curso (los controles estándar de Godot se integran con AccessKit). La licencia es GPL‑3.0 con excepciones: los complementos, extensiones y adaptadores que trabajen sobre la CLI, JSON‑RPC, MCP o interfaces de eventos de gPTY pueden usar Apache‑2.0, MIT u otros términos. Los archivos de configuración y datos no llevan copyleft.
Si estás construyendo herramientas para flujos de trabajo de agentes de IA y deseas un espacio de trabajo visual y scriptable que vaya más allá de las cuadrículas de texto, gPTY vale la pena echarle un vistazo. Descarga un binario de lanzamiento, ejecuta la GUI y prueba gpty mcp desde una configuración de agente para ver la superficie de control en acción.
Fuentes
- 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