Skip to content

Terminal compatibility

The commit graph and GitHub avatars are inline images. The terminal needs to speak one of three image protocols.

Terminal Kitty iTerm2 Sixel Notes
Ghostty ✅ ❌ ❌ Recommended, what gitoui is developed on, all features tested first here.
Kitty ✅ ❌ ❌ Reference implementation of the protocol.
WezTerm ✅ ✅ ✅ Auto-detects; picks Kitty graphics first.
iTerm2 (macOS) ❌ ✅ ❌
Konsole ✅ ❌ ✅ Kitty since 22.04, Sixel optional.
foot (Wayland) ❌ ❌ ✅ Sixel native; very fast.
xterm ❌ ❌ 🟡 Needs xterm -ti vt340.
Alacritty ❌ ❌ ❌ No image protocol, graph falls back to Unicode.
Terminal.app (macOS) ❌ ❌ ❌ Same fallback as Alacritty.
gnome-terminal / Ptyxis 🟡 ❌ ❌ Recent VTE (≥ 0.78) supports the Kitty protocol; older VTE falls back.
Windows Terminal ❌ ❌ ❌ Unicode fallback only (as of Windows Terminal 1.x).

✅ first-class   🟡 config needed   ❌ not supported

When in doubt, run gitoui --graph-renderer sixel (or kitty, iterm, ascii) to force a specific renderer and bypass auto-detect.

gitoui pushes the Kitty keyboard protocol’s DISAMBIGUATE_ESCAPE_CODES flag at startup. This makes Alt+letter shortcuts arrive as a single KeyEvent on supporting terminals instead of Esc + letter (which would otherwise close the active view before the letter arrived).

Terminals that don’t speak the protocol silently ignore the push, Alt-key bindings work where the terminal sends them as proper meta-encoded events (most modern terminals do).

  • Mouse, enabled by default (ui.common.mouse_enabled = true). Click on rows / tabs / chips to interact. Wheel scrolls.
  • Clipboard, system clipboard via the arboard crate. On Wayland, wl-copy is not required, arboard’s wayland-data-control feature talks the protocol directly.