Terminal Emulators: How to Choose the Right One
Your terminal emulator is the window between you and your development tools. Most developers use whatever came with their OS and never think about it again. But the right terminal can meaningfully improve your workflow — especially as AI coding agents become a bigger part of how you work.
What is a terminal emulator?
A terminal emulator is software that emulates the old hardware terminals that connected to mainframe computers. Modern terminal emulators provide a graphical window where you run a shell (bash, zsh, fish, PowerShell) and interact with command-line programs.
The terminal emulator handles rendering, input, tabs, and visual features. The shell handles interpreting your commands. They’re separate things, and you can mix and match.
What matters for developers
Speed
A fast terminal makes everything feel responsive. GPU-accelerated terminals (Alacritty, Kitty, WezTerm) render text faster than CPU-based ones. This matters most when AI agents produce large amounts of output quickly.
Tabs and panes
Multiple sessions in one window. Essential when you’re working across projects. Some terminals offer splits (horizontal/vertical panes within a tab), which is useful for watching output in one pane while working in another.
Scrollback
How much output history you can scroll through. AI coding sessions generate a lot of output — you need deep scrollback to review what happened earlier in a session.
Font rendering
Ligatures, emoji, true color (24-bit), and good font rendering make terminal output easier to read. Most modern terminals support these.
Customization
Themes, key bindings, opacity, blur effects. These are personal preference, but a terminal you enjoy looking at is one you’ll use more.
Popular options
macOS
Terminal.app — The built-in macOS terminal. Basic but functional. Lacks GPU acceleration and has limited customization. Fine for light use.
iTerm2 — The most popular third-party terminal on macOS. Feature-rich: splits, profiles, triggers, tmux integration, search. Mature and stable. Can feel heavy compared to newer options.
Alacritty — GPU-accelerated, minimal, fast. Configuration via YAML/TOML file. No tabs or splits by design — intended to be used with a window manager or tmux. Cross-platform.
Kitty — GPU-accelerated with more built-in features than Alacritty (tabs, splits, image rendering). Extensible via Python. Cross-platform.
WezTerm — GPU-accelerated terminal written in Rust. Tabs, splits, multiplexing, Lua scripting. Cross-platform. Good balance of speed and features.
Crystl — A macOS terminal designed specifically for AI-assisted development with Claude Code. Organizes projects as gems with terminal sessions (shards), manages permission approvals through floating glass panels, and supports parallel agents via git worktree-backed isolated sessions. Not a general-purpose terminal — it’s purpose-built for the AI coding workflow.
Linux
GNOME Terminal / Konsole — Default terminals for GNOME and KDE. Functional, well-integrated with the desktop.
Alacritty, Kitty, WezTerm — Same cross-platform options as macOS. Popular among developers who want speed and customization.
Tilix — Tiling terminal for GNOME. Built-in splits and session management without needing tmux.
Windows
Windows Terminal — Microsoft’s modern terminal. Tabs, splits, GPU-accelerated rendering, theming. Supports PowerShell, CMD, WSL, and more. The clear default choice on Windows.
WezTerm, Alacritty — Cross-platform options that also run on Windows.
The AI coding agent factor
AI coding agents change what you need from a terminal. Traditional terminal features (tabs, speed, font rendering) still matter, but new requirements emerge:
- Session organization — When you’re running multiple AI agents, you need more than tabs. You need project-level organization so you can see which agents belong to which project.
- Approval management — AI agents ask for permission before acting. In a standard terminal, these prompts are just text in the output stream. You have to be looking at the right terminal to see them.
- Session persistence — AI conversations are valuable context. If you close a terminal window and lose the conversation, you lose that context.
- Parallel session support — Running two AI agents on the same repo requires isolation (like git worktrees). Most terminals don’t help with this.
These are the problems Crystl was built to solve. If you’re using AI coding agents occasionally, any good terminal works. If they’re a core part of your daily workflow, a terminal designed for that workflow makes a real difference.
Recommendations
Occasional terminal use: Terminal.app (macOS), Windows Terminal, or your desktop’s default terminal.
Daily development: iTerm2 (macOS), Kitty or WezTerm (cross-platform), Windows Terminal.
Speed-focused: Alacritty with tmux for session management.
AI-heavy workflow on macOS: Crystl for Claude Code sessions, plus a general-purpose terminal for everything else.