A new open-source project called gPTY is rethinking what a terminal multiplexer can be. Instead of staying in the text-only world of tmux or screen, it uses the Godot game engine for its GUI and Rust for its PTY backend. The result is a cross-platform desktop application that tiles terminal panes alongside code viewers, file trees, and custom panes — all controllable by AI agents through a documented protocol. [1] [2]
Why Godot and Rust for a terminal?
The project began as a learning exercise: the creator wanted to combine Godot and Rust in a personal project. The base inspiration was tmux — spawn multiple PTYs and let the user grid and tile them. But Godot brings a hardware-accelerated 2D canvas that runs on Linux, macOS, Windows, Android, and even VR headsets. That canvas lets gPTY do things traditional terminals cannot: an adjustable FPS counter for power management, full-screen “zen” mode without taskbars, and a roadmap that includes Markdown rendering, a local wiki framework, native audio/video panes, and simple 2D games. The creator notes that a browser pane is explicitly not planned.
Core terminal capabilities
Under the hood, gPTY uses portable-pty for cross-platform PTY spawning (Linux /dev/ptmx, Windows ConPTY), the vte crate for ANSI parsing, and alacritty_terminal for a full DEC STD 070 grid state machine with 16/256/true color, regex-searchable scrollback, and wrapped text selection. Each PTY runs on a dedicated std::thread for predictable blocking reads, bridged to Tokio via MPSC channels. The Godot bridge uses gdext 0.5 as a native GDExtension for Godot 4.7+. Settings, workspaces, profiles, and per-pane scrollback persist to SQLite and JSON with full-text search across history, and everything restores on restart.
AI agent control surface
What distinguishes gPTY is its control layer. It exposes a JSON-RPC IPC socket, a CLI (gpty new-pane, gpty inject, gpty layout save, etc.), and an MCP (Model Context Protocol) server so AI agents and scripts can spawn panes, inject text, and read output without scraping a TUI. The MCP server runs over stdio for local agents or over HTTP for cloud agents. Tool schemas are generated from the same Clap definitions as the CLI, so they cannot drift from gpty --help. A regex-driven concept engine watches PTY output and routes matches into adjacent panes — for example, sending compiler errors to a code viewer — but concepts capture and display only; they never inject input back into a shell. Two observability panes ship by default: a Reasoning pane that passively projects documented agent lifecycle events (OMP, extensible), and an Inspector pane that runs a private, tool-free Q&A session. The project emphasizes that gPTY never orchestrates agent state; it only observes.
Installation and distribution
Standalone binaries are published on GitHub Releases for Linux (tar.gz), macOS (zip with .app), and Windows (zip). No Godot or Rust toolchain is required to run. Each release includes a SHA256SUMS file for integrity checking. The CLI binary (gpty) ships beside the GUI and connects to a running instance over a Unix socket ($XDG_RUNTIME_DIR/gpty.sock on Linux) or the GPTY_SOCKET environment variable. A gpty schema --format mcp command prints the MCP tool manifest for hand-off to agent configurations without a running GUI.
Current state and trade-offs
The vast majority of the codebase — including most of the Godot UI layout and the Rust GDExtension bridge — was generated using LLMs. The README carries a disclaimer that the code may contain unidiomatic patterns and bugs. The project is a side project in active development; polish and quality-of-life items remain. The README lacks screenshots (the docs site has them), and accessibility work is ongoing (Godot’s standard controls integrate with AccessKit). Licensing is GPL-3.0 with exceptions: plugins, extensions, and adapters that work over gPTY’s CLI, JSON-RPC, MCP, or event interfaces may use Apache-2.0, MIT, or other terms. Configuration and data files carry no copyleft.
If you’re building tooling for AI agent workflows and want a visual, scriptable workspace that goes beyond text grids, gPTY is worth a look. Download a release binary, run the GUI, and try gpty mcp from an agent configuration to see the control surface in action.
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