Sebuah proyek open-source baru bernama gPTY sedang mendefinisikan ulang konsep terminal multiplexer. Alih-alih tetap berada di dunia berbasis teks seperti tmux atau screen, gPTY menggunakan engine game Godot untuk GUI-nya dan Rust untuk backend PTY-nya. Hasilnya adalah aplikasi desktop lintas platform yang menyusun panel terminal secara berdampingan dengan penampil kode, pohon file, dan panel kustom — yang semuanya dapat dikendalikan oleh AI agent melalui protokol yang terdokumentasi. [1] [2]
Mengapa Godot dan Rust untuk terminal?
Proyek ini dimulai sebagai latihan pembelajaran: sang kreator ingin menggabungkan Godot dan Rust dalam sebuah proyek pribadi. Inspirasi dasarnya adalah tmux — menjalankan beberapa PTY dan membiarkan pengguna mengaturnya dalam bentuk grid dan tiling. Namun, Godot menghadirkan kanvas 2D dengan akselerasi perangkat keras yang berjalan di Linux, macOS, Windows, Android, bahkan headset VR. Kanvas tersebut memungkinkan gPTY melakukan hal-hal yang tidak bisa dilakukan terminal tradisional: penghitung FPS yang dapat disesuaikan untuk manajemen daya, mode “zen” layar penuh tanpa taskbar, serta roadmap yang mencakup rendering Markdown, framework wiki lokal, panel audio/video native, dan game 2D sederhana. Kreatornya mencatat bahwa panel browser secara eksplisit tidak direncanakan.
Kemampuan inti terminal
Di balik layarnya, gPTY menggunakan portable-pty untuk pembuatan PTY lintas platform (Linux /dev/ptmx, Windows ConPTY), crate vte untuk parsing ANSI, dan alacritty_terminal untuk state machine grid DEC STD 070 lengkap dengan warna 16/256/true color, scrollback yang dapat dicari dengan regex, dan seleksi teks terbungkus (wrapped text). Setiap PTY berjalan pada std::thread khusus untuk pembacaan blocking yang terprediksi, yang dijembatani ke Tokio melalui saluran MPSC. Jembatan Godot menggunakan gdext 0.5 sebagai GDExtension native untuk Godot 4.7+. Pengaturan, ruang kerja, profil, dan scrollback per panel disimpan ke SQLite dan JSON dengan pencarian teks lengkap di seluruh riwayat, dan semuanya dipulihkan saat restart.
Antarmuka kontrol AI agent
Yang membedakan gPTY adalah lapisan kontrolnya. Aplikasi ini menyediakan socket IPC JSON-RPC, CLI (gpty new-pane, gpty inject, gpty layout save, dll.), dan server MCP (Model Context Protocol) sehingga AI agent dan skrip dapat membuat panel, menyuntikkan teks, dan membaca output tanpa perlu melakukan scraping TUI. Server MCP berjalan melalui stdio untuk agent lokal atau melalui HTTP untuk agent cloud. Skema tool dihasilkan dari definisi Clap yang sama dengan CLI, sehingga tidak akan terjadi perbedaan dengan gpty --help. Sebuah engine konsep berbasis regex memantau output PTY dan mengarahkan kecocokan ke panel yang berdekatan — misalnya, mengirim kesalahan compiler ke penampil kode — namun penangkapan konsep hanya untuk tampilan; mereka tidak pernah menyuntikkan input kembali ke shell. Dua panel observabilitas tersedia secara default: panel Reasoning yang secara pasif memproyeksikan peristiwa siklus hidup agent yang terdokumentasi (OMP, extensible), dan panel Inspector yang menjalankan sesi tanya jawab privat tanpa tool. Proyek ini menekankan bahwa gPTY tidak pernah mengorkestrasi status agent; ia hanya mengobservasi.
Instalasi dan distribusi
Biner mandiri dipublikasikan di GitHub Releases untuk Linux (tar.gz), macOS (zip dengan .app), dan Windows (zip). Tidak diperlukan toolchain Godot atau Rust untuk menjalankannya. Setiap rilis menyertakan file SHA256SUMS untuk pemeriksaan integritas. Biner CLI (gpty) disertakan bersama GUI dan terhubung ke instansi yang sedang berjalan melalui Unix socket ($XDG_RUNTIME_DIR/gpty.sock di Linux) atau variabel lingkungan GPTY_SOCKET. Perintah gpty schema --format mcp mencetak manifes tool MCP untuk diserahkan ke konfigurasi agent tanpa memerlukan GUI yang berjalan.
Status saat ini dan trade-off
Sebagian besar basis kode — termasuk sebagian besar tata letak UI Godot dan jembatan Rust GDExtension — dihasilkan menggunakan LLM. README menyertakan penafian bahwa kode tersebut mungkin mengandung pola yang tidak idiomatik dan bug. Proyek ini adalah proyek sampingan yang sedang dalam pengembangan aktif; pemolesan dan peningkatan kualitas hidup masih terus dilakukan. README tidak memiliki tangkapan layar (situs dokumentasi menyediakannya), dan pengerjaan aksesibilitas sedang berlangsung (kontrol standar Godot terintegrasi dengan AccessKit). Lisensinya adalah GPL-3.0 dengan pengecualian: plugin, ekstensi, dan adapter yang bekerja melalui CLI, JSON-RPC, MCP, atau antarmuka event gPTY dapat menggunakan Apache-2.0, MIT, atau ketentuan lainnya. File konfigurasi dan data tidak memiliki copyleft.
Jika Anda sedang membangun tooling untuk alur kerja AI agent dan menginginkan ruang kerja visual yang dapat diskrip dan melampaui grid teks, gPTY layak untuk dicoba. Unduh biner rilis, jalankan GUI, dan coba gpty mcp dari konfigurasi agent untuk melihat antarmuka kontrolnya beraksi.
Sumber
- 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