These are Ghostty GUI release notes, but I want to take a moment to highlight the libghostty progress we've made since Ghostty 1.3.
As a reminder, libghostty is the highly portable, embeddable library that provides core terminal emulation, render state, and more. I always felt that a free, high qualty, lightweight, reusable terminal emulation core would benefit the developer world more than any single GUI application. And that is playing out!
It is and always was my true purpose with the Ghostty project (I said this in my first ever talk about Ghostty!). I've jokingly said many times that Ghostty GUI is just a glorified tech demo for libghostty. That's not fair though, because GUI is great and there are really talented people working on it.
Since I started the project, Ghostty has always gotten people saying "I don't understand why you'd start a terminal emulator today." Well, the answer is libghostty. It's truly unique and its enabling something special (imo!).
Highlights of libghostty since 6 months ago (none of the below was true 6 months ago):
- Libghostty has nearly 100% coverage of all of Ghostty's core (and you can compile with flags to remove any of these features for size/safety): https://libghostty.tip.ghostty.org/
- Libghostty now builds and is tested (in CI) for: Apple (macOS, iOS, visionOS), Windows (MSVC and GNU), Linux, FreeBSD, Android, WebAssembly, and freestanding (i.e. direct on hardware with no OS).
- Libghostty has bindings in pretty much every popular programming language: C, Zig, Go, Swift, Python, Rust, .NET, etc.
- Libghostty's memory requirements have dramatically shrunk to enable the portability above. There's still work to do but a single empty terminal now takes 90% less memory. And at scale I've proven 10,000 active (input/output happening) terminals on a Linux server with 4 cores and 8 GB of RAM.
- Libghostty's speed is used by Antithesis to fuzz popular terminal programs and has directly led to hundreds of bug fixes sent upstream to programs such as tmux, btop, shells, and other terminal emulators. :)
Libghostty is really successfully turning into the tide that raises all boats. As it becomes more popular, Ghostty itself gets more performant and stable, and so does everyone else. It is also a vehicle for delivering modern terminal emulation to the widest source possible.
I plan on tagging libghostty 1.0 in the next few months and declaring ABI stability at that point!
Because of your multiple "I am tired of saying this, but this text was written by me and not an LLM" in your blog posts, I want to tell you that I read it word for word. :D I know this comment adds not much but I felt it needed to be said.
One almost forgets how easy it is to read a wall of text when it was written by a human. This was nice to read (also because you can feel it's got care behind it).
I'm from the KDE project, and have been working on a new frontend built on libghostty-vt to hopefully one day ease our maintenance burden.
It's been a quite smooth experience, and I remain very excited about the lib. I believe you are successfully setting the standard. Big congrats for your 1.4.0!
Agreed on the value of libghostty. I switched from vterm to ghostel recently and it's solved some refresh issues I previously had with vterm when using CLI coding agents in emacs.
Okay, that's fun:) ...so if I use this on an ESP* with a physical display and keyboard attached, at what point does it stop counting as a terminal emulator again?:)
> Libghostty now builds and is tested (in CI) for: [...] freestanding (i.e. direct on hardware with no OS).
I am really impressed. When I had read your original comment, I literally shouted oye! (meaning woah) because of how interesting it felt. Glad that I can see the demo as well.
But aside from the fun little demo, what are the real use cases that we can think of as well.
here are some that I have thought of
1. SSH'ing into a terminal (VPS) or being able to view what the AI agents are doing on that VPS and controlling them very thinly in your pocket.
2. I have a slight dream that I'd like to chip in but I always wanted to create something like monkeytype but on embedded-hardware. Something which can just plug to TV's and people can connect a keyboard and start to type.
3. Or another idea but being a book reader and having it connect to some library resource
(2) & (3) for the underdeveloped regions.
Maybe (1) can be good as well and could very well be a small computer terminal which can teach/help the underdeveloped regions.
I live in India and I see it first hand how genuinely just want to create some extremely minimalist software on extremely cheap hardware to make funding of them easier and more scalable.
This also makes the constraints work good as one of the govt's basically spent a lot of money providing mid/high end tablets to every children and it turned out to be quite catastrophic because although it was kiosked because it was just intended to watch videos or read resources.
Children paid people to crack it and then started using instagram on it. My mother is a govt. teacher and she strongly thinks that it was a waste of resources and even the parents of the children and local village meeting committees think so as well. I remember reading some local news articles about villages conducting meetings on how to prevent their children from such instagram addiction so quickly after the tabs were given.
I would like to hope that maybe someday someone creates the more optimal solution to the problems that I discussed and libghostty comes handy to the situation. Thanks for making it and have a nice day :-D
Although not necessarily advertised as such, I've been successfully using alacritty in several projects injecting terminals into things both serious and silly.
I'm super excited for you and this, but this is mostly a highlight list of who is using your library. I was kind of excited to read about the actual changes to the library but I suppose I can go read the changelog on my own.
i tried ghostty, rio, wezterm, they all stuck for about a month or so... then the subtle usability issues become too much, and i wonder why i switched from iterm2 to begin with. there's something to be said for years of polish, and feature work that is well-baked.
iterm2 is fast, reliable, and second nature. i don't have to edit settings every day.
I've tried Ghostty and it's great, but Kitty's hints mode[1] is the one feature keeping me from switching from Kitty to Ghostty. There are quite a few discussions around this and similar features in the Ghosstty-org/ghostty Discussions[2] which I follow. Most of them are references from ghostty-org/ghostty/discussions/2394[3]. Maybe now that Ghostty has finished implementing Kitty graphics hints will be next .
Yeah this is what is keeping me from using ghostty. Unfortunately I think that discussion is dead and no one agrees on the design of the three or so separate parts. I maintain a fork with quick select for my own purposes but I can’t use it at work.
For me: it doesn't really "bring" anything more than what I expect from a terminal.
In Mac, we had the default terminal app which has some problems with TUI apps and other small issues. iTerm2 is the replacement that most users use, but it become too bloated with useless features and AI, while it was hard to keep a good config file that I could share between devices. Ghostty was a sane mid-term for me: a good and modern terminal, with a simple config file, maintained by someone that I trust (Mitchell Hashimoto) and only that.
About Linux: I don't use Ghostty in Linux because I'm comfortable with Konsole.
1) Personal preferences: different terminals come with different defaults, some people do not want to tinker with the settings, so they just stick with whatever immediately clicks.
2) Technical curiosity: some people probably started their own terminal project just for the fuck of having made their own - and they eventually gained a userbase.
3) Feature set: Most terminals implement most features these days, but at the time these projects started, you'd have a feature matrix between features and terminals because most terminals lacked some features; so people would pick whatever suited their needs.
Personally I've been using kitty for years mostly due to 3), at the time I chose my forever terminal, I evaluated like 12 different ones, and kitty was the only one that covered most of my needs without feeling like it suffers from random quirks, and I like that it has built-in terminal multiplexer (a'la tmux) and emoji picker.
A couple of annoyances I've had shipping CLI apps to Konsole users:
1. By default, Konsole disables OSC8 link support. Users can enable it manually, but you need to ship fallbacks by default since otherwise the default users will have a broken experience. Ghostty, Kitty, WezTerm, etc all ship working OSC8 support out of the box.
2. No built-in Nerd Font support, so if you want to render icons, you need to tell your users to set up a patched font or else have fallbacks. Ghostty and WezTerm ship built-in Nerd Font fallbacks if your configured font isn't patched.
That being said Konsole is much better than most emulators. iTerm2 is not bad, although it lacks Symbols for Legacy Computing Unicode support (which all of the above have, including Konsole, and which is very useful for drawing prettier terminal UIs). The worst by far is Apple Terminal, truly the IE6 of terminal emulators.
I believe that the default behavior should be to never open a link without a confirmation from the user that this may be done.
This should be enough to avoid malicious links. I do not believe that completely disabling links is a good default, because they are very frequently useful when you read some text file in the terminal window.
There's always gonna be something that's better, faster, bigger, badder, stronger, thicker, firmer, etc., and terminals really aren't one of those things where I am interested in exhaustively testing all of them to find the truly greatest one. A terminal is also one of those things where if you find one that is perfectly adequate then there's little motivation to even bother using trying one. And there's the whole "devil you know" aspect. The only reason I rarely try a different terminal is if the stock terminal on whatever OS I'm using lacks some basic niceties that should be expected in the year 2026.
I like Ghostty because I find it both fast and configurable, and it's multi-platform without treating macOS like the red headed step child. I also appreciate how its configuration is text-based, which I prefer to someone's opinion of how a configuration GUI should behave, and I think it's good the developers aren't wasting a second of their time thinking about a configuration GUI.
I also thought like that, but you only to set some defaults and you're ready to go. If you still prefer a GUI there are online generators. Nowdays you can also vibecode them, they are very simple and any LLM will do it right
The terminal ecosystem needs to change, and these terminals support a lot of cool features. Ghostty's pure reusable terminal state machine being a source of truth, Kitty graphics, Wezterm and its mux domains & lua config, lots of cool ideas there.
Having having an industry player like hashimoto's superlogical driving terminal features is the extreme version of that
> Ghostty's pure reusable terminal state machine being a source of truth
Can you please explain what this means? I have Ghostty installed just as a backup to use when I have terminal saturation in my default (MacOS Terminal). But other than being super responsive, I don’t know why people love it so. Perhaps I’m missing something large and compelling.
I assume the quote is referring to libghostty. In which case a lot of different tools like vs code, Emacs, Gvim, Intellij and other IDEs, even web consoles on stuff like Azure essentially use and reimplement the same core, the idea behind libghostty is to replace those with a common component where long term development can better support the needs of all terminals.
In terms of ghostty itself its just a highly competent use of libghostty, Mitchell’s message above about it being a tech demo is tongue and cheek, but its not far off from the truth. It is just a really solid no bells and whistles, bar excellent execution, terminal emulator that uses libghostty.
Terminal state machine parsing is a very tricky thing, especially when you have people defining arbitrary protocols to interact with it. So having one implementation simplifies the development a lot. Of course this buys you into their ecosystem and whatever ghostty specifically supports etc.
A lot of other terminal emulators can expose similar reusable things (alacritty comes to mind) but libghostty is the most well supported one
I have been using Alacritty for its GPU acceleration long ago. Ghostty was slightly faster, but then Ptyxis was also faster. Since I preferred to configure my terminal with GUI, I have switched to Ptyxis.
Yeah, I recently tried out Kitty and Ghostty just feels much smoother when rendering most TUIs and even some more basic stuff like the homebrew progress bar. It is also better about respecting platform conventions for things like keybinds and window/tab behavior.
I assume that this depends on your computer/GPU/GPU driver.
I have used Konsole for many years and I have used kitty for about 2 years in 2024/2025, then I have switched to ghostty around the beginning of 2026.
At least in my computers (with NVIDIA GPUs and Gentoo Linux), kitty was many times faster than Konsole and Ghostty even faster.
Moreover, in the now somewhat distant past when I was still using Konsole, it did not have some font rendering features that I desired, but that might have been solved meanwhile.
A reason why the terminal emulator speed is important for me is that I frequently compile big software projects and I find it unacceptable for a compilation to be slowed down by the low speed at which the compiler output is displayed on the terminal window, which happened frequently with all terminal emulators older than kitty and ghostty (I have always used CPUs with enough cores so that compilation itself is very fast, so the older terminal emulators become the bottleneck).
I don't think Konsole is actually faster than Kitty or Alacritty. Kitty is really nice and an innovator in a lot of terminal standards. It's also non-commercial and not related to any sort of startup (not that Konsole is either). It's definitely my first choice of the bunch, followed by Alacritty.
Kitty is really nice, a programmable terminal that does everything I want, GPU rendering, etc. Haven't used Ghostty yet but one of its advantages is libghostty, modern terminal emulation as a library.
> libghostty: a cross-platform, minimal dependency library that exposes a C API so feature-rich, correct, and fast terminal functionality can be embedded by any application anywhere.
Oh the author actually posted about it just now in rich detail. It's pretty exciting for people who spend much of their time in the terminal.
For me it's simply that iTerm2 got really fat over the years, and Ghostty was a nice and slim alternative - plus it has one of the better Kitty Graphics Protocol implementations which is fun to tinker with. e.g.: https://github.com/floooh/chipz-kitty (needs zig-0.17.0).
You could, but my answer would probably skew your opinion about as much as yours did mine. :D
To me the point of Konsole is that it works well, plus it's already there. Ghostty I need to make an effort to have it, however small it is, and I'm just trying to understand what I'd be missing if I didn't.
> Konsole is way faster than any of those on my computer and it has all the usual suspects I'd expect from a modern terminal emulator.
Same boat here, though I also get to enjoy some of the benefits of libghostty, via ghostel in Emacs. Ghostel is noticeably faster when there's a lot of output being dumped, but I don't often need the speed and use it only because it's integrated rather well into the rest of my Emacs.
> tmux -CC integration
If you can stomach Emacs, there are at least two packages that implement this, one via eat and another via vterm, though none via ghostel just yet. Shouldn't be difficult to port, though.
For me, the main reason to use Ghostty is simply that mouse support works right out of the box. In Konsole clicking a spot to move the cursor only works if you're using Bash. While it also works with the Fish Shell on Ghostty.
I don't know Konsole, but kitty have tons of features other "plain" terminals lack. It's not just about speed (which I never got the obsession about either)
Yeah. It's slow on Linux, for sure. I use Foot, which as far as I've tested is the fastest to launch. I use Niri and launch Foot terminals all the time as part of my workflow (it's just how my mind works), so time to launch matters to me.
for terminals I personally am using kitty, but libghostty is great and powers ghostel in emacs which is amazing. Also note if you start trying to look at unicode correctness, in my experience ghostty is in general the best among all alternatives.
The advertised point is it needs zero config to work outside of the box. For example nerd fonts are included by default whereas you need to install them if you are using let’s say iterm2.
I'm not sure why you want shaders, but if you use a coding agent in the terminal you definitely want image support. Otherwise it's very hard to see what the agent is seeing.
I was sceptical for decades as well.
But they are amazing - no more closing the xterm by mistake. I'm using those because I wanted for example a single window with THREE consoles open at once AND being able to handle some ANSI crazy theming.
I'd love to, I switched back to iTerm after not really feeling any big difference in my uses cases, but also hating the crappy plain text with no defaults listed config that required me to use a goddamn web app to comfortably learn and fill out.
There was also some pretty noticeable differences in character rendering between the two with identical-as-I-could-make-them font settings.
> here was also some pretty noticeable differences in character rendering between the two with identical-as-I-could-make-them font settings.
I'm pretty sure it was iTerm's problem.
I've tested a number of Terminal Emulators on macOS and Ghostty's rendering is always superior.
Yeah, except the default config file doesn't EXIST and there is nothing but the reference docs to tell you what the hell you're supposed to put in there. What am I supposed to do, guess? Is it `font=` or `font-family` or `font-name`? That's fucking terrible. The very existence of a website like this: https://ghostty.zerebos.com proves the failure in my opinion.
Good tools should be invisible. Good tools behave the way I want them to. That's different than the way you want them to behave. Or appear. Good defaults are good. That is absolutely no excuse to abandon good UX for configurability.
I'm happy the defaults work for you. They don't for me.
And don't get me wrong, ghostty is a fine terminal and I don't begrudge it, and I think libghostty is awesome, it's just not the application for me.
The update experience in Ghostty is great. I think it takes under 5 seconds from the moment you click accept update and until the new updated terminal is running.
I loved Ghostty for thr first month I tried it, but got some strange behavior when SSHing into some machines. Sounds like this release may address that. Maybe I can finally ditch iTerm2, lol
It’s rude to install a terminfo on a remote machine (which you may not be the owner of). It’s a preposterous for a terminal emulator to install things on a remote machine just to make it work.
If you want to use in a terminal emulator features that do not exist in any xterm variant and the remote computer does know only xterm, there is no way to do that without installing data into the terminfo database.
Otherwise, there is no need to install anything, you should just set the environment variable TERM in the remote computer to one of the xterm variants and then modern terminal emulators like kitty or ghostty will still work fine, but of course only as long as you use the xterm-compatible subset of their features.
It's actually the remote machine that isn't working, but I get the frustration. What I did to fix this is to override the environment variables in your SSH config like this:
My experience with terminals was like this - Alacritty -> Ghostty -> tty7. The last one implements exactly what I had in mind when I used Alacritty and Ghostty. Only it doesn't hype much (the author apparently doesn't strive for that much), maybe that's for the better.
I'm still using Wezterm here due to its Windows support, and I like being able to share one configuration my company Windows and my personal Linux laptops.
I've come to like its hyperlink rules to automatically generated clickable links to Reviews/Issues/Requirements/Linter Errors/... so I haven't felt the need to switch yet to have this feature missing.
Ghostty is so great. I am very thankful to Mitchell for dedicating so much of his time to making a terminal that is truly great. Finally, somebody really cares and has the technical abilities to materialize that care as great software.
Also, ghostel in Emacs is fantastic as well (of course in a big part thanks to libghostty) — most of my work has now shifted into Emacs as a result.
Glad for an update. It’s unfortunately still missing table-stakes features for people who use primarily keyboard driven workflows. I guess I’ll stick with wezterm for another year.
I've been a laggard in switching to Ghostty because I used WezTerm and wrote a plugin to customize it to my liking. I switched to Ghostty just because I got tired of nothing happening in the WezTerm land and wanted to try something different.
I have quite enjoyed using the kitty image protocol in interesting ways.
I made a Claude code skill telling it to put a little image in the corner of the console when it does a render to see how something looks. It was quite fun telling it to draw a chicken with 5 SVG D paths and watching it iterate in the terminal.
Kitty is so awesome. I'm writing (well, as much as anyone writes) a MUD that models a decent part of Tokyo at 30-60fps over SSH at reasonable resolution (that's the dream, at least). I'm shocked at how fast I can render a big complex 3d environment, in the terminal.
> Escape codes are the new html for browsers now called terminal emulators.
Not really and that isn't a good thing in the long run.
There should not be any more complexity in a terminal emulator that will just lead attackers to craft RCEs exploits to your terminal to steal your secrets on your computer just because "Its cool" and has hundreds of escape codes.
Hmm I wss checking for updates last night actually. I really hope they dont start adding llm junk to ghostty. I really like it, but mitchel sounded like he got bit by the llm bug a few months back.
Its honestly perfect as it is, just nerd performance tweaks imo.
I'm sure mitchellh will check out this comment section at some point - any updates on the move away from Github? I don't really see anything that's changed, but maybe it's behind the scenes. I was pretty excited on your initial post about it but it's been a while.
These are Ghostty GUI release notes, but I want to take a moment to highlight the libghostty progress we've made since Ghostty 1.3.
As a reminder, libghostty is the highly portable, embeddable library that provides core terminal emulation, render state, and more. I always felt that a free, high qualty, lightweight, reusable terminal emulation core would benefit the developer world more than any single GUI application. And that is playing out!
It is and always was my true purpose with the Ghostty project (I said this in my first ever talk about Ghostty!). I've jokingly said many times that Ghostty GUI is just a glorified tech demo for libghostty. That's not fair though, because GUI is great and there are really talented people working on it.
Since I started the project, Ghostty has always gotten people saying "I don't understand why you'd start a terminal emulator today." Well, the answer is libghostty. It's truly unique and its enabling something special (imo!).
Highlights of libghostty since 6 months ago (none of the below was true 6 months ago):
- Libghostty has nearly 100% coverage of all of Ghostty's core (and you can compile with flags to remove any of these features for size/safety): https://libghostty.tip.ghostty.org/
- Libghostty now builds and is tested (in CI) for: Apple (macOS, iOS, visionOS), Windows (MSVC and GNU), Linux, FreeBSD, Android, WebAssembly, and freestanding (i.e. direct on hardware with no OS).
- Libghostty has bindings in pretty much every popular programming language: C, Zig, Go, Swift, Python, Rust, .NET, etc.
- Libghostty's memory requirements have dramatically shrunk to enable the portability above. There's still work to do but a single empty terminal now takes 90% less memory. And at scale I've proven 10,000 active (input/output happening) terminals on a Linux server with 4 cores and 8 GB of RAM.
- Libghostty powers all JetBrains IDE terminals, over 12.5 million active users. https://blog.jetbrains.com/platform/2026/10/jetbrains-termin...
- Libghostty is the most popular core behind the wave of venture-backed "agentic" terminals and editors, such as Herdr, cmux, and many others.
- Libghostty is being discussed and has been verbally accepted to replace the terminal core in Neovim: https://github.com/neovim/neovim/pull/39773 (work still to be done)
- Libghostty powers a really popular and powerful terminal emulator for emacs (Ghostel): https://github.com/dakra/ghostel
- Libghostty's speed is used by Antithesis to fuzz popular terminal programs and has directly led to hundreds of bug fixes sent upstream to programs such as tmux, btop, shells, and other terminal emulators. :)
- And so much more: https://github.com/Uzaaft/awesome-libghostty
Libghostty is really successfully turning into the tide that raises all boats. As it becomes more popular, Ghostty itself gets more performant and stable, and so does everyone else. It is also a vehicle for delivering modern terminal emulation to the widest source possible.
I plan on tagging libghostty 1.0 in the next few months and declaring ABI stability at that point!
Because of your multiple "I am tired of saying this, but this text was written by me and not an LLM" in your blog posts, I want to tell you that I read it word for word. :D I know this comment adds not much but I felt it needed to be said.
One almost forgets how easy it is to read a wall of text when it was written by a human. This was nice to read (also because you can feel it's got care behind it).
Great stuff! If it wasn't for Rex I'd still be using Ghostty daily
I'm from the KDE project, and have been working on a new frontend built on libghostty-vt to hopefully one day ease our maintenance burden.
It's been a quite smooth experience, and I remain very excited about the lib. I believe you are successfully setting the standard. Big congrats for your 1.4.0!
Thanks for the work on getting libghostty 1.4 out! :D
Wanted to add too that I can't wait for xterm to eventually support libghostty, you've been super supportive providing feedback!
https://github.com/xtermjs/xterm.js/issues/5686
Thank you for making Ghostty, it’s a pleasure to use it everyday for work :)
Agreed on the value of libghostty. I switched from vterm to ghostel recently and it's solved some refresh issues I previously had with vterm when using CLI coding agents in emacs.
> Libghostty now builds and is tested (in CI) for: [...] freestanding (i.e. direct on hardware with no OS).
That's really cool, but I'm drawing a blank; what's it used for? Embedded terminal something?
Yep, fun little demo: https://x.com/UzaAft/status/2093774764598817022
Okay, that's fun:) ...so if I use this on an ESP* with a physical display and keyboard attached, at what point does it stop counting as a terminal emulator again?:)
> Libghostty now builds and is tested (in CI) for: [...] freestanding (i.e. direct on hardware with no OS).
I am really impressed. When I had read your original comment, I literally shouted oye! (meaning woah) because of how interesting it felt. Glad that I can see the demo as well.
But aside from the fun little demo, what are the real use cases that we can think of as well.
here are some that I have thought of
1. SSH'ing into a terminal (VPS) or being able to view what the AI agents are doing on that VPS and controlling them very thinly in your pocket.
2. I have a slight dream that I'd like to chip in but I always wanted to create something like monkeytype but on embedded-hardware. Something which can just plug to TV's and people can connect a keyboard and start to type.
3. Or another idea but being a book reader and having it connect to some library resource
(2) & (3) for the underdeveloped regions.
Maybe (1) can be good as well and could very well be a small computer terminal which can teach/help the underdeveloped regions.
I live in India and I see it first hand how genuinely just want to create some extremely minimalist software on extremely cheap hardware to make funding of them easier and more scalable.
This also makes the constraints work good as one of the govt's basically spent a lot of money providing mid/high end tablets to every children and it turned out to be quite catastrophic because although it was kiosked because it was just intended to watch videos or read resources.
Children paid people to crack it and then started using instagram on it. My mother is a govt. teacher and she strongly thinks that it was a waste of resources and even the parents of the children and local village meeting committees think so as well. I remember reading some local news articles about villages conducting meetings on how to prevent their children from such instagram addiction so quickly after the tabs were given.
I would like to hope that maybe someday someone creates the more optimal solution to the problems that I discussed and libghostty comes handy to the situation. Thanks for making it and have a nice day :-D
As a fairly recent ghostty user I was surprised with how quickly it became my default terminal. Very smooth experience so far.
Is the launch timed for Halloween parties? Good job team + community!
But could it do two rows of tabs?
the web version powers our quickstart via a cloudflare websocket and some custom patches (only on desktop): https://hotaisle.xyz/quick-start
it is all open source: https://github.com/hotaisle/hotaisle-website
Why is libghostty better than alacritty?
Although not necessarily advertised as such, I've been successfully using alacritty in several projects injecting terminals into things both serious and silly.
I'm super excited for you and this, but this is mostly a highlight list of who is using your library. I was kind of excited to read about the actual changes to the library but I suppose I can go read the changelog on my own.
Im the only one no longer uses terminals apps, not even IDE's, now not even terminals.
Claude/Codex app all the way baby. What a crazy world.
i tried ghostty, rio, wezterm, they all stuck for about a month or so... then the subtle usability issues become too much, and i wonder why i switched from iterm2 to begin with. there's something to be said for years of polish, and feature work that is well-baked.
iterm2 is fast, reliable, and second nature. i don't have to edit settings every day.
I've tried Ghostty and it's great, but Kitty's hints mode[1] is the one feature keeping me from switching from Kitty to Ghostty. There are quite a few discussions around this and similar features in the Ghosstty-org/ghostty Discussions[2] which I follow. Most of them are references from ghostty-org/ghostty/discussions/2394[3]. Maybe now that Ghostty has finished implementing Kitty graphics hints will be next .
[1]: https://sw.kovidgoyal.net/kitty/kittens/hints/
[2]: https://github.com/ghostty-org/ghostty/discussions
[3]: https://github.com/ghostty-org/ghostty/discussions/2394
Yeah this is what is keeping me from using ghostty. Unfortunately I think that discussion is dead and no one agrees on the design of the three or so separate parts. I maintain a fork with quick select for my own purposes but I can’t use it at work.
I still don't understand the point of Ghostty, Kitty, Wezterm...
Konsole is way faster than any of those on my computer and it has all the usual suspects I'd expect from a modern terminal emulator.
The one feature I miss since moving to Linux and not having iTerm2 is tmux -CC integration. None of those offer it.
To be clear, I'm not attempting to be dismissive. I really want to understand what it is that they bring.
For me: it doesn't really "bring" anything more than what I expect from a terminal.
In Mac, we had the default terminal app which has some problems with TUI apps and other small issues. iTerm2 is the replacement that most users use, but it become too bloated with useless features and AI, while it was hard to keep a good config file that I could share between devices. Ghostty was a sane mid-term for me: a good and modern terminal, with a simple config file, maintained by someone that I trust (Mitchell Hashimoto) and only that.
About Linux: I don't use Ghostty in Linux because I'm comfortable with Konsole.
1) Personal preferences: different terminals come with different defaults, some people do not want to tinker with the settings, so they just stick with whatever immediately clicks.
2) Technical curiosity: some people probably started their own terminal project just for the fuck of having made their own - and they eventually gained a userbase.
3) Feature set: Most terminals implement most features these days, but at the time these projects started, you'd have a feature matrix between features and terminals because most terminals lacked some features; so people would pick whatever suited their needs.
Personally I've been using kitty for years mostly due to 3), at the time I chose my forever terminal, I evaluated like 12 different ones, and kitty was the only one that covered most of my needs without feeling like it suffers from random quirks, and I like that it has built-in terminal multiplexer (a'la tmux) and emoji picker.
A couple of annoyances I've had shipping CLI apps to Konsole users:
1. By default, Konsole disables OSC8 link support. Users can enable it manually, but you need to ship fallbacks by default since otherwise the default users will have a broken experience. Ghostty, Kitty, WezTerm, etc all ship working OSC8 support out of the box.
2. No built-in Nerd Font support, so if you want to render icons, you need to tell your users to set up a patched font or else have fallbacks. Ghostty and WezTerm ship built-in Nerd Font fallbacks if your configured font isn't patched.
That being said Konsole is much better than most emulators. iTerm2 is not bad, although it lacks Symbols for Legacy Computing Unicode support (which all of the above have, including Konsole, and which is very useful for drawing prettier terminal UIs). The worst by far is Apple Terminal, truly the IE6 of terminal emulators.
> By default, Konsole disables OSC8 link support.
That is, in my opinion, the correct default.
I believe that the default behavior should be to never open a link without a confirmation from the user that this may be done.
This should be enough to avoid malicious links. I do not believe that completely disabling links is a good default, because they are very frequently useful when you read some text file in the terminal window.
There's always gonna be something that's better, faster, bigger, badder, stronger, thicker, firmer, etc., and terminals really aren't one of those things where I am interested in exhaustively testing all of them to find the truly greatest one. A terminal is also one of those things where if you find one that is perfectly adequate then there's little motivation to even bother using trying one. And there's the whole "devil you know" aspect. The only reason I rarely try a different terminal is if the stock terminal on whatever OS I'm using lacks some basic niceties that should be expected in the year 2026.
I like Ghostty because I find it both fast and configurable, and it's multi-platform without treating macOS like the red headed step child. I also appreciate how its configuration is text-based, which I prefer to someone's opinion of how a configuration GUI should behave, and I think it's good the developers aren't wasting a second of their time thinking about a configuration GUI.
Funny, I won’t use a term emulator unless it has a good GUI config. Even SGI and Windows Command prompt had them in the 90s.
Also the konsole context menu and default toolbar are a mess.
I also thought like that, but you only to set some defaults and you're ready to go. If you still prefer a GUI there are online generators. Nowdays you can also vibecode them, they are very simple and any LLM will do it right
The terminal ecosystem needs to change, and these terminals support a lot of cool features. Ghostty's pure reusable terminal state machine being a source of truth, Kitty graphics, Wezterm and its mux domains & lua config, lots of cool ideas there.
Having having an industry player like hashimoto's superlogical driving terminal features is the extreme version of that
> Ghostty's pure reusable terminal state machine being a source of truth
Can you please explain what this means? I have Ghostty installed just as a backup to use when I have terminal saturation in my default (MacOS Terminal). But other than being super responsive, I don’t know why people love it so. Perhaps I’m missing something large and compelling.
I assume the quote is referring to libghostty. In which case a lot of different tools like vs code, Emacs, Gvim, Intellij and other IDEs, even web consoles on stuff like Azure essentially use and reimplement the same core, the idea behind libghostty is to replace those with a common component where long term development can better support the needs of all terminals.
In terms of ghostty itself its just a highly competent use of libghostty, Mitchell’s message above about it being a tech demo is tongue and cheek, but its not far off from the truth. It is just a really solid no bells and whistles, bar excellent execution, terminal emulator that uses libghostty.
Terminal state machine parsing is a very tricky thing, especially when you have people defining arbitrary protocols to interact with it. So having one implementation simplifies the development a lot. Of course this buys you into their ecosystem and whatever ghostty specifically supports etc.
A lot of other terminal emulators can expose similar reusable things (alacritty comes to mind) but libghostty is the most well supported one
I know for many folks they like the fact that it is cross platform (works on mac/linux) etc and gpu acceleration which is really nice to have.
I have been using Alacritty for its GPU acceleration long ago. Ghostty was slightly faster, but then Ptyxis was also faster. Since I preferred to configure my terminal with GUI, I have switched to Ptyxis.
Yeah, I recently tried out Kitty and Ghostty just feels much smoother when rendering most TUIs and even some more basic stuff like the homebrew progress bar. It is also better about respecting platform conventions for things like keybinds and window/tab behavior.
I assume that this depends on your computer/GPU/GPU driver.
I have used Konsole for many years and I have used kitty for about 2 years in 2024/2025, then I have switched to ghostty around the beginning of 2026.
At least in my computers (with NVIDIA GPUs and Gentoo Linux), kitty was many times faster than Konsole and Ghostty even faster.
Moreover, in the now somewhat distant past when I was still using Konsole, it did not have some font rendering features that I desired, but that might have been solved meanwhile.
A reason why the terminal emulator speed is important for me is that I frequently compile big software projects and I find it unacceptable for a compilation to be slowed down by the low speed at which the compiler output is displayed on the terminal window, which happened frequently with all terminal emulators older than kitty and ghostty (I have always used CPUs with enough cores so that compilation itself is very fast, so the older terminal emulators become the bottleneck).
I don't think Konsole is actually faster than Kitty or Alacritty. Kitty is really nice and an innovator in a lot of terminal standards. It's also non-commercial and not related to any sort of startup (not that Konsole is either). It's definitely my first choice of the bunch, followed by Alacritty.
I use Linux at home and Mac at work. I use Ghostty simply to have the same terminal on both systems.
Kitty is really nice, a programmable terminal that does everything I want, GPU rendering, etc. Haven't used Ghostty yet but one of its advantages is libghostty, modern terminal emulation as a library.
> libghostty: a cross-platform, minimal dependency library that exposes a C API so feature-rich, correct, and fast terminal functionality can be embedded by any application anywhere.
Oh the author actually posted about it just now in rich detail. It's pretty exciting for people who spend much of their time in the terminal.
For me it's simply that iTerm2 got really fat over the years, and Ghostty was a nice and slim alternative - plus it has one of the better Kitty Graphics Protocol implementations which is fun to tinker with. e.g.: https://github.com/floooh/chipz-kitty (needs zig-0.17.0).
> chipz-kitty: Emulators in terminal experiment.
Cool! How fun, I'm a big fan of your work and will enjoy learning from this project too. (:
It works well, that’s my only requirement. I could ask you the same, what’s the point of Konsole, what value does it bring?
You could, but my answer would probably skew your opinion about as much as yours did mine. :D
To me the point of Konsole is that it works well, plus it's already there. Ghostty I need to make an effort to have it, however small it is, and I'm just trying to understand what I'd be missing if I didn't.
> Konsole is way faster than any of those on my computer and it has all the usual suspects I'd expect from a modern terminal emulator.
Same boat here, though I also get to enjoy some of the benefits of libghostty, via ghostel in Emacs. Ghostel is noticeably faster when there's a lot of output being dumped, but I don't often need the speed and use it only because it's integrated rather well into the rest of my Emacs.
> tmux -CC integration
If you can stomach Emacs, there are at least two packages that implement this, one via eat and another via vterm, though none via ghostel just yet. Shouldn't be difficult to port, though.
For me, the main reason to use Ghostty is simply that mouse support works right out of the box. In Konsole clicking a spot to move the cursor only works if you're using Bash. While it also works with the Fish Shell on Ghostty.
I don't know Konsole, but kitty have tons of features other "plain" terminals lack. It's not just about speed (which I never got the obsession about either)
The other day I was able to click on Ghostty, then open Gnome Terminal, type a command and run it before Ghostty had finished loading.
Yeah. It's slow on Linux, for sure. I use Foot, which as far as I've tested is the fastest to launch. I use Niri and launch Foot terminals all the time as part of my workflow (it's just how my mind works), so time to launch matters to me.
Monstar is a libghostty derivative that resembles foot: https://github.com/rockorager/monstar
Namely it is wayland only, cpu rendered, and doesn't have any window decorations
for terminals I personally am using kitty, but libghostty is great and powers ghostel in emacs which is amazing. Also note if you start trying to look at unicode correctness, in my experience ghostty is in general the best among all alternatives.
The advertised point is it needs zero config to work outside of the box. For example nerd fonts are included by default whereas you need to install them if you are using let’s say iterm2.
The point for me is each one can have ten or so claudes, so any one crashing doesn't take down all the claudes ... and I don't have to learn tmux.
Can konsole do the fancy shader and inline images? I think that's all that distinguishes the others but I may be overlooking things.
I have no idea what that is or why I would want it.
I'm not sure why you want shaders, but if you use a coding agent in the terminal you definitely want image support. Otherwise it's very hard to see what the agent is seeing.
vouch this comment since this is a pretty common question people have, I don't believe it should be dead.
I do believe it should be dead
Konsole is not gpu accelerated and is several orders of magnitude slower as a result than those that you listed?
The acceleration is the primary point.
I was sceptical for decades as well. But they are amazing - no more closing the xterm by mistake. I'm using those because I wanted for example a single window with THREE consoles open at once AND being able to handle some ANSI crazy theming.
Xterm failed me :( Tabby just works.
Ghostty is so much better than iTerm2! Don't get me started...
I'd love to, I switched back to iTerm after not really feeling any big difference in my uses cases, but also hating the crappy plain text with no defaults listed config that required me to use a goddamn web app to comfortably learn and fill out.
There was also some pretty noticeable differences in character rendering between the two with identical-as-I-could-make-them font settings.
> here was also some pretty noticeable differences in character rendering between the two with identical-as-I-could-make-them font settings. I'm pretty sure it was iTerm's problem.
I've tested a number of Terminal Emulators on macOS and Ghostty's rendering is always superior.
You should give 1.4 a try.
It just works. — Steve Jobs
Ref: https://arne.me/blog/we-need-more-zero-config-tools
Yeah except when it doesn't. I shouldn't need to reference documentation to change my terminal font.
Honestly, iTerm's settings were always a mess in my opinion.
I feel like good tools should be invisible and Ghostty's lack of fully fledged Settings app is a feature, not a bug.
Just open it in Kakoune/NeoVim and change with a speed of thoughts. Never used any third-party Settings apps though.
Ref: https://news.ycombinator.com/item?id=48858121
Change with a speed of thought
Yeah, except the default config file doesn't EXIST and there is nothing but the reference docs to tell you what the hell you're supposed to put in there. What am I supposed to do, guess? Is it `font=` or `font-family` or `font-name`? That's fucking terrible. The very existence of a website like this: https://ghostty.zerebos.com proves the failure in my opinion.
Good tools should be invisible. Good tools behave the way I want them to. That's different than the way you want them to behave. Or appear. Good defaults are good. That is absolutely no excuse to abandon good UX for configurability.
I'm happy the defaults work for you. They don't for me.
And don't get me wrong, ghostty is a fine terminal and I don't begrudge it, and I think libghostty is awesome, it's just not the application for me.
cute little mascots
Man, still does not fix the one bug I care about: being able to quickly `⌘+F, ⌘+V` - the find textbox does not respect keyboard shortcuts: https://github.com/ghostty-org/ghostty/discussions/11159
The update experience in Ghostty is great. I think it takes under 5 seconds from the moment you click accept update and until the new updated terminal is running.
I loved Ghostty for thr first month I tried it, but got some strange behavior when SSHing into some machines. Sounds like this release may address that. Maybe I can finally ditch iTerm2, lol
Very likely due to ghostty setting TERM to xterm-ghostty and your destination not recognizing it. Quick temp fix is using the wrapper (ghostty +ssh), see <https://ghostty.org/docs/features/ssh>. More permanently, copy terminfo to the remote machine, see <https://ghostty.org/docs/features/ssh>.
You can also just add this to your SSH config to get the typical functionality working:
It’s rude to install a terminfo on a remote machine (which you may not be the owner of). It’s a preposterous for a terminal emulator to install things on a remote machine just to make it work.
If you want to use in a terminal emulator features that do not exist in any xterm variant and the remote computer does know only xterm, there is no way to do that without installing data into the terminfo database.
Otherwise, there is no need to install anything, you should just set the environment variable TERM in the remote computer to one of the xterm variants and then modern terminal emulators like kitty or ghostty will still work fine, but of course only as long as you use the xterm-compatible subset of their features.
It's actually the remote machine that isn't working, but I get the frustration. What I did to fix this is to override the environment variables in your SSH config like this:
Host * SetEnv TERM=xterm-256color
My experience with terminals was like this - Alacritty -> Ghostty -> tty7. The last one implements exactly what I had in mind when I used Alacritty and Ghostty. Only it doesn't hype much (the author apparently doesn't strive for that much), maybe that's for the better.
I'm still using Wezterm here due to its Windows support, and I like being able to share one configuration my company Windows and my personal Linux laptops.
I've come to like its hyperlink rules to automatically generated clickable links to Reviews/Issues/Requirements/Linter Errors/... so I haven't felt the need to switch yet to have this feature missing.
I'm eying Kitty though.
I tried Ghostty, but went to Kitty in the end.
Ghostty is so great. I am very thankful to Mitchell for dedicating so much of his time to making a terminal that is truly great. Finally, somebody really cares and has the technical abilities to materialize that care as great software.
Also, ghostel in Emacs is fantastic as well (of course in a big part thanks to libghostty) — most of my work has now shifted into Emacs as a result.
Glad for an update. It’s unfortunately still missing table-stakes features for people who use primarily keyboard driven workflows. I guess I’ll stick with wezterm for another year.
> Building Ghostty from source is not recommended for most users.
Why is that? It reminds me of the XFree86 times when building from source was some unstable, fancy thing that was severely frowned upon.
Probably something to do with Zig. Zig changes so quickly that if you're not using exactly the compiler that they are using, it's unlikely to work.
At this point, I'm really looking forward to Rex.
I've been a laggard in switching to Ghostty because I used WezTerm and wrote a plugin to customize it to my liking. I switched to Ghostty just because I got tired of nothing happening in the WezTerm land and wanted to try something different.
Rex will allow me to use my old workflow again.
I think if you had Claude Fable build a lightweight terminal like Ghostty, you'd get a good one.
I have quite enjoyed using the kitty image protocol in interesting ways.
I made a Claude code skill telling it to put a little image in the corner of the console when it does a render to see how something looks. It was quite fun telling it to draw a chicken with 5 SVG D paths and watching it iterate in the terminal.
Kitty is so awesome. I'm writing (well, as much as anyone writes) a MUD that models a decent part of Tokyo at 30-60fps over SSH at reasonable resolution (that's the dream, at least). I'm shocked at how fast I can render a big complex 3d environment, in the terminal.
Any source/screenshots?
Libghostty is a masterpiece dude. So easy to embed, nice bindings, and it's so fast.
Love Ghostty!
Escape codes are the new html for browsers now called terminal emulators. What a wonderful time to be alive, but very suspicious also :D
> Escape codes are the new html for browsers now called terminal emulators.
Not really and that isn't a good thing in the long run.
There should not be any more complexity in a terminal emulator that will just lead attackers to craft RCEs exploits to your terminal to steal your secrets on your computer just because "Its cool" and has hundreds of escape codes.
I have replaced Ghostty with Rex from Superlogical, it's great and I really like the iOS app too.
Been a convert for a while it's so snappy
Very excited for this feature
Now if I could only upgrade it without powering down my current Ghostty
tmux, baby!
Hmm I wss checking for updates last night actually. I really hope they dont start adding llm junk to ghostty. I really like it, but mitchel sounded like he got bit by the llm bug a few months back.
Its honestly perfect as it is, just nerd performance tweaks imo.
I'm sure mitchellh will check out this comment section at some point - any updates on the move away from Github? I don't really see anything that's changed, but maybe it's behind the scenes. I was pretty excited on your initial post about it but it's been a while.
Sure enough, one minute later he posted a comment lol
Wrote a VT parser once, bracketed paste edge cases ate a whole week. Respect.