Ein neues Open‑Source‑Projekt namens gPTY überdenkt, was ein Terminal‑Multiplexer leisten kann. Anstatt in der rein textbasierten Welt von tmux oder screen zu bleiben, nutzt es die Godot‑Game‑Engine für die GUI und Rust für das PTY‑Backend. Das Ergebnis ist eine plattformübergreifende Desktop‑Anwendung, die Terminal‑Fenster zusammen mit Code‑Betrachtern, Dateibäumen und benutzerdefinierten Bereichen kachelt – alles steuerbar durch KI‑Agenten über ein dokumentiertes Protokoll. [1] [2]
Warum Godot und Rust für ein Terminal?
Das Projekt begann als Lernübung: Der Ersteller wollte Godot und Rust in einem persönlichen Projekt kombinieren. Die Grundinspiration war tmux – mehrere PTYs erzeugen und dem Nutzer erlauben, sie zu raster‑ und kachelbasiert anzuordnen. Doch Godot liefert eine hardware‑beschleunigte 2D‑Canvas, die unter Linux, macOS, Windows, Android und sogar VR‑Headsets läuft. Diese Canvas ermöglicht es gPTY, Dinge zu tun, die herkömmliche Terminals nicht können: einen einstellbaren FPS‑Zähler für das Energiemanagement, einen Vollbild‑„Zen“-Modus ohne Task‑Leisten und eine Roadmap, die Markdown‑Rendering, ein lokales Wiki‑Framework, native Audio‑/Video‑Fenster und einfache 2D‑Spiele umfasst. Der Ersteller weist darauf hin, dass ein Browser‑Fenster ausdrücklich nicht geplant ist.
Kernfunktionen des Terminals
Unter der Haube verwendet gPTY portable-pty für plattformübergreifendes PTY‑Spawning (Linux /dev/ptmx, Windows ConPTY), das vte‑Crate für ANSI‑Parsing und alacritty_terminal für eine vollständige DEC STD 070‑Raster‑State‑Machine mit 16/256/True‑Color, regex‑durchsuchbarem Scroll‑Back und umgebrochenen Textauswahlen. Jeder PTY läuft in einem eigenen std::thread für vorhersehbare blockierende Lesevorgänge, die über MPSC‑Kanäle zu Tokio gebrückt werden. Die Godot‑Brücke nutzt gdext 0.5 als native GDExtension für Godot 4.7+. Einstellungen, Arbeitsbereiche, Profile und der Scroll‑Back pro Fenster werden in SQLite und JSON mit Volltextsuche über die Historie gespeichert, und alles wird beim Neustart wiederhergestellt.
Steuerfläche für KI‑Agenten
Was gPTY auszeichnet, ist seine Steuerungsebene. Sie stellt einen JSON‑RPC‑IPC‑Socket, eine CLI (gpty new-pane, gpty inject, gpty layout save usw.) und einen MCP‑Server (Model Context Protocol) bereit, sodass KI‑Agenten und Skripte Fenster erzeugen, Text injizieren und Ausgaben lesen können, ohne ein TUI zu scrapen. Der MCP‑Server läuft über stdio für lokale Agenten oder über HTTP für Cloud‑Agenten. Werkzeugschemata werden aus denselben Clap‑Definitionen wie die CLI generiert, sodass sie nicht von gpty --help abweichen können. Eine regex‑gesteuerte Konzept‑Engine beobachtet die PTY‑Ausgabe und leitet Treffer in benachbarte Fenster weiter – zum Beispiel Compiler‑Fehler an einen Code‑Betrachter – aber Konzepte werden nur erfasst und angezeigt; sie injizieren niemals Eingaben zurück in eine Shell. Zwei Beobachtungsfenster werden standardmäßig mitgeliefert: ein Reasoning‑Fenster, das passiv dokumentierte Agent‑Lebenszyklus‑Ereignisse (OMP, erweiterbar) projiziert, und ein Inspector‑Fenster, das eine private, werkzeugfreie Q&A‑Sitzung ausführt. Das Projekt betont, dass gPTY niemals den Agenten‑Zustand orchestriert; es beobachtet nur.
Installation und Verteilung
Standalone‑Binaries werden in den GitHub‑Releases für Linux (tar.gz), macOS (zip mit .app) und Windows (zip) veröffentlicht. Zum Ausführen ist weder die Godot‑ noch die Rust‑Toolchain erforderlich. Jede Veröffentlichung enthält eine SHA256SUMS‑Datei zur Integritätsprüfung. Das CLI‑Binary (gpty) wird neben der GUI ausgeliefert und verbindet sich über einen Unix‑Socket ($XDG_RUNTIME_DIR/gpty.sock unter Linux) oder die Umgebungsvariable GPTY_SOCKET mit einer laufenden Instanz. Der Befehl gpty schema --format mcp gibt das MCP‑Werkzeug‑Manifest aus, das an Agenten‑Konfigurationen übergeben werden kann, ohne dass eine GUI läuft.
Aktueller Stand und Kompromisse
Der überwiegende Teil des Code‑Bases – einschließlich des größten Teils des Godot‑UI‑Layouts und der Rust‑GDExtension‑Brücke – wurde mit Hilfe von LLMs erzeugt. Das README enthält einen Haftungsausschluss, dass der Code unidiomatische Muster und Fehler enthalten kann. Das Projekt ist ein Nebenprojekt in aktiver Entwicklung; Feinschliff und Quality‑of‑Life‑Features fehlen noch. Im README fehlen Screenshots (die Dokumentations‑Website hat sie), und die Barrierefreiheits‑Arbeit ist im Gange (Godots Standard‑Controls integrieren sich in AccessKit). Die Lizenz ist GPL‑3.0 mit Ausnahmen: Plugins, Erweiterungen und Adapter, die über die gPTY‑CLI, JSON‑RPC, MCP oder Event‑Schnittstellen arbeiten, dürfen Apache‑2.0, MIT oder andere Bedingungen verwenden. Konfigurations‑ und Datendateien tragen keinen Copyleft.
Wenn Sie Werkzeuge für KI‑Agenten‑Workflows entwickeln und einen visuellen, skriptfähigen Arbeitsbereich suchen, der über reine Text‑Raster hinausgeht, lohnt sich ein Blick auf gPTY. Laden Sie ein Release‑Binary herunter, starten Sie die GUI und probieren Sie gpty mcp aus einer Agenten‑Konfiguration, um die Steuerfläche in Aktion zu sehen.
Quellen
- GitHub – godot-pty/gpty: Godot‑basierter Rust‑Multi‑PTY‑Emulator für den Desktop …
- Godot und Rust treiben ein Terminal an · 36 HN‑Kommentare | Zeli
- Godot‑ und Rust‑basierter Multiplexer (Terminal‑Fenster und mehr)
- Show HN: Godot‑ und Rust‑basierter Multiplexer (Terminal‑Fenster und mehr)
- Godot + Rust: Das Terminal‑Multiplexer‑Erlebnis neu definiert
- GitHub – samdotson61/gpty: Ein Go‑Toolset über echtem C‑tmux: gibt LLM …
- Show HN: Godot‑ und Rust‑basierter Multiplexer (Terminal‑Fenster und mehr)
- gPTY: Ein Godot‑basiertes Terminal für KI‑Agenten‑Arbeitsbereiche