← Back to posts

How to Choose Your Terminal: Why I Kept Warp and Ghostty After Trying iTerm2

A terminal is no longer a race for benchmark wins. AI collaboration, visual context, remote compatibility, perceived latency, and habit decide which tool earns a place in your day.

It is easy to choose a terminal as if it were a benchmark product. Startup time and scrolling frames matter, but they are rarely what decides a long workday. Once the terminal becomes a primary surface for AI coding, the important questions are different: can you hand context to an agent without friction, work reliably over remote sessions, stay oriented in long output, and keep the tool open for hours without it demanding attention?

My conclusion is deliberately not a single winner. I kept Warp and Ghostty. Warp is my collaboration terminal for AI-assisted work; Ghostty is my fast, quiet execution terminal. iTerm2 remains an excellent and remarkably complete macOS terminal, but it is less aligned with the center of my current workflow. This is a division of labor, not a ranking.

Warp is compelling for more than “AI in a terminal.” It puts terminal and agent work on one surface, and its agents can take images, URLs, files, code blocks, and selections as attached context. It also supports richer use of third-party CLI agents such as Claude Code and Codex. For product work, frontend debugging, and incident response—where screenshots, designs, error output, and commands belong in the same conversation—removing a copy, upload, and context switch is often worth more than a marginal startup gain.

Images are the clearest example. The old flow for a visual bug was to take a screenshot, save it, open a chat tool, then explain where the red box was. With image context attached on the same work surface, visual evidence and terminal state stay together. That does not make an agent correct on the first try. It removes a more expensive failure mode: losing context while moving between tools. For anyone who regularly debugs UI, that can be decisive.

Warp also has a real tradeoff: it is a thicker work environment, not merely an emulator. Agents, code review, conversations, and context carry more interface and more decisions. On a sensitive repository, or for a plain command task that needs no AI, I disable the relevant AI features or switch to Ghostty. The more a tool knows about your context, the more intentionally you must decide what context it receives.

Ghostty earns its role for the opposite reason. Its stated goal is to be fast, feature-rich, and native. On macOS it uses native UI and Metal-backed GPU rendering, while providing tabs, splits, a quick terminal, and modern terminal protocols. It does not ask me to enter a new workflow. Commands, tests, logs, SSH, tmux, and Zellij all feel direct and low-friction.

I would not call Ghostty categorically the fastest terminal. Speed includes startup, scrolling, I/O, control-sequence throughput, and frame rate, and Ghostty’s own documentation is careful to frame the goal as competing in the fastest tier. What matters to me is perceived latency: large logs move cleanly, tabs switch quickly, and frequent starts of coding agents or remote sessions do not steal attention. That is why it is my default executor.

iTerm2 is not the loser in this comparison. It has a deeply mature macOS ecosystem: tmux integration, session restoration, triggers, scripting, AI Chat, and an inline-image protocol. If your workflow depends on elaborate profiles, hotkeys, automation, or years of carefully tuned settings, iTerm2 is still an exceptionally safe primary choice. Its advantage is not novelty; it is the depth of a dependable toolkit.

The mistake is treating “most features” as the only metric. iTerm2 is highly configurable, Warp has a rich AI layer, and Ghostty feels light. A single score hides the decision that matters: what do you do most often? If you repeatedly give screenshots, files, and repository context to an agent, put Warp first. If you mostly run commands, inspect output, and work remotely, make Ghostty the default. If you manage complex profiles and automation, iTerm2's maturity is more valuable.

My setup is simple: Warp for agent collaboration, visual debugging, and coding tasks that need screenshots or varied context; Ghostty for Git, tests, logs, SSH, and tmux or Zellij; iTerm2 as a compatibility and legacy-workflow fallback. The point is not to collect apps. It is to let each one handle the moment where it removes the most friction.

A practical way to choose is to observe one week before reading another ranking. List the five actions you perform most in a terminal and the three frictions that interrupt them. Try the terminal that removes two of those frictions for two weeks, while keeping one fallback. A terminal is a container for muscle memory. The right one is not the longest feature list; it is the one that lets you leave the flow state less often.

— End —