mightty
June 25, 2026 · View on GitHub
mightty is a small GPU-powered terminal emulator prototype built with Rust, GPUI, platform PTYs, and Ghostty's libghostty-vt.
It is currently Windows-first, with Windows shell I/O through ConPTY and Unix shell I/O through a forkpty-backed bridge.
Features
- GPU-rendered terminal UI through GPUI.
- Terminal emulation through
libghostty-vt. - Windows shell I/O through ConPTY.
- Unix shell I/O through forkpty.
- Tabs in a compact left sidebar.
- Right and down pane splits.
- Active pane and tab closing.
- Embedded JetBrainsMono Nerd Font Mono for terminal text.
- Feedback capture with
Ctrl+Shift+F12.
Stack
- GPUI for UI rendering.
- gpui-component for the root component wrapper.
- libghostty-vt for the Ghostty VT engine.
- Windows ConPTY and Unix forkpty for shell process integration.
Requirements
- Rust with edition 2024 support.
- Zig
0.15.2. - The Ghostty checkout at
ghostty/, used by.cargo/config.tomlasGHOSTTY_SOURCE_DIR. - Local JetBrainsMono Nerd Font Mono files under
fonts/JetBrainsMono/. - Windows for the primary shell bridge target, or a Unix platform for the forkpty bridge.
This repo includes a .mise.toml pin for Zig:
mise install
You can also set ZIG to a specific Zig executable.
Build
cargo build
cargo build --release
The libghostty-vt-sys dependency builds Ghostty's VT library during Cargo builds.
This repo's .cargo/config.toml points GHOSTTY_SOURCE_DIR at the local
ghostty/ checkout so normal Cargo commands do not need to fetch Ghostty.
cargo build
Run
cargo run
The default shell is pwsh.exe on Windows and $SHELL on Unix.
Development
Useful checks:
cargo fmt
cargo check
cargo clippy --all-targets -- -D warnings
cargo test
Useful runtime shortcuts:
Ctrl+T: open a new tab.Ctrl+B: hide or show the tab sidebar.Ctrl+1throughCtrl+9: switch to an existing tab.Alt+Enter: split the active pane to the right.Alt+Shift+Enter: split the active pane downward.Ctrl+D: close the active pane, or close the active tab when it has one pane.Ctrl+Shift+F12: write a terminal feedback capture tocaptures/.
Project Layout
src/
├── main.rs # App entry point and window setup
├── lib.rs # Library module exports
├── feedback.rs # Feedback capture output
├── pane_container.rs # Tabs, sidebar, pane actions, and key bindings
├── split.rs # Orientation-aware terminal split tree
├── widget/
│ ├── mod.rs # Terminal widget lifecycle and GPUI task wiring
│ ├── pty.rs # Wake-driven PTY worker bridge
│ ├── input.rs # GPUI key event to libghostty-vt key encoding
│ ├── render.rs # Terminal cell rendering
│ └── capture.rs # Terminal-state feedback snapshot
├── ghostty/mod.rs # Project facade over the libghostty-vt crate
└── shell/
├── windows.rs # Windows ConPTY implementation
└── unix.rs # Unix forkpty implementation
License
MIT