Review
Picking between Ghostty and iTerm2 in 2026 comes down to what a developer's terminal habits rely on. For the majority of Mac developers, Ghostty is now the better everyday terminal: it launches and renders faster, uses fewer resources, keeps its settings in a plain text file that can live in git, and feels native on macOS. iTerm2 remains the smarter choice for people whose work revolves around tmux control mode or a large collection of triggers and Python scripts, since Ghostty offers nothing comparable for either.
Quick guidance
Ghostty fits best for anyone who mainly runs a shell, an editor and a local dev server; anyone who already versions their dotfiles in git and wants the terminal included; and anyone who also works on Linux and wants a single terminal on both systems. iTerm2 fits best for people who spend their days in remote tmux sessions and want those sessions shown as native tabs; people who depend on triggers, automatic profile switching or scripted window layouts; and people who would rather click through a settings window than edit a file.
Where each one comes from
iTerm2, created by George Nachman, has been the go-to serious terminal on the Mac for more than ten years. It is free, licensed under the GPL, and available only for macOS. Its enormous feature set is essentially an archive of power-user requests; if someone once wanted a macOS notification to fire when output matched a regular expression, that option now exists.
Ghostty began as a side project by Mitchell Hashimoto, reached version 1.0 in late 2024, and is now an open source project under the MIT license with nonprofit backing. A shared core is written in Zig. On macOS the app is a true Swift and AppKit program that renders with Metal, and on Linux it uses GTK. Its goals are deliberately narrow: speed, correct handling of terminal standards, and a native feel on each platform. New features arrive slowly and with intent. The contrast between the two philosophies becomes obvious within a day of use.
Performance
Ghostty is quicker. Benchmarks put it ahead of iTerm2 on input latency and far ahead on raw throughput. When a build spits out hundreds of thousands of log lines, Ghostty stays current while iTerm2 can be seen scrolling to catch up. Ghostty also uses less memory per idle window and opens almost instantly.
How much this matters depends on the workload. When the terminal mostly hosts Neovim and a test runner, iTerm2's Metal renderer is entirely smooth and costs no time. The throughput gap only appears when output floods in, such as running cat on a very large file or tailing Kubernetes logs at full speed. Those bursts are brief, but they tend to be exactly when the text needs reading.
Settings window versus config file
Configuration is the most noticeable everyday difference, and opinions run strong on both sides. iTerm2 is set up through an extensive graphical settings window covering profiles, colors, key bindings and window behavior, all stored in a plist. The plist can be placed in a custom folder and synced with dotfiles, and dynamic profiles allow profiles to be written in JSON, but the plist is unpleasant to review in a pull request.
Ghostty uses a single file at ~/.config/ghostty/config made of key = value lines. Cmd-comma opens it in the default editor, and a full working setup often runs to fewer than twenty lines because the defaults are sensible. The command ghostty +show-config --default --docs lists every option with documentation, ghostty +list-themes previews hundreds of included color schemes, and a reload needs just one keystroke. People who dislike editing config files will find this a chore; those who already keep a .zshrc and Neovim config under version control will feel the terminal finally fits the rest of their setup.
iTerm2 features Ghostty lacks
None of the following has a direct replacement in Ghostty today, so it is worth weighing them honestly before switching.
tmux control mode: launching tmux -CC in iTerm2 maps tmux windows to native tabs and panes with normal scrolling and copying. For people attached to remote sessions all day, this is iTerm2's standout capability and the most common reason users return to it. In Ghostty, tmux runs the conventional way, prefix key included.
Triggers: regex matches on output can recolor text, show notifications, run commands or respond to password prompts. Ghostty has no equivalent.
Automatic profile switching: iTerm2 can change colors based on hostname or user, for example when connecting to production over SSH. Many people treat this as a safety net and only miss it once it is gone.
Python API and saved arrangements: scripted window layouts, status bar components and custom automation.
Smaller extras: instant replay of screen history, broadcasting input to several panes, Cmd-clicking a file path to open it in an editor at the correct line, and a built-in password manager.
Scrollback search deserves a separate note. It was the most requested missing Ghostty feature for a long stretch after 1.0, so it is worth checking the release notes of the installed version instead of expecting it to work like iTerm2's Cmd-F.
What Ghostty brings
Ghostty's tabs and splits look and act like those of any other Mac app, with proper macOS window tabbing. Its quick terminal drops down from the top of the screen on a global hotkey, which is the nearest match to iTerm2's hotkey window and a complete substitute for most people. Shell integration sets itself up automatically for zsh, bash, fish and elvish without sourcing a script, enabling jump-to-prompt and new tabs that open in the current directory. Support for the Kitty graphics and keyboard protocols means image previews in yazi and modern key handling in Neovim work without fuss. The same app and config file also run on Linux. Font rendering generally looks closer to native macOS text, though that is best judged personally with one's preferred font.
Side-by-side
Price and license: Ghostty is free under MIT; iTerm2 is free under GPL v3. Platforms: Ghostty runs on macOS and Linux; iTerm2 on macOS only. Technology: Ghostty uses a Zig core with a Swift/AppKit interface and Metal; iTerm2 is built with Objective-C and Swift on Metal. Configuration: a plain text file for Ghostty versus a settings GUI, plist and JSON dynamic profiles for iTerm2. Large-output throughput: excellent for Ghostty, adequate for iTerm2. Drop-down terminal: Ghostty's quick terminal versus iTerm2's hotkey window. tmux: plain tmux in Ghostty, native tabs through tmux -CC in iTerm2. Automation: none in Ghostty; triggers, Python API and arrangements in iTerm2. Inline images: Kitty graphics protocol in Ghostty; iTerm2's own inline image protocol and imgcat in iTerm2. Shell integration: automatic in Ghostty; an install script with richer features in iTerm2.
AI features
iTerm2 3.5 introduced an AI assistant that required the user's own OpenAI key. After loud objections, the following point release moved it into a separate optional plugin, so iTerm2 sends terminal contents nowhere unless that plugin is installed and configured. Ghostty contains no AI features. Those wanting an AI-centric terminal are looking at a different category, such as Warp.
Switching smoothly
Install Ghostty with brew install --cask ghostty while keeping iTerm2 in place, and use both for a week. Begin with a config containing just a font, a theme and macos-option-as-alt = true, since iTerm2 users accustomed to Option-based word jumps will notice its absence right away. Rebuild the hotkey window using Ghostty's quick terminal keybind; macOS requests Accessibility permission the first time a global keybind is used. If older servers reached over SSH show garbled output or a broken backspace, they do not recognize Ghostty's xterm-ghostty terminfo entry. Fix this by copying it across with infocmp -x xterm-ghostty | ssh yourserver -- tic -x -, or by setting TERM=xterm-256color for those hosts in the SSH config. Finally, notice which iTerm2 window keeps getting reopened; if it is the one holding tmux sessions, the decision is made.
Verdict
Ghostty scores 9/10 and iTerm2 8.6/10. Ghostty is the winner for most Mac developers thanks to its speed, calm design, version-friendly config and strong defaults. iTerm2 remains the winner for the smaller group whose workflows are built on tmux -CC and its automation, and they have no reason to leave. Neither is a bad choice, and since both are free, trying Ghostty costs only an evening and a short config file; at worst, iTerm2 goes back in the Dock. Kitty and WezTerm are further options in the wider terminal field.
Products compared (2)
Each product links to everything we have filed about it. We don’t pick a winner the source didn’t.
Key facts
| Compares | Ghostty vs iTerm2 |
|---|---|
| Category | Developer Software |
| Best for | Comparison, Setup |
Buying considerations
How we filed this product. Each link shows other reviewed developer software that share it.
- Good fit for
- Works with
Alternatives to consider
Made4Buyerstmux vs Zellij vs WezTerm vs Screen (2026)
A comparison of tmux, Zellij, WezTerm's multiplexer and GNU Screen: tmux is the best overall pick for remote work, Zellij is easiest to learn, and Screen mainly suits old servers and serial consoles.
Made4Buyers
Made4BuyersTemporal vs Inngest vs Trigger.dev vs BullMQ 2026
A comparison of Temporal, Inngest, Trigger.dev and BullMQ for background jobs: Inngest is the default pick for serverless TypeScript, Temporal for mission-critical workflows.
Made4Buyers
Made4BuyersLaunchDarkly vs Unleash vs GrowthBook vs PostHog 2026
A comparison of four feature flag platforms: Unleash is the best default, LaunchDarkly suits costly releases, GrowthBook leads on experiments, and PostHog fits teams already on its analytics.
Made4Buyers
