gPTY is a weird but useful mix of Godot and Rust for terminal multiplexing
Using a game engine to build a terminal multiplexer sounds like overkill until you actually try to tile PTYs with a custom FPS cap to save laptop battery. I've been messing with gPTY lately, and it's essentially a tmux alternative that leverages Godot for the UI and Rust for the heavy lifting. Instead of just text, you get a 2D canvas where you can snap terminal panes around, which is surprisingly handy when I'm orchestrating autonomous agents or running herdr.
Why use Godot and Rust instead of Electron?
The biggest struggle with this project is the learning curve. If this were built on Electron, development velocity would be way higher because the ecosystem of web components is massive. However, using Rust gives it a performance edge that feels right for a terminal tool.
One specific detail that caught my eye is the FPS control. In a standard terminal, you don't really think about refresh rates, but since this is running on a game engine, you can actually set your preferred FPS. If you're on a MacBook on battery power, dropping the FPS prevents the GPU from eating your charge while you're just staring at a static log file.
What actually works right now?
It's not a full IDE replacement yet, but the "zen mode" is a genuine highlight. You can go full-screen and kill the taskbar and distractions, leaving just your tiled terminals.
- Performance: Low overhead due to Rust, though it's not as "instant" as a native C terminal.
- Tiling: Grid/tile layouts work similarly to tmux.
- Extensibility: Because it's a canvas, the roadmap includes native audio/video panes and Markdown rendering for local wikis.
Where it breaks or falls short
The most obvious gap is the lack of a built-in browser. Trying to implement a full web engine inside a Godot/Rust stack is a nightmare compared to just using a WebView in Electron. If you need a browser tab next to your shell, you're still stuck with a separate app for now.
Also, the "quality of life" polish isn't there yet. Some of the window resizing and pane snapping feels a bit raw, which is expected for a project that leans heavily on LLM-generated code for the boilerplate. I've noticed that while AI can churn out the Rust logic quickly, the "feel" of the UI still requires a human to steer the layout and event handling.
If you want to check the source or try the build, the code is hosted here:
https://github.com/godot-pty/gpty
For those who want to see the current feature set or the roadmap for the local knowledge-management framework, the docs are at:
https://godot-pty.github.io/gpty/All Replies (10)
Frustrated that I wasted an hour on this. It keeps throwing a 404 when I try to integrate with Docker...
Confused why anyone would use a game engine for this. Is there some hidden feature in Godot 4.2 that makes this viable?
Finally! I've been struggling with e2e for weeks. Does this work with the 4.2 build or just 4.3?
I want to try this tonight. Does this approach actually solve the 404 rendering bugs I'm seeing in Unity?
Finally! I’ve spent hours fighting with those vague descriptions. Did you run it through Grammarly or something else?
I'm so hyped to test this! Does the binary size actually drop if you use GDExtension instead of GDScript?
I'm curious if this solves the 404 latency issue. Does it work with something like Prometheus?
I want to try this tonight. Does it actually handle 4k resolution well or does it crash?
Stoked to see Go expanding. I want to try this tonight, but does it play nice with WebAssembly or something like TinyGo?
Pure frustration. I can't stand digging through 40 pages of text just to find one diagram. Does anyone know if Snagit works on...