Hacker News new | past | comments | ask | show | jobs | submit

Ghostty – Terminal Emulator

https://ghostty.org/docs
I'm the original creator of Ghostty. It's been a few years now! I don't know why this is on the front page of HN again but let me give some meaningful updates across the board.

First, libghostty is _way more exciting_ nowadays. It is already backing more than a dozen terminal projects that are free and commercial: https://github.com/Uzaaft/awesome-libghostty I think this is the real future of Ghostty and I've said this since my first public talk on Ghostty in 2023: the real goal is a diverse ecosystem of terminal emulators that aim to solve specific terminal usage but all based on a shared, stable, feature-rich, high performant core. It's happening! More details what libghostty is here: https://mitchellh.com/writing/libghostty-is-coming

I suspect by the middle of 2027, the number of people using Ghostty via libghostty will dwarf the number of users that actually use the Ghostty GUI. This is a win on all sides, because more libghostty usage leads to more stable Ghostty GUI too (since Ghostty itself is... of course... a libghostty consumer). We've already had many bugs fixed sourced by libghostty embedders.

On the GUI front Ghostty the apps are still getting lots of new features and are highly used. Ghostty the macOS app gets around one million downloads per week (I have no data on Linux because I don't produce builds). I'm sure a lot of that is automated but it's still a big number. I have no telemetry in Ghostty to give more detailed notes. I have some data from big 3rd party TUI apps with telemetry that show Ghostty as their biggest user base but that is skewed towards people consuming newer TUIs tend to use newer terminals. The point is: lots of people use it, its proven in the real world, and we're continuing to improve it big time.

Ghostty 1.3 is around the corner, literally a week or two away, and will bring some critically important features like search (cmd+f), scrollbars, and dozens more. In addition to GUI features it ships some big improvements to VT functionality, as always.

Organizationally, Ghostty is now backed by a non-profit organization: https://mitchellh.com/writing/ghostty-non-profit And just this past week we signed our first 4 contributor contracts to pay contributors real money! Our finances are all completely public and transparent online. This is to show the commitment I have to making Ghostty non-commercial and non-reliant on me (the second part over time).

That's a 10,000 foot overview of what's going on. Exciting times in Ghostty land. :) Happy to answer any big questions.

loading story #47208153
loading story #47207988
loading story #47207990
loading story #47207539
loading story #47207548
Recently tried multiple terminals because I am gradually migrating off of Macs and I liked Ghostty but the lack of searching the scrollback has turned me away from it. Opening another editor to do the same I tried but didn't like.

WezTerm has everything I need and is closest to iTerm2, minus being able to quit it and have it restore all windows and tabs on restart -- but oh well, it's not an important enough feature. It also renders my prompt perfectly; no small pixel divergences like all other terminals have.

Kitty I don't remember why I rejected.

Alacritty I like but the lack of tabs is not acceptable for the moment... and before you ask: I hate tmux. So much more key presses to achieve basic functionality, it boggles my mind why people love it. But, to each their own obviously.

It's also likely I'll settle for some Linux-exclusive terminal but as I'm not yet possessing a Linux workstation (just a laptop) I haven't put the requisite time to do this research.

Suggestions are welcome.

loading story #47207574
loading story #47208056
loading story #47207568
loading story #47207506
loading story #47207498
loading story #47207922
loading story #47207517
loading story #47207471
loading story #47210190
loading story #47208122
loading story #47209562
loading story #47208294
I like the look of this terminal, but it doesn't work correctly with SSH (top, ncdu for example) unless you hack the $TERM variable. It feels a bit vibecoded even though it isn't.

To give a little productive criticism, one thing I really miss is when having tiled terminals, I want to be able to full screen one of them temporarily. Double click in iterm allows this, so does mod+f in i3wm. It really is the only thing stopping me from switching to this (and I admit it might be buried somewhere in the settings)

> To give a little productive criticism, one thing I really miss is when having tiled terminals, I want to be able to full screen one of them temporarily.

I think you're looking for the `toggle_split_zoom` binding which has existed since Ghostty 1.0 and is default bound to `cmd+shift+enter` on macOS which is the same binding as iTerm. It's also visible in the menu and command palette.

We recently added a kind of split title bar, making it double click to zoom is a good idea. I'll add an issue for that to the roadmap.

I could have sworn I checked every menu option but it is there, thank you
also, from not that long time ago, you can change the focus of panes and you can tell it to respect the zoom state if you want, which is super convenient
Can I take advantage of you being here and express some desiderata?

1. The quick terminal feature is ghostty's killer feature for me, I switched to ghostty because of it. Could we make it first-class feature? Like, i'd love to have tabs over there too (like in guake/yakuake).

2. I have a white on black theme (white text on black background) but when i split vertically/horizontally, the borders between one shell and the next are not really visible and I have an hard time resizing them... Can you do something about it? Setting the colors of borders would be an okay fix for me.

2. I think split-divider-color does what you want.
> The quick terminal feature is ghostty's killer feature for me

Just FYI, it's in Kitty nowadays too: https://sw.kovidgoyal.net/kitty/kittens/quick-access-termina.... The quick-access terminal is a regular terminal, so you get normal tabs, splits, etc. there.

Using its own TERM is a deliberate design decision. I don't remember how to fix the terminal database, but it's pretty easy (your favorite search engine or LLM should be able to help you there).
Or the manual, which describes the features for automatically handling it.
If I install a terminal and SSH doesn't work from it out of the box, I would describe that as a bug and wonder if I need to read the full manual to not fall foul of other gotchas
It is a bug.. But not with Ghostty...
loading story #47208570
{"deleted":true,"id":47207427,"parent":47207327,"time":1772377989,"type":"comment"}
i had to do this for ssh

host * SetEnv TERM=xterm-256color

I wish TERM would contain a list of terminal types in decreasing order of specificity, like 'ghostty:xterm-256color', so a system that doesn't know what ghostty is would fall back to xterm-256color, but that ship has sailed long ago.
I don't know enough about these things to know why, but I have pretty much always had to hack $TERM to get things working smoothly with any remotely featureful terminal emulator. I have occasionally needed similar hacks for Kitty and urxvt, for example (though top and ncdu seem to work fine).

The way terminal applications handle different terminal emulators on Linux just seems to be a bit broken. I don't think it's a particular indictment of Ghostty or any one emulator.

I have tried every possible setting but SSH ends up breaking more often than not. As opposed to iTerm which just works.
loading story #47208440
It sounds like you simply forgot to update your terminfo on your remote system.

You must do this if your chosen terminal requires settings that are not compatible with "xterm-256color".

Alacritty, kitty, and wezterm also require this, as they implement features that xterm doesn't (and most likely never will), if your terminfo DB is too old to already include them.

Using Alacritty as an example, you'd take a file that looks like this, https://github.com/alacritty/alacritty/blob/master/extra/ala... , and run `tic -x -o "~/.terminfo" "that.info"` on it.

Its been this way for like 30 years, and it'll never change.

loading story #47207894
loading story #47210530
For anyone using this terminal that hates != (and others) being turned into a single character, I have the following to turn off ligatures:

    font-feature = -dlig
    font-feature = -liga
    font-feature = -calt
This can be updated in `$HOME/.config/ghostty/config`.
loading story #47207526
loading story #47209945
loading story #47208835
loading story #47209547
How's the latency? I've had to keep using xterm even though it kind of sucks just because it's got the lowest latency by quite a bit.
loading story #47208107
loading story #47207375
loading story #47207515
loading story #47207328
loading story #47210153
loading story #47209914
loading story #47208510
loading story #47209574
loading story #47209078
loading story #47210129
loading story #47208712
i hope they implement something that can be used with tmux -CC mode.
loading story #47208165
loading story #47209230
loading story #47209236
loading story #47209250
loading story #47209294
I expected this to point to the 1.3.0 release since it’s expected in March. Hopefully we get that soon.
If there wasn't kitty I'd definitely be using Ghostty, but I have no reason to switch.
I tried this out after getting annoyed for the 100th time by a recent bug in kgx/console that will occasionally fail to launch windows leaving incomplete windows as tabs.

Console has long since become abandonware pushing people towards ptyxis which is now the default gnome terminal. A damn shame considering console is basically complete software (the quality of software in gnome is on a downhill).

I would have given ptyxis a chance if they didn't take a basic terminal and added some fluff (features related to distrobox) on top of other annoying things I can't be bothered to remember about because I ended up removing the software every time I gave it a spin.

In just a few days I've been able to replace console with ghostty-nightly and I don't miss anything.

loading story #47208117
loading story #47208777
The minimum-contrast feature is great, to help in those times when some color combination would have been unreadable otherwise.
loading story #47209760
Why is it in the main page? It's a super well-known project no?
loading story #47207008
loading story #47207247
loading story #47207142
loading story #47207145
I like how snappy Ghostty is. I do not like how it starts lagging after a few alt-tabs to Chrome and back on Linux.
I enjoy it, and it’s great to have another modern high performance terminal as an option for macOS and Linux.

For me, Kitty still has the edge:

https://sw.kovidgoyal.net/kitty/

WezTerm is also a strong contender:

https://wezterm.org/

loading story #47207504
loading story #47206950
loading story #47208450
loading story #47209743
loading story #47208406
loading story #47210254
I use it but have people trier cmux?
loading story #47209089
loading story #47208539
It's a nice terminal but it cannot be configured to the same level as iTerm, e.g. in terms of colors, look and feel, how the menus work, how the tabs work, etc.

Also, in practice, I find it hard to detect any performance difference between iTerm and Ghostty even though I know in theory that Ghostty is more performant...

So for now I go with iTerm because I prefer the UI.

loading story #47208189
loading story #47208312
loading story #47208176
loading story #47209767
Ghostty calls itself "feature rich" but only added cmd+F / find functionality a few months ago. Makes me wonder what other basic functions it's missing.