A terminal emulator
that gets out of the way.

No tmux religion. No keybinding gauntlet. Just a fast, clean terminal with tabs that work, menus that make sense, and nothing you didn't ask for.

Go + ImGui + SDL2 GPL-3.0 Linux & macOS
~/projects
~/.config
htop
xero:~/projects$ xerotty --version
xerotty 0.1.0 (go1.24, imgui-go, sdl2)
xero:~/projects
tmux-integrated terminals

Built for people who want their terminal to be their window manager. If you just want tabs and a clean GUI, you're fighting the tool.

iTerm2

A preferences panel with more tabs than your actual terminal. Profiles, triggers, arrangements, pointer actions, advanced paste— buried under menus-within-menus. It works, but the configuration surface area is hostile.

You just wanted to change the font size.

GNOME Terminal / xfce4-terminal

Simple. Clean. Exactly what you want—until you try to use it on macOS, or outside its native desktop, or without pulling in half of GTK and its runtime dependencies.

Ghostty

So close. Fast, native, genuinely good rendering. Then you right-click expecting New Tab and find Copy and Paste at the top instead. Clipboard actions everyone has keyboard shortcuts for, sitting where the things you actually opened the menu for should be.

Priorities in weird places.

Keyboard-first terminals

Alacritty, Kitty, Wezterm—powerful, fast, deeply configurable. But they assume you want to memorize keybindings for everything. Right-clicking for a context menu shouldn't feel like a concession.

Every terminal picks a side: power-user complexity or platform lock-in. None of them just give you a good GUI terminal that works the same everywhere, with tabs you can click, menus that lead with what you actually use, and a config that doesn't require a PhD.

xerotty is a cross-platform terminal emulator built on ImGui and SDL2—no GTK, no Cocoa, no platform-specific widget toolkits. The same binary, the same behavior, the same menus on Linux and macOS.

It optimizes for the thing most terminals ignore: the GUI experience. Smooth tab navigation. Context menus where New Tab and New Window are at the top—the things you actually opened the menu for. Right-click that works like right-click. Scroll that works like scroll.

xerotty is also the first real project being built with Xyphia.

Renderer
ImGui + SDL2. Hardware-accelerated, immediate-mode. No retained widget trees or style engines.
Language
Go. Single static binary. No runtime dependencies beyond SDL2.
VT emulation
charmbracelet/x/vt. Comprehensive escape sequence handling, scrollback, and search.
License
GPL-3.0. Free as in freedom.
Tabs
Click to switch. Middle-click to close. Drag to reorder. Scroll wheel to navigate. No keybinding required.
Context menus
Fully user-defined from TOML. Order, items, nested submenus, conditions like enabled = "has_selection", shell-exec actions with $XEROTTY_SELECTION and $XEROTTY_CWD. Bring your own. New Tab and New Window come pre-bound at the top — not buried under clipboard items with shortcuts.
Selection
Single click drags by character. Double click drags by word. Triple click drags by line. iTerm2-style anchor stays put on the side you started from. Three-class tokens — $ doesn't drag the space with it.
Search
Incremental search across visible screen and scrollback history. Highlight matches, navigate with arrows.
Scrollback
Memory, disk-backed, or unlimited. Mouse wheel, page up/down, or scroll to a search match. Snaps back to live on new output.
Zoom
Ctrl+Plus/Minus or Ctrl+Scroll. Font scales, window resizes to fit. Visual feedback overlay.
Themes
Dracula, Gruvbox, Monokai, Solarized, Tango bundled. Convert any iTerm2 .itermcolors to TOML with the included import tool. Switch at runtime.
Fonts
OS-backed font discovery — CoreText on macOS, fontconfig on Linux. Color emoji and Nerd Fonts work without you pre-declaring atlas ranges. Real bold from the family's bold face, faux-bold fallback when there isn't one (Monaco-style).
Config
One TOML file covers everything — fonts, themes, keybinds, the menu, link detection, scrollback mode, unsafe-paste rules. No profiles. No triggers. No arrangements. Edit with the in-app preferences dialog or in your editor — both write the same file.
Cross-platform
Same code, same UI on Linux and macOS. Native polish where it matters — Cmd keybinds and NSPasteboard on Mac, cell-snap drag-resize, point=pixel DPI matching iTerm. No GTK, no Cocoa widget toolkits.
Lightweight
Single binary. Starts in milliseconds. No daemon, no server, no phone-home.