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.
- 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.
| 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.
| 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):
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:
- 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.
English (US) ·
Indonesian (ID) ·