VOOZH about

URL: https://thenewstack.io/warp-vs-ghostty-which-terminal-app-meets-your-dev-needs/

⇱ Warp vs. Ghostty: Which Terminal App Meets Your Dev Needs? - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2025-01-25 05:00:44
Warp vs. Ghostty: Which Terminal App Meets Your Dev Needs?
Developer tools / Software Development

Warp vs. Ghostty: Which Terminal App Meets Your Dev Needs?

Warp has many features, including AI, whereas Ghostty is lightweight out of the box. Our guidance on which terminal app is best for you.
Jan 25th, 2025 5:00am by David Eastman
👁 Featued image for: Warp vs. Ghostty: Which Terminal App Meets Your Dev Needs?
Image via Unsplash+. 
After the recent review of Ghostty on The New Stack, I thought I’d take a look at it from the point of view of a Warp user. They are both terminal apps (GUI shells, if you like), although Warp is decidedly more heavyweight in terms of features (including AI). Ghostty, on the other hand, is designed to be a good fit straight out of the box. This post is an introductory appreciation of both terminals in their context.

Why the Terminal At All?

When I described Warp as “heavyweight,” this can be seen just from the size difference of the apps on my MacBook (300MB vs 50MB): 👁 Image
👁 Image
There does seem to be a cultural gap between developers who virtually “live” inside their terminal — buying fonts they like, running commands and writing scripts as far as possible without using any GUI apps — and developers who spend most of their time in apps and tense up if they have to use a terminal for any reason. I recognize that Ghostty is targeted very much at the former audience, so it has a plethora of configuration options. However, there are reasons for developers to understand and use both styles. I’m using a MacBook now, but the power of a good terminal is that it will work on as many operating systems and distributions as possible — that is why people still learn how to use vim properly. Warp is coming to Windows shortly (there is a waiting list), and Ghostty will after version 1. Both cover the major Linux distributions, though I expect Ghostty to do this with more gusto. Whether we like it or not, computing on any platform is still about files, folders and processes. A good app can hide these basics, but your effectiveness as an engineer will decrease rapidly if you can’t control file permissions or understand long-running tasks. For example, on my MacBook, I can quickly install a tree (or I could just make the function)…
brew install tree
…and then show a directory-only view of one project structure. 👁 Image
Even if I had never heard of Avalonia, this tree tells me a great deal about what it is, far more quickly than messing about with Finder on my Mac. A terminal also becomes a very strong place of record. With a terminal that supports multiple tabs, I can effectively show the record of different sessions — and continue any of them as need be.

Installing Ghostty

I’m not going to look too much into introducing Ghostty, as our previous post does that nicely. I’m happy to use Homebrew to install it, but you can use binaries too.
brew install --cask ghostty
Here it is being installed from Warp. 👁 Image
Notice that Warp gave us a notification for long-running commands (processes). This is a good example of something done neatly and efficiently on the terminal. If you look at the top, you can see that as the Warp block is done (a completed command call and response), it records the time taken. Ghostty starts off out of the box with no config. However, it should be understood that much shell behavior comes from the shell configuration itself. I have the zsh shell installed and also oh-my-zsh (an “opinionated prompt system”), which also has behavior. I fully admit I don’t always know which is responsible for what. To take a quick check of how Ghostty starts up, we can stream the log as we start Ghostty:
log stream --level debug --predicate 'subsystem=="com.mitchellh.ghostty"'
This gives us an idea of the defaults it tries for. I’ve summarised these below:
- known but unimplemented action action=29
- found Ghostty resources dir: /Applications/Ghostty.app/Contents/Resources/ghostty
- shell integration automatically injected shell=termio.shell_integration.Shell.zsh
- known but unimplemented action action=16
- started subcommand path=/usr/bin/login pid=89591
- received and ignored icon=~
- unimplemented OSC command: change_window_icon
The one I was looking for was that it automatically integrated (injected) my zsh shell, so that is nice. But equally importantly, it doesn’t wobble if it comes across settings it doesn’t understand. If I do want to set a config, I just press cmd-, in the app. In this example, I copied a random config I saw mentioned in a blog:
theme=catppuccin-latte 
window-height=30 
window-width=110 
title="Oh, hello" 
window-title-font-family="MonoLisa Variable" 
font-family="MonoLisa Variable" font-size=14 
font-feature=-liga
font-thicken=true
I don’t actually have the fonts or the theme installed, but the log we streamed above confirms that Ghostty rejects and moves on without stopping the startup. Even so, it did “thicken” my font and change the window title: 👁 Image

Sessions, Windows and Tabs

The most common way to use a terminal for a place of record is to open the terminal window with several tabs. Each tab is effectively a separate shell focused on a separate project or process. On Warp, I just hit the plus sign on the bar for a new tab on the window. In Ghosty, command T does the same thing as well: 👁 Image
Ghostty also sets up those quick tabs, ⌘1, ⌘2 and ⌘3 — which is a nice idea. Notice that Ghostty sensibly inherits my git colouring. In many cases we can leave the terminal on for extended periods, but it is unwise to never think of restoring. In Warp, after working in a few tabs, I can then name and save the configuration, or launch a named configuration: 👁 Image
If I then quit Warp, reopen and launch, I get the window and tabs — plus I have the history available to help remember what I was doing. If I want similar behavior in Ghostty, I can add these key-value pairs to the config:
...
window-save-state = always 
quit-after-last-window-closed=true
If I then quit Ghostty with cmdz, restarting resets my windows correctly. Interestingly, I have the same session history as on Warp. I think omz_history manages this shared history behavior: 👁 Image
Right now, you can’t change the color of a tab in Ghostty, which is a strong way to differentiate the process going on it — I’ve certainly used that in other terminals. It is simple in Warp: 👁 Image
But I’ve already seen a feature request for this.

Conclusion

There are plenty of good terminal apps (e.g., Kitty) that Ghostty has to compete with, but right now, it is pretty solid. As a developer, you should value any terminal app that will be available on any platform so you can get up and running on new projects in new environments quickly. Sometimes, you will benefit from the details in Warp (AI in the terminal can aid you in remembering obscure commands and flags), but otherwise, speed and personalization matter. With languages like Zig established, there are likely to be more quick apps in production. So keep Warp and Ghostty — using each one as appropriate.
TRENDING STORIES
David has been a London-based professional software developer with Oracle Corp. and British Telecom, and a consultant helping teams work in a more agile fashion. He wrote a book on UI design and has been writing technical articles ever since....
Read more from David Eastman
SHARE THIS STORY
TRENDING STORIES
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.