Godot and Rust based multiplexer (terminal panes and more)

Sep 11, 2026 11:03 PM - 3 days ago 2

gPTY - a PTY instauration built connected Godot and Rust. Provides a tiling grid for panes (terminal, code, file-tree, etc.), a conception seizure engine, and a JSON-RPC/MCP power aboveground truthful AI agents and automation devices tin spawn panes, inject text, and observe output connected terminals without scraping a TUI.

Build GitHub Downloads (all assets, each releases)     Built With Gemini DeepSeek Claude

  • PTY - Spawn and negociate independent ammunition sessions successful a resizable tiling grid. Full DEC STD 070 via alacritty_terminal: 16/256/true color, scrollback pinch regex search, wrapped matter selection.
  • Public API - JSON-RPC IPC socket + CLI (gpty new-pane, gpty inject, …) + MCP server. AI agents, scripts, and orchestrators thrust the workspace complete a documented, versioned protocol.
  • Concept engine - RegEx triggers connected PTY output seizure the reply and way it into adjacent panes (code viewer, Inspector). Write your ain aliases vessel the defaults. Concepts seizure and show only - they ne'er inject input into a shell.
  • Agent observability - Reasoning pane passively projects documented supplier lifecycle events (OMP, extensible); Inspector pane runs a private, tool-free Q&A session. Observability only - gpty ne'er orchestrates supplier state.
  • Persistence - Scrollback, settings, workspaces (named tab sets), and profiles auto-save to SQLite/JSON and reconstruct connected restart; full-text hunt crossed each pane's persisted history.
  • Cross-platform - Standalone binaries for Linux, macOS, and Windows. No Godot aliases Rust toolchain required to run.
  • Documentation - https://godot-pty.github.io/gpty/
  • The immense mostly of this codebase, including astir of the Godot UI layout and the Rust (gpty-core) GDExtension bridge, was generated utilizing LLMs; and arsenic such, the underlying codification whitethorn incorporate unidiomatic patterns and/or bugs.
Component Choice Rationale
PTY library portable-pty Cross-platform (Linux /dev/ptmx + Windows ConPTY) pinch a azygous API
ANSI parsing vte crate Fast Rust ANSI authorities machine
Async runtime tokio Per-terminal tasks; channel-driven seizure authorities machine
I/O threading Dedicated std::thread per PTY Predictable blocking reads; bridges to tokio via mpsc
Concept capture Rust regex complete parsed LineParser output Linear-time matching (ReDoS-safe); captures buffer earthy bytes for grid-faithful replay
Grid rendering alacritty_terminal Full DEC STD 070 grid authorities machine; walk arrays to Godot _draw()
Godot bridge gdext 0.5 Native GDExtension for Godot 4.7+
Rust edition 2024 Requires Rust >= 1.85

Standalone binaries (no Godot instal required) are published connected GitHub Releases for Linux, macOS, and Windows.

Platform Package
Linux gpty-v0.5.3-linux-x86_64.tar.gz - extract and tally ./gpty
macOS gpty-v0.5.3-macos.zip - unzip, right-click the .app → Open
Windows gpty-v0.5.3-windows-x86_64.zip - unzip and tally gpty.exe

The gpty binary controls a moving GUI complete JSON-RPC IPC. Build it pinch cargo build -p gpty (or cargo build --workspace).

Once the GUI is moving (launched from Godot aliases a merchandise binary), the CLI connects complete a Unix socket ($XDG_RUNTIME_DIR/gpty.sock connected Linux, aliases GPTY_SOCKET env var):

# Check if the GUI is running gpty version # Print the bundled supplier accomplishment (for coding agents moving wrong a pane) gpty --skill # Spawn a caller terminal pane gpty new-pane --pane-type terminal # List each progressive panes gpty list-panes # Send matter to a pane (by label, e.g. T1) gpty inject T1 --text "echo hello" # Close a pane gpty kill-pane T1 # Save and load named layouts gpty layout prevention my-setup gpty layout load my-setup gpty layout list # Manage the GUI daemon gpty daemon status gpty daemon stop # Generate AI instrumentality manifests (no GUI needed) gpty schema gpty schema --format mcp # Run arsenic MCP server complete stdio (no GUI needed) echo '{"jsonrpc":"2.0","id":1,"method":"initialize"}' | gpty mcp

See gpty --help for each subcommands and flags.

gpty ships an MCP (Model Context Protocol) server truthful AI agents and coding harnesses tin power the workspace. The repo-root mcp.json declares it for auto-discovery:

{"mcpServers": {"gpty": {"command": "gpty", "args": ["mcp"]}}}
  • Direct: tally gpty mcp complete stdio - exposes a instrumentality per CLI subcommand (new-pane, list-panes, kill-pane, focus-pane, inject, pane-read, pane-status, pane-run, pane-wait, broadcast, layout-*, daemon-*, concept-*, version).
  • Manifest: gpty schema --format mcp prints the MCP instrumentality manifest (JSON Schema, useful without a moving GUI) for hand-off to supplier configurations.

Tool schemas are generated from the aforesaid clap definitions arsenic the CLI (crates/gpty-cli/src/commands/schema.rs), truthful they cannot drift from gpty --help.


See ROADMAP.md for the afloat characteristic inventory.


See SECURITY.md for the threat model, reporting process, and what gpty does not take sides against. Implementation rules - the Concept Engine's ReDoS stance, PTY situation sanitization, IPC hardening, OSC 52 restrictions - unrecorded successful AGENTS.md.


See CONTRIBUTING.md for setup instructions, build commands, testing, codification style, and the propulsion petition process.


See CHANGELOG.md for the complete versioned changes and history.


gPTY is free software, licensed nether the GNU General Public License, type 3 aliases later — spot LICENSE for the afloat text.

LICENSE-EXCEPTIONS.md adds 2 permissions nether conception 7 of that license, truthful the ecosystem broadside stays permissive:

  • Plugins, extensions, and adapters are not required to beryllium GPLv3. Anything that useful pinch gPTY complete its CLI, JSON-RPC, MCP, aliases arena interfaces — including autochthonal pane types — whitethorn beryllium licensed nether Apache-2.0, MIT, aliases immoderate different position you choose, and shipped alongside gPTY without obligation.
  • Configuration and information files transportation nary copyleft. Profiles, workspaces, layouts, concepts, and settings are yours to licence nevertheless you like; the default *.json files shipped pinch gPTY are Apache-2.0.

Copyright (C) 2026 Neil Pathare.

gPTY is distributed successful the dream that it will beryllium useful, but perfectly without immoderate warranty and assumes nary liability for immoderate usage by end-users; without moreover the implied warranty of MERCHANTABILITY aliases FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for much details.

More