I switched from iTerm2 because at the time (possibly still), iTerm2 had a performance bug where large amounts of underlined text would cause the terminal to slow down noticeably. Wezterm works perfectly, and I appreciate the .lua configuration over iTerm2's mess of menus.
When I tried Wezterm last year, you couldn't select more than 3-5 lines of text. I went to fix the 'bug', I found that it was intentional because it allocates a string and copies multiple times every time you click and drag.
Even if that's fixed, that design put me off the terminal forever.
Been using/abusing wezterm for years, my scrollback is set to 1000000 and text selection has never been a problem... copy mode however does make it even easier
It’s been posted many times, I think mostly due to it’s association to Mitchell Hashimoto. It’s left as an exercise the reader to determine why this is important.
on my machine, noticeable. I seriously tried it, but went back because I could notice a small end-end latency, between keypress and action. But I'm also 240hz user.
Where are you measuring the keypress from? The nerve signal to your finger muscles?> Or the time the keycap hits bottom? What if the switch closes before the cap hits bottom: then we are getting a latency figure that looks better than it really is.
I've had a keyboard like that and with it, xterm (and nothing else) felt like it was displaying the characters even slightly before I had pressed them. It was a weird sensation (but good)
Nerve signals yes. I just try them side by side, usually running vim on both terminals and measuring how it feels. If you can feel difference, the latency is bad.
I have been using computers and terminal for a long time, and this kind of comment makes me think I must have missed a whole bunch of things which can be done with a terminal
Since people are mentioning latency I’ll mention throughput. Basically the idea is that you accidentally cat a large file to your terminal and we are measuring how much time it takes for the terminal to finish displaying it. This test generally favors GPU-accelerated terminals.
Ghostty performs very well on this regard, among the same league as Alacritty and Ptyxis.
Rather, what will win is a terminal that internally builds an efficient, symbolic representation of what is on the display, rather than a pixel representation with all the font glyph, and which efficiently sychronizes that symbolic representation to the graphical canvas, skipping intermediate updates when the abstract display is changing too fast.
That’s already happening I think. Newer terminals redraw at a fixed rate equal to the display refresh rate, usually 60Hz. But if there are more than 60 new characters being printed per second, some of these intermediate states are never rendered on screen.
Have you tried kitty with more aggressive settings? It feels very responsive out of the box, but the defaults are balanced for sane energy use on portable machines.
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)
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).
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
Servers throwing "missing or unsuitable terminal" even when the connecting terminal is available and very suitable. And this is just because they hardcode xterm as the "standard".
I definitely have had to poke at things a bit, even where they "should" work. I use salt in my homelab and eventually got the xterm-ghostty.terminfo file and I put it in my baseline salt config, then you run 'tic -x xterm-ghostty.terminfo'.
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.
Same here. I have a Ghostty often open but end up using iTerm2 for pretty much everything. It's not just having to hack the TERM (which I ended up doing), it's that sometimes something about the TERM internally breaks anyway and I'm back to seeing ESC codes when I press an arrow. Quit & restart fixes it but it's just enough friction to keep me away.
> 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.
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.
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
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.
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.
It might be a bug in remote handling and I might have unfairly called out GhostTTY for this, but "forgetting to update terminfo on my remote system" just doesn't hold with the way I work.
I work managing different systems for different clients and often login to systems for the first time. The servers aren't mine, and configuring something like Ansible to configure my home just seems like a waste of time for little benefit. It means that generally I end up using systems that are likely to be already instead - Bash not zsh, Perl, basic vim without any bindings. It might sound special but I'm sure I'm far from the only person working this way.
So given this, I'd always prefer a terminal that doesn't require me to change remote servers. In this particular case I can modify $TERM in my local .zshrc and it works fine so it's a moot point, but if I had to modify the remote system it would be a no go.
If you have to configure the host to support the client rather than the client supporting unknown existing hosts, then what you have is a terminal, not a terminal emulator.
In 1970 all terminals were their own thing, tied to a single host somewhere in the same building by a dedicated serial cable. The terminal didn't move or connect to random other hosts, and the host had to be specially configured to work with any terminal connected to it.
Since then, a few terminal definitions have become standardized across all hosts for decades, and terminals are emulators that emulate one of those 40 year established standard definitions, because today terminals connect to countless unknown new random and varied hosts that the terminal user didn't install and configure before connecting, and may not even have the admin rights to do so after the fact either, and even if they do, it's wildly and inexcusably awful to require that.
It's entirely backwards for a terminal today to default to asserting it's own new $TERM, and to characterize the problems caused by this as "the user forgot to do this totally unreasonable thing" that no other terminal or terminal emulator has required for 40 years.
It's 100% a bug. The fact that it's intentional just means it's a design goal bug.
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.
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.
I used to use the iTerm programmable notification bell which would ring when a particular output was printed in the terminal. Don't think I can do that in Ghostty
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.
Very glad for that--it's what made me stop my evaluation the first time around. I looked for the feature in issues and just saw #9821 about memory use of the buffer which could be an issue if configuring very large scrollback as I do.
BTW is there feature parity between macOS and Linux, e.g. scrollback buffer searching on Linux?
there's scrollback search in the nightly build if that's an option for you (I've been using it a ton for a few months and haven't seen any bugs so far):
Scrollback does exist on Ghostty! But you need to switch to “tip”. This can be done in the config file.
The tip build is very stable and has many bugs fixed (like various memory leaks).
Personally kitty is the only one I keep coming back too. Mostly because it's very customisable, fast, lean, ligatures, separate font for italics, great macro support, and supports automatic tiling panes.
I wouldn't say I love tmux, but I have a configuration file that I put on every computer I use regularly that is very comfortable for me. I basically live in the terminal across many different machines, and having the same interface for managing panes and tabs even when using ssh is invaluable.
I also use vim (well neovim) as my primary editor, and have set up tmux to integrate well with it, so that might contribute to my appreciation and continued usage of it.
Yep, I've been using tmux for almost 10 years. Its config has followed me across every terminal I've used in Windows with WSL 2, macOS (work laptop) and native Linux. It's a nice abstraction over getting split panes, windows (tabs), sessions, search, scroll back, consistent key binds and the overall theme to work the same across environments.
If you spend any amount of time on remote machines with unreliable connections, local tmux is insta-reject because tmux inside tmux is very inconvenient. As with GP, it's also why I don't consider terminal emulators without tabs at all.
I hold Control and double-tap b for managing the remote session, then everything else is the same.
Granted, I'm not a power user, so there may be numbers that get frustrating. I could imagine complex splits getting confusing (I don't use splits at all).
C-b is less ergonomic than C-a that is the default on GNU screen. The first thing in tmux is to remap to C-a. (Triply so if you remap caps lock to ctrl.)
Maybe worth another look at then? I'm far from a Kitty power user, but it does pretty much everything else I want it to, including working as a quake-style terminal[0]. And you can extend it with kittens[1] if you so desire. Also, the next release should presumably include smooth scrolling[2] which I'm quite looking forward to.
Maybe more than any one feature though, I appreciate the hard work that Kovid (the creator of Kitty) has done to tastefully add new VT standards and try to make terminals as useful as they can be in the 21st century.
Kitty is the best one. It has several features which have proven so useful I wasn't able to stay on anything else for more than a couple of hours (including the one this topic is about).
Ctrl+Shift+G wraps the output of the previous command into a pager (say, less). You often only know you needed a pager after that output is printed.
Ctrl+Shift+E highlights all links on the current screen and assigns short alphanumeric codes to them, so you can open links without using the mouse. For example, `Ctrl+Shift+E 1` opens the first link, `.. 2` the second one, etc.
Ctrl+Shift+U opens symbol search where you can find & insert symbols using their unicode names. Emoji, TUI blocks, rare accented characters you need once in a blue moon, CJK ideographs, whatever.
I'm not the GP, but I do remember why I rejected Kitty when I tried several terminal emulators last years: it broke quite a few of my workflows.
For instance, in vim the F3 key was broken[^1]. It was very surprising and weird, and a portable workaround required some arcane vim configuration.
Another important pain point was that the font rendering was different in Kitty to any other app, and very dependent on the screen DPI. IIRC, for a DPI around 100, I had to switch to "legacy rendering" because the default rendering was barely readable.
I also remember issues with SSH. And Kitty crashed at least once. And I wasn't a fan of Kitty's mix of C and Python. After a week or two of usage, my Kitty config file was big, with an extra hundred lines of Python for the tabbar. Despite some nice features (like the shortcut to put the output of the last command into a file), I got uneasy with all this mess. I tried Ghostty, which was as good as Kitty with much less oddities.
Kitty is great, but its author has very strong opinions, strongly held; this keeps a number of popular requests summarily rejected. In particular, there is no way to color plain bold text, which is possible in basically any other emulator. This is a deal-breaker for me personally, it makes reading e.g. man pages unnecessarily hard.
I haven't seen anyone else mention Terminology yet. It uses an unconventional GUI framework (Enlightenment / EFL), but that aside, it's fast and has more or less all of the features you'd expect of a terminal:
Back in 2018 I thought it felt kind of sluggish and consumed quite a bit of resources, but looked pretty. Have they improved on performance since then?
Are you sure you're thinking of the same terminal? Its standout feature has been performance. Granted, that was 10+ years ago, but I've never noticed it regressing.
I like tmux because it does more than tabs in an emulator. I can detach from a session on a remote host to leave a process running after I disconnect, or to pick the session back up on another PC.
I do use tabs rather than repeatedly switching tmux sessions, but I do end up running tmux for splitting the GUI into side by side layouts.
Detaching is working just fine with `screen` as well.
I like the idea of tmux but as another poster suggested, I prefer to just get better at my
window manager to achieve similar results. tmux requires way too many key presses for me.
You can search scroll back on Ghostty nightly. I switched straight from iTerm2 (after 20 years of iTerm), but _do_ remember the reason I rejected Kitty: it has a ton of Python in it, which is usually indicative of software which is going to be a pain in the ass.
> 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.
Tabs usually mean mouse+click to switch which takes way more effort that a simple alt+number or similar keybinding used to switch "tabs" in tmux. I'd guess that some terminal emulator tabs allow keybindings to switch tabs as well but, modelling OP, I'm focusing on the expected default experience.
No, zero mouse usage, you can both address each tab by number and just moving between them. I wouldn't have any terminal emulator without the latter feature at least, and all I've tried support it.
Note in Ghostty 1.3 we disable discretionary ligatures (I think dlig/calt) by default as recommended by font standards. We still enable liga though that usually contains far less controversial ligatures.
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.
Now that Ghostty is part of a real org, is there any way people can sponsor specific features/bugfixes? I've been waiting for drag/drop to be working on KDE before I make the switch, and I'd be happy to pay for a fix.
Thanks for all the work you do! I had used terminal just a few dozen times before November — and now i am in terminal more than any app (even more than the web browser).
It’s common for me to have 15-25 different terminal windows open for using Claude code. I shifted to Ghostty because I was looking for more features.
Unfortunately, none of the features I wanted are available anywhere (though I’ve come to appreciate Ghostty anyway). Here’s what I had wanted:
1. Basic text editing features (ie click to place cursor in the text input field; highlight to delete)
2. Change colors or fonts mid session (to make it easier to find particular windows)
3. Window management and search (eg, a way to find my windows when I lose them and to otherwise control them)
Apparently, it is really hard to develop features like these for terminal emulators. I’d love to understand why…
IMO this isn’t the job of the emulator. You can do this all in `tmux` for example.
As for editing text, ghostty+tmux most definitely supports editing text with the mouse (even an in terminal right click menu!) although sounds like your intended use of select to delete isn’t common so you’ll need to do some customizations.
I’ve been using scroll back search for 15+ years with Terminal.app and iTerm2, and there’s no way that’s not the job of the terminal. You don’t know how good that is until you use it.
What makes you say that isn't the job the emulator? Sure it is. In fact, tmux itself is a terminal emulator that you just so happen to run inside of another terminal emulator that you want to multiplex.
The next release includes a way to use a command palette to search for and jump between surfaces (windows, panes), which sounds like it partially addresses your third point. I had a small hand in it, by building the initial UI for the Linux version.
What has it been like witnessing terminal emulators make such a huge comeback with the advent of Claude Code et. all? I remember comments here in the early days of Ghostty along the lines of "Why is he working on a terminal emulator? We need people working on future problems, not the past!" Pretty funny considering I regularly hear people say they are in the terminal more than the browser now. Crazy times!
Wait, really? So I’ve used the terminal for everything for decades, and now, because of vibe coding, all The Kids have joined me? I don’t even know how to feel about that. Better terminals are nice though.
Right? It’s been kind of funny watching everyone “rediscover” the terminal and I’m over here feeling like a true graybeard “silly kids, I’ve been here the whole time.”
What’s old is new again is apparently just as true in tech as it is in fashion.
It's because the web developers who destroyed the web are now taking their mess with them into more obscure places, such as terminals, hardware and AI.
That's probably why it is so hyped up as it is right now.
If you told me 3 years ago that terminal usage would _increase_ I would've laughed. Beyond that, I'm now having regular conversations with the frontier agentic coding companies (since they're far and away the largest terminal users at the moment) and if you had told me 2 years ago that that would be happening because of a terminal, I would've laughed even harder.
/* Claude Code is the strongest case of the return to the mainframe: a closed, bespoke, paid service that nothing locally run compares to. Terminals are just a natural part of the mainframe world! */
Hi Mitchell, thanks for creating Ghostty. Been part of my workflow ever since I found it. Just a small question, when do you see Ghostty can fully replicate iTerm2 popular features like output copy/selection?
Random advice question. My brother taught himself to program and has been making a terminal-based game. What started out small has turned into a highly polished game with ascii art, sound, you name it.
I’ve been trying to figure out how I could actually help him distribute it and I keep coming back to the best option being to wrap his programs terminal output into a host process that can emulate and render it. It seems that the lib Ghostty might be perfect for the former, but not quite yet on the latter?
Having incorporated libghostty into my current web-based project, I can't say enough thanks. I've lived in the terminal since 2003, resisting IDEs, VSCode, everything because I'm a die hard Vim + tmux guy. Vibe coding coming back to the terminal, and being able to use libghostty to facilitate that is a serious vindication of my steadfast resistance to move away from the terminal.
I'm sure you feel the same watching Ghostty become what it has. Big thank you.
Coincidentally I was just listening to your interview with The Pragmatic Engineer [1] this morning. Loved hearing the stories of early days at HashiCorp, taking it public, and the near-miss with VMware.
It also got me wondering how things would be different if you haven't crossed paths with the guy who unplugged your mouse :) It's fascinating how life is full of these small yet defining moments. We don't always appreciate them right away, but beautiful to look back.
Thanks for Ghostty! It has been my daily terminal driver for the past year.
I was also just recommended this interview on youtube. honestly it makes sense if the algo decided it was the right time to recommend this video and resultantly this post is making it's way to front page of HN
I subscribe to the channel, so I had already downloaded the episode. But glad PE is getting some algorithm-love; it's a great channel/podcast. Gergely is a great interviewer.
I just wanted to say "thank you". I switched to Ghostty over a year ago and it's been working out great. It's now my default terminal. My favorite features are responsiveness and ease of splitting panes.
I literally discovered Ghostty yesterday when googling "best terminal macos" and surfaced a ~year-old reddit thread recommending it [0]. Just needed something other than Terminal so I could Cmd-Tab between distinct command-line work (e.g. claude code and ipython tabs). Was nice to find something that just worked
> On Linux, the quick terminal is only supported on Wayland and not X11, and only on Wayland compositors that support the wlr-layer-shell-v1 protocol. In practice, this means that only GNOME users would not be able to use this feature.
What's it been like managing a fairly large project with Zig? I know you've spoken highly of the language in the past, but recently it seems like Zig has been through some substantial changes that would be relevant to a terminal emulator. I'm curious how painful the churn has been for project maintainers.
It's been extremely good. I should really blog about it in more detail because I do get asked this question regularly. It's been very good.
The large language changes are a burden, but it's something I knew going into it. And so far in every case, it's been well worth it. For example, 0.15 introduced the std.Io.Writer overhaul, but I really love the new API. I haven't started the std.Io change yet for 0.16. We'll see. And honestly, LLMs make this all way less painful... even though they're not trained on it, agents are able to run builds, reference docs, and work their way through the upgrade with huge success.
I thought that finding contributors would be an issue, but it hasn't at all. There's a lot of people out there eager to use Zig, the language isn't hard to learn (as long as you're already familiar with systems concepts), etc. It has been good.
I'll think about more to say if I write about this more but overall, I'm very happy with the language, the community, and the leadership. All good.
That's super interesting to hear. I see people say all the time "oh I would never use it in a big project because it's changing so fast", but then see awesome projects like Ghostty and Tiger Beatle written in it, so clearly they're doing something right.
I'm surprised to hear LLMs have been helpful. What little I tried to use them for with Zig, all the information was way too out of date. But I was mainly just doing research, not running an agent at the time, so that's probably why.
Many thanks for everything. Without Ghostty I wouldn't have been able to create https://github.com/rcarmo/webterm and have a decent browser-based terminal that works the way I expect it to.
mitchellh: What is the current thinking WRT adding client/server functionality (like built-in tmux+mosh)? I recall you talking about it on the Changelog podcast, and that would be a killer feature for me; I really make a lot of use of the wezterm equivalent, it's so nice having first-class UI windows rather than tmux's faking of it.
Excited to see the further development of libghostty! It is an exciting project in this new world of being able to develop your own agentic development environments rather effortlessly. These things are possible because of projects like yours. Thank you!
I use Ghostty as my main TUI at work and absolutely love it. Most of my day lives in terminals, and Ghostty just feels fast, clean, and out of the way in the best possible sense.
I was a long-time Kitty user, but switching to Ghostty has been a big upgrade for my workflow. Hard to go back now. Thank you
I started using it a few days ago and then I need to find something in the terminal. But....there is no find! Why? Can you guys add it? This is such a basic and critical feature that I may have to just go back to...just about anything else.
Hey Mitchell, thanks for ghostty (happy user here for a month or two). Is there anywhere I can look to see the status of the next planned release?
I've been waiting for the vim feature to hit stable, and have just been checking to see if there's a new release every so often, but I couldn't find a discussion or anything to see when it was planned.
Is there any chance of a stable release that fixes the memory leak issue? I know I could run nightly but for something I spend all day every day using I'd much rather run a stable version.
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.
What features related to distrobox? I use both ptyxis and distrobox and I don’t notice any integration between them. I do notice an integration between ptyxis and sudo however. It simply turns the title bar red.
> Ptyxis: Your Container-Oriented Terminal for GNOME
> A modern terminal emulator built for the container era.
Seamlessly navigate between your host system and local containers like Podman,
Toolbox, and Distrobox with intelligent detection and a beautiful, responsive
GNOME interface.
I love Ghostty, especially the UI is so much nicer than Kitty. However, for some reason ghostty sometimes has severe issues with dealing with SSH connections. The terminal is like broken and wrongly displayed and you can't properly type something. Therefore, I still use Kitty, especially for SSH connections. I don't know what `kitten ssh` does, but it makes my terminal work with SSH.
This is what kills it for me. Half the time I'm using a terminal I'm sshing and the fact that I need to copy over term-info on virtually every machine keeps me from using it more often. Even copying term-info doesn't always fix it. From what I've read it's not entirely ghostty's fault but as a user it's frustrating.
No I haven't seen that before. I used to just run the terminfo tic command that's recommended in the top searches and when that started failing I just swapped back to default terminal for SSH
He probably refers to the fact that Ghostty aims to use the native window decorations etc.. So for example on Ubuntu it uses gtk, on mac the native macOS tab bar etc. Same goes for the scrollbar and search window.
Big one are the tabs. Kitty has tabs, but rendered in the text rows, so it's missing features that the native OS tabs provide (drag and drop, easy to move around and split into windows...)
Same. On the tip of main, at least, I can open the command palette and choose reset to bring it back to life. I set a keybinding for reset to skip the command palette.
Ghostty's terminfo entry doesn't enable 24-bit color*, and as far as I can tell they don't provide a "ghostty-direct" entry that does. It just seemed odd that it's completely supported and working, yet not easily enabled. Maybe I just missed a trick, and didn't need to make a custom terminfo entry myself?
* "msgcat --color=test" is an easy test that shows the blending of 24-bit color, or blocky gradients otherwise.
just installed ghostty, looks cool. but my honest question is how it is significantly better than iterm2 to justify such a switch? I am aware of the fact that it is faster, uses less memory, various configurations is more straight forward. but is that all?
I have the feeling that I must be missing something big here.
Same. As far as I can tell, Ghostty is still in active development and unfinished. For regular use iTerm 2 is a complete product that can be relied upon.
I’ve been using iTerm2 for years. I’ve tried ghostty a few times and quickly went back to iterm each time for various reasons I can’t immediately recall. There is nothing I can think of lacking from iterm.
That said; if I was working more on Linux or Windows where iterm doesn’t exist it looks like ghostty would be a good option.
When Ghostty was publicly announced, I used it for a few months and gave up on it due to the lack of support for the CMD+F feature that I use Terminal.app. This is a critical feature for me while tailing logs on my local. I tried the workaround of capturing the text into a text file and then searching it. It just didn't work for my workflow and dropped it. Ghostty is great otherwise. But, without the CMD+F, it's of no use to me.
> 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.
It’s a shame that version 1.2.x got abandoned and didn’t receive any important bug fixes. That has severely cut my trust into this project. It’s been over 4 months since the last 1.2.3 release, so the memory leak when using Claude is not addressed, my Ghostty crashes are not addressed (crash reporter doesn’t work), I don’t even bother looking at the issues anymore, as I know I am not getting the fixes for a long time.
And I’m not running a critical piece of productivity software on a nightlies channel!
I'm not doubting your personal experience, but I find the crashes you mentioned surprising; I have never once, since v1.0.1, had Ghostty crash. Tbf I use it with tmux, so I'm not exercising some of its capabilities. But with tmux, I have at any given time 5-7 sessions, each with 2-5 windows, some with panes.
Datapoint: I’m running nightly now because the latest 1.2 release has a known crash-on-wake bug when disconnecting an external monitor. Accordingly the issue tracker it was fixed months ago, but it’s not in a release. The nightly is stable though.
Didn’t realize how may projects use libghostty, will try cmux one of these days.
On the new mac tahoe with rounded corners (which are really frustrating to me), ghostty should add small margin on the bottom, because the font is sometimes renedered on it and letters are cut (rarely but infuriating, when it happens)
I have a terminal manager project[0] I'm currently using xterm for, but very curious to try libghostty. Have mainly been hesitant because it hasn't been promoted from an internal ghostty dependency (only awareness of the place was from this article by the creator[1]), but from the sounds of it here people are finding it stable enough. Gonna give it a whirl today.
When I had 3 or more panes open one of them would freeze and be not recoverable without quitting the app. That's a deal killer when I'm trying to run 2 or 3 agents.
Curious to hear some more recommendations, I settled on using lxterminal which works well enough. I couldn't get wezterm to recognize fonts on ALpine no matter what I did, kitty doesn't support tabs and ghosttty sounds like it has issues with ssh connections? I feel like I tried most at some point but if anyone has suggestions for a tabbed terminal emulator nicer than lxterminal, ideally with transparency, I'd love to hear them.
As a counterpoint to Ghostty ssh. I have literally never had an issue and I manage a large cluster of boxes that run everything from centos 7 to rocky 10. All from ghostty on a Mac.
My only issue with ghostty is it isn’t immediately recognized by some programs through ssh (eg less) and they don’t operate properly. However there’s a one liner that solves the problem permanently on the remote machine[0] so it isn’t too bad. Hopefully in the near future ghostty’s terminfo will be shipped with common linux distros.
Tried Ghostty several times and I really appreciate the font rendering, but I keep going back to iTerm2 and Terminal.app mostly because of lack of scroll back & CMD-F, etc. Looking forward to what is coming in the next release.
Ghostty is extremely performant. I had a bug in some concurrent software; when I added logging the bug would disappear because the threads acquiring the lock on STDERR was sufficient to make the bug go away. On Ghostty this happened fast enough that I was able to reproduce the bug.
Maybe I should have been writing everything to a file. ¯\_(ツ)_/¯ Anyway, I didn’t think of it at the time and Ghostty saved me.
Unfortunately scrolling in terminal apps via mouse wheel seems to be broken (on release and main branch), which is currently a blocker for me. Hope this will be fixed soon.
I've been following this before it was made public and I'm a big Zig fan so I would definitely switch to this, but I've tried and failed many times. Currently it just keeps crashing multiple times (on three different machines) each day on my mac and the quick terminal doesn't support full screen mode (it still shows the menu bar). I could live with the menu bar showing, but because of the constant crashing I'll wait for a bit and check back in a few months.
The fetishization of tools is one of the things that mark a dilettante mindset.
You see it on all hobbies, e.g. when the someone sees a photograph and their first question is about what camera and optics were used. No question about composition, light, the moment, creativity... they only care for the tools.
The technique and knowledge is the important thing, not the tools. They forget the good practitioner can do a great photo with a $200 phone than they with the best Canon DSLR.
I have seen this in all hobbies I have practiced, be it musical instruments, kolinsky brushes on miniature painting, montain bikers, running apparell...
As I'm getting older I care less about editors, terminals, Linux distros... and after seeing what can be done with agentic coding tools less so.
I don't feel like this is a fair argument because different tools help different workflows. Since there is always a continuous growth of new people learning new things, it would make sense that tools change over time. Especially in a realm that is digital, not physical.
FWIW once I found my workflow (vim + tmux) I stopped caring so much about chasing "new" tools. Now have the luxury to wait 3-5 years and see what's worth adopting, most of it isn't only because I already found a workflow that works for me; but if you're new or still finding what works best, you'll always be experimenting.
Yes, and one of my favorite anecdotes like this: at one of the greatest jazz concert ever recorded, Charlie Parker played a cheap plastic saxophone because he hadn't brought his own.
This is a very weird take. For people who spend their entire day in the terminal, having the right terminal is incredibly important. Like saying track athletes shouldn't spend money on running shoes if they own a pair of slippers.
I have no idea why I am responding to someone who flippantly uses a phrase like "dilittante mindset", but here we go
there is definitely a tendency for noobs and amateurs in any hobby or industry to obsess over expensive gear and things that don't matter (I love the term "buyhard" for it). you're out of your mind if you think the professionals in literally any industry do not discuss the specific technical tradeoffs of tools they are using among themselves.
When art critics get together they talk about Form and Structure and Meaning. When artists get together they talk about where you can buy cheap turpentine.
Feature request: renaming tabs! Helps keep tabs organized instead of 20 tabs with similar names. (See Zed for example)
Also! I'm considering Ghostty web (https://github.com/coder/ghostty-web) for my project Ink Web. It's awesome that Ghostty can work in the browser to replace xterm.js.
I can't find an alternative to Terminator, being able to drag and drop panels to create layouts is such a strong workflow that it's very hard to give up
I did give Ghostty a try, the turn off was Adwaita, the tablet UI for the tabs and context menu.. i just can't
Ghostty is fast and feels native, but WezTerm occupies a different niche: it's a terminal you program rather than configure.
The Lua config isn't just "dynamic" in the abstract sense. I built a tmuxinator-style workspace manager that spawns project-specific layouts - named tabs, splits, working directories, startup commands - from a fuzzy launcher. Session state auto-saves every 10 minutes with timestamped snapshots and crash recovery. Theme toggling between dark and light mode triggers a system-wide theme switch script. These are runtime behaviors, not static settings - try doing any of that in TOML.
The built-in multiplexer is the other major differentiator. Splits, directional navigation, pane zoom, pane selection with alphabet overlays, moving panes between tabs or windows, all without a tmux prefix key. It's not just "WezTerm has splits too, it's that the interaction model is fundamentally more fluid when there's no mode switching.
WezTerm isn't trying to be the fastest terminal. It's trying to be the most programmable one, and for people who want their terminal to work as a development environment rather than a PTY renderer, that tradeoff is worth it.
Loving how well Ghostty works and looks.
When running several Projects I need quite a few tabs as all these AI agents take sometime to complete. Overhead tabs get real messy very quickly. Multiple windows become a nightmare quickly. Side bar tabs have been my solution.
I love iTerms sidebar tabs - I add emojis to mine for my key projects and any subtask just lives under the master tab like a folder.
Would love to see sidebar tabs - or it sounds like I can code my own.
Ghostty is awesome, ill echo the sentiment regarding lack of IPC/scripting API being my current hold back. Sticking with kitty til then. I still keep the ghostty binary on hand so I can +boo :^)
for libghostty consumers, favorite i've tried so far is neurosnap/zmx.
In my experience it actually is. I went through multiple terminals and they all had issues for me (missing key remapping functionality, slowness, not working across platforms, UI ugly...), but Ghostty is solving most of these.
I've only ever stuck with urxvt and more recently foot since moving to Wayland. On Mac the default terminal works for me, though I've been using Ghostty to follow a trend, but I seriously don't understand the benefits netted to me? (other than the cool icon)
michaelsbradley | 8 hours ago
For me, Kitty still has the edge:
https://sw.kovidgoyal.net/kitty/
WezTerm is also a strong contender:
https://wezterm.org/
anta40 | 7 hours ago
pkage | 7 hours ago
hn92726819 | 6 hours ago
Even if that's fixed, that design put me off the terminal forever.
gertburger | 5 hours ago
mkl | an hour ago
dbgrman | 7 hours ago
selfawareMammal | 7 hours ago
dewey | 7 hours ago
loloquwowndueo | 7 hours ago
https://xkcd.com/1053/
mberning | 7 hours ago
ray_v | 7 hours ago
baby | 7 hours ago
lomlobon | 7 hours ago
0sdi | 7 hours ago
kazinator | 3 hours ago
jstimpfle | 2 hours ago
0sdi | 2 hours ago
ivanjermakov | 7 hours ago
More benchmarks from 4 months ago: https://news.ycombinator.com/item?id=45253927
14 months old discussion of input latency in Ghostty with comments from the author: https://github.com/ghostty-org/ghostty/discussions/4837
TehCorwiz | 4 hours ago
jstimpfle | 2 hours ago
forty | 6 hours ago
kccqzy | 5 hours ago
Ghostty performs very well on this regard, among the same league as Alacritty and Ptyxis.
kazinator | 3 hours ago
kccqzy | an hour ago
homebrewer | 5 hours ago
baby | 7 hours ago
dwedge | 7 hours ago
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)
1f60c | 7 hours ago
ubercow13 | 7 hours ago
dwedge | 7 hours ago
Daviey | 6 hours ago
dwedge | 5 hours ago
nout | 37 minutes ago
hijinks | 7 hours ago
host * SetEnv TERM=xterm-256color
frereubu | 5 hours ago
FireBeyond | 3 hours ago
heftig | 7 hours ago
paxys | 7 hours ago
Jare | 5 hours ago
mitchellh | 7 hours ago
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.
dwedge | 7 hours ago
znpy | 6 hours ago
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.
jcgl | 6 hours ago
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.
computerfriend | 5 hours ago
dagi3d | 5 hours ago
NoboruWataya | 6 hours ago
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.
dwedge | 5 hours ago
DiabloD3 | 6 hours ago
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.
dwedge | 6 hours ago
I work managing different systems for different clients and often login to systems for the first time. The servers aren't mine, and configuring something like Ansible to configure my home just seems like a waste of time for little benefit. It means that generally I end up using systems that are likely to be already instead - Bash not zsh, Perl, basic vim without any bindings. It might sound special but I'm sure I'm far from the only person working this way.
So given this, I'd always prefer a terminal that doesn't require me to change remote servers. In this particular case I can modify $TERM in my local .zshrc and it works fine so it's a moot point, but if I had to modify the remote system it would be a no go.
arccy | 5 hours ago
dwedge | 5 hours ago
DiabloD3 | 5 hours ago
Any distro older than this does not include Ghostty by default.
Alacritty was added in the Feb 2020 release, as well as Kitty. Wezterm was added in the April 2024 release.
Brian_K_White | 3 hours ago
In 1970 all terminals were their own thing, tied to a single host somewhere in the same building by a dedicated serial cable. The terminal didn't move or connect to random other hosts, and the host had to be specially configured to work with any terminal connected to it.
Since then, a few terminal definitions have become standardized across all hosts for decades, and terminals are emulators that emulate one of those 40 year established standard definitions, because today terminals connect to countless unknown new random and varied hosts that the terminal user didn't install and configure before connecting, and may not even have the admin rights to do so after the fact either, and even if they do, it's wildly and inexcusably awful to require that.
It's entirely backwards for a terminal today to default to asserting it's own new $TERM, and to characterize the problems caused by this as "the user forgot to do this totally unreasonable thing" that no other terminal or terminal emulator has required for 40 years.
It's 100% a bug. The fact that it's intentional just means it's a design goal bug.
pants2 | 7 hours ago
msikora | an hour ago
saberience | 7 hours ago
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.
reader9274 | 4 hours ago
onionisafruit | 7 hours ago
pdimitar | 7 hours ago
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.
leetrout | 6 hours ago
pdimitar | 6 hours ago
davidkunz | 6 hours ago
karmakaze | 6 hours ago
BTW is there feature parity between macOS and Linux, e.g. scrollback buffer searching on Linux?
macmccann | 6 hours ago
https://github.com/ghostty-org/ghostty/releases/tag/tip
CoderJoshDK | 6 hours ago
PolCPP | 3 hours ago
weinzierl | an hour ago
intothemild | 6 hours ago
Crisco | 6 hours ago
I also use vim (well neovim) as my primary editor, and have set up tmux to integrate well with it, so that might contribute to my appreciation and continued usage of it.
nickjj | 5 hours ago
homebrewer | 5 hours ago
yjftsjthsd-h | 4 hours ago
Hitting c-b c-b isn't that inconvenient?
NateEag | 3 hours ago
I hold Control and double-tap b for managing the remote session, then everything else is the same.
Granted, I'm not a power user, so there may be numbers that get frustrating. I could imagine complex splits getting confusing (I don't use splits at all).
nine_k | 2 hours ago
binsquare | 2 hours ago
jcgl | 6 hours ago
Maybe worth another look at then? I'm far from a Kitty power user, but it does pretty much everything else I want it to, including working as a quake-style terminal[0]. And you can extend it with kittens[1] if you so desire. Also, the next release should presumably include smooth scrolling[2] which I'm quite looking forward to.
Maybe more than any one feature though, I appreciate the hard work that Kovid (the creator of Kitty) has done to tastefully add new VT standards and try to make terminals as useful as they can be in the 21st century.
[0] https://sw.kovidgoyal.net/kitty/kittens/quick-access-termina...
[1] https://sw.kovidgoyal.net/kitty/kittens_intro/
[2] https://github.com/kovidgoyal/kitty/pull/9330
homebrewer | 5 hours ago
Ctrl+Shift+G wraps the output of the previous command into a pager (say, less). You often only know you needed a pager after that output is printed.
Ctrl+Shift+E highlights all links on the current screen and assigns short alphanumeric codes to them, so you can open links without using the mouse. For example, `Ctrl+Shift+E 1` opens the first link, `.. 2` the second one, etc.
Ctrl+Shift+U opens symbol search where you can find & insert symbols using their unicode names. Emoji, TUI blocks, rare accented characters you need once in a blue moon, CJK ideographs, whatever.
tcoff91 | 4 hours ago
idoubtit | 4 hours ago
For instance, in vim the F3 key was broken[^1]. It was very surprising and weird, and a portable workaround required some arcane vim configuration.
Another important pain point was that the font rendering was different in Kitty to any other app, and very dependent on the screen DPI. IIRC, for a DPI around 100, I had to switch to "legacy rendering" because the default rendering was barely readable.
I also remember issues with SSH. And Kitty crashed at least once. And I wasn't a fan of Kitty's mix of C and Python. After a week or two of usage, my Kitty config file was big, with an extra hundred lines of Python for the tabbar. Despite some nice features (like the shortcut to put the output of the last command into a file), I got uneasy with all this mess. I tried Ghostty, which was as good as Kitty with much less oddities.
[^1]: https://github.com/vim/vim/issues/13328
nine_k | 2 hours ago
WezTerm is a very good replacement.
mbrumlow | 31 minutes ago
So true. To the point I have to maintain my own fork to make the command key my meta
dbdr | 6 hours ago
Another option is to leave the tabbing to your window manager.
pdimitar | 4 hours ago
loeg | 5 hours ago
https://github.com/borisfaure/terminology
Its "moment" as a new novel terminal was over a decade ago, but it still chugs on working just fine. Notably(?), gregkh uses it (or used to use it):
https://www.linuxfoundation.org/blog/blog/greg-kroah-hartman...
cess11 | 5 hours ago
loeg | 27 minutes ago
everforward | 5 hours ago
I do use tabs rather than repeatedly switching tmux sessions, but I do end up running tmux for splitting the GUI into side by side layouts.
pdimitar | 4 hours ago
I like the idea of tmux but as another poster suggested, I prefer to just get better at my window manager to achieve similar results. tmux requires way too many key presses for me.
pkulak | 5 hours ago
But you do have to run a proper window manager so you don’t have to require tab support in every single app. ;)
jen20 | 3 hours ago
eikenberry | 3 hours ago
Tabs usually mean mouse+click to switch which takes way more effort that a simple alt+number or similar keybinding used to switch "tabs" in tmux. I'd guess that some terminal emulator tabs allow keybindings to switch tabs as well but, modelling OP, I'm focusing on the expected default experience.
pdimitar | 3 hours ago
I hate mixed mouse + keyboard workflows as well.
conception | 2 hours ago
goodpoint | an hour ago
https://github.com/kovidgoyal/kitty/issues/2084
kombine | 6 hours ago
bArray | 6 hours ago
mitchellh | 6 hours ago
sideeffffect | 5 hours ago
https://github.com/0xType/0xProto#4-ligatures-that-dont-defo...
I can't recommend 0xProto enough, the only thing I'm sorry about is that I didn't find it sooner :)
michaelcampbell | 4 hours ago
mitchellh | 6 hours ago
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.
nvme0n1p1 | 6 hours ago
oDot | 5 hours ago
It was so easy to get the terminal functionality going with `libghostty`. Most time was spent building the functionality around it.
Thanks for making it.
[0]: https://github.com/weedonandscott/trolley
dr_dshiv | 5 hours ago
It’s common for me to have 15-25 different terminal windows open for using Claude code. I shifted to Ghostty because I was looking for more features.
Unfortunately, none of the features I wanted are available anywhere (though I’ve come to appreciate Ghostty anyway). Here’s what I had wanted:
1. Basic text editing features (ie click to place cursor in the text input field; highlight to delete)
2. Change colors or fonts mid session (to make it easier to find particular windows)
3. Window management and search (eg, a way to find my windows when I lose them and to otherwise control them)
Apparently, it is really hard to develop features like these for terminal emulators. I’d love to understand why…
stonegray | 5 hours ago
As for editing text, ghostty+tmux most definitely supports editing text with the mouse (even an in terminal right click menu!) although sounds like your intended use of select to delete isn’t common so you’ll need to do some customizations.
yearolinuxdsktp | 5 hours ago
dr_dshiv | 4 hours ago
stevenhuang | 2 hours ago
yeison | an hour ago
jcgl | 5 hours ago
nevon | 5 hours ago
harr01 | 3 hours ago
WD-42 | 5 hours ago
What has it been like witnessing terminal emulators make such a huge comeback with the advent of Claude Code et. all? I remember comments here in the early days of Ghostty along the lines of "Why is he working on a terminal emulator? We need people working on future problems, not the past!" Pretty funny considering I regularly hear people say they are in the terminal more than the browser now. Crazy times!
txdv | 5 hours ago
pkulak | 5 hours ago
thewebguyd | 4 hours ago
What’s old is new again is apparently just as true in tech as it is in fashion.
rvz | 2 hours ago
That's probably why it is so hyped up as it is right now.
james_marks | an hour ago
pizza | an hour ago
lovecg | 3 hours ago
robinwhg | 5 hours ago
mitchellh | 4 hours ago
If you told me 3 years ago that terminal usage would _increase_ I would've laughed. Beyond that, I'm now having regular conversations with the frontier agentic coding companies (since they're far and away the largest terminal users at the moment) and if you had told me 2 years ago that that would be happening because of a terminal, I would've laughed even harder.
So, it's amazing. But overall, its amusing.
nine_k | 2 hours ago
linhns | 5 hours ago
hesdeadjim | 5 hours ago
I’ve been trying to figure out how I could actually help him distribute it and I keep coming back to the best option being to wrap his programs terminal output into a host process that can emulate and render it. It seems that the lib Ghostty might be perfect for the former, but not quite yet on the latter?
bewuethr | 2 hours ago
HorizonXP | 5 hours ago
I'm sure you feel the same watching Ghostty become what it has. Big thank you.
guiambros | 5 hours ago
It also got me wondering how things would be different if you haven't crossed paths with the guy who unplugged your mouse :) It's fascinating how life is full of these small yet defining moments. We don't always appreciate them right away, but beautiful to look back.
Thanks for Ghostty! It has been my daily terminal driver for the past year.
[1] https://www.youtube.com/watch?v=WjckELpzLOU
wpasc | 4 hours ago
guiambros | 4 hours ago
https://www.pragmaticengineer.com/
scosman | 4 hours ago
rdtsc | 4 hours ago
danso | 4 hours ago
[0] https://www.reddit.com/r/macapps/comments/1loiw2z/comment/n0...
fragmede | 3 hours ago
piperswe | 3 hours ago
seertaak | 3 hours ago
Out of curiosity, does ghostty do the Quake terminal thing - I use yakuake for this, but it feels a bit long in the tooth.
rkrzr | 2 hours ago
This works on MacOS, and on Linux sometimes:
> On Linux, the quick terminal is only supported on Wayland and not X11, and only on Wayland compositors that support the wlr-layer-shell-v1 protocol. In practice, this means that only GNOME users would not be able to use this feature.
veqq | 3 hours ago
Nice! Looks like I should have rushed the interview. :D
scuff3d | 3 hours ago
mitchellh | 58 minutes ago
The large language changes are a burden, but it's something I knew going into it. And so far in every case, it's been well worth it. For example, 0.15 introduced the std.Io.Writer overhaul, but I really love the new API. I haven't started the std.Io change yet for 0.16. We'll see. And honestly, LLMs make this all way less painful... even though they're not trained on it, agents are able to run builds, reference docs, and work their way through the upgrade with huge success.
I thought that finding contributors would be an issue, but it hasn't at all. There's a lot of people out there eager to use Zig, the language isn't hard to learn (as long as you're already familiar with systems concepts), etc. It has been good.
I'll think about more to say if I write about this more but overall, I'm very happy with the language, the community, and the leadership. All good.
scuff3d | 6 minutes ago
I'm surprised to hear LLMs have been helpful. What little I tried to use them for with Zig, all the information was way too out of date. But I was mainly just doing research, not running an agent at the time, so that's probably why.
fragmede | 3 hours ago
Big fan. Can I get a ride on your jet?
rcarmo | 3 hours ago
linsomniac | 3 hours ago
makeramen | 2 hours ago
Tabs (and panes? I haven't tried yet) should work fine for regular terminal windows though.
nicoritschel | an hour ago
Also, Zellij is nice.
makeramen | an hour ago
adrum | an hour ago
blorenz | 2 hours ago
foobarincaps | an hour ago
I was a long-time Kitty user, but switching to Ghostty has been a big upgrade for my workflow. Hard to go back now. Thank you
msikora | an hour ago
james_marks | an hour ago
jfaulken | 48 minutes ago
This is addressed in paragraph 5 of the post they replied to.
mijoharas | an hour ago
I've been waiting for the vim feature to hit stable, and have just been checking to see if there's a new release every so often, but I couldn't find a discussion or anything to see when it was planned.
fartfeatures | 29 minutes ago
mitchellh | 29 minutes ago
s_ting765 | 6 hours ago
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.
kccqzy | 5 hours ago
s_ting765 | 5 hours ago
> A modern terminal emulator built for the container era. Seamlessly navigate between your host system and local containers like Podman, Toolbox, and Distrobox with intelligent detection and a beautiful, responsive GNOME interface.
https://gitlab.gnome.org/chergert/ptyxis/-/blob/main/README....
bilinguliar | 6 hours ago
quantummagic | 5 hours ago
Myzel394 | 5 hours ago
icedrift | 5 hours ago
fragmede | 3 hours ago
bewuethr | 2 hours ago
icedrift | an hour ago
tasuki | 5 hours ago
What are you talking about? What UI does Kitty have?
ghosty141 | 4 hours ago
I really like this a lot.
nout | 42 minutes ago
landtuna | 2 hours ago
tux1968 | 5 hours ago
* "msgcat --color=test" is an easy test that shows the blending of 24-bit color, or blocky gradients otherwise.
tw1984 | 5 hours ago
I have the feeling that I must be missing something big here.
deanputney | 4 hours ago
allthetime | 3 hours ago
That said; if I was working more on Linux or Windows where iterm doesn’t exist it looks like ghostty would be a good option.
thallavajhula | 5 hours ago
retlehs | 4 hours ago
https://github.com/ghostty-org/ghostty/issues/189
https://x.com/mitchellh/status/1993728538344906978
As Mitchell stated above:
> 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.
yearolinuxdsktp | 5 hours ago
And I’m not running a critical piece of productivity software on a nightlies channel!
sgarland | 4 hours ago
hectormalot | 3 hours ago
Didn’t realize how may projects use libghostty, will try cmux one of these days.
whalesalad | 5 hours ago
p0w3n3d | 5 hours ago
gtirloni | 4 hours ago
pbjerkeseth | 5 hours ago
[0]: https://github.com/ouijit/ouijit [1]: https://mitchellh.com/writing/libghostty-is-coming
gigatexal | 5 hours ago
operatingthetan | 3 hours ago
gigatexal | 2 hours ago
operatingthetan | 2 hours ago
JCattheATM | 4 hours ago
TehCorwiz | 4 hours ago
rs_rs_rs_rs_rs | an hour ago
am17an | 4 hours ago
signorovitch | 4 hours ago
[0] https://ghostty.org/docs/help/terminfo
dmix | an hour ago
eoskx | 4 hours ago
big-chungus4 | 4 hours ago
mkl | an hour ago
jbrooks84 | 3 hours ago
ashton314 | 37 minutes ago
Maybe I should have been writing everything to a file. ¯\_(ツ)_/¯ Anyway, I didn’t think of it at the time and Ghostty saved me.
Acur | 3 hours ago
Unfortunately scrolling in terminal apps via mouse wheel seems to be broken (on release and main branch), which is currently a blocker for me. Hope this will be fixed soon.
lukaslalinsky | 3 hours ago
veqq | 3 hours ago
wateralien | 3 hours ago
vermon | 3 hours ago
yomismoaqui | 3 hours ago
You see it on all hobbies, e.g. when the someone sees a photograph and their first question is about what camera and optics were used. No question about composition, light, the moment, creativity... they only care for the tools.
The technique and knowledge is the important thing, not the tools. They forget the good practitioner can do a great photo with a $200 phone than they with the best Canon DSLR.
I have seen this in all hobbies I have practiced, be it musical instruments, kolinsky brushes on miniature painting, montain bikers, running apparell...
As I'm getting older I care less about editors, terminals, Linux distros... and after seeing what can be done with agentic coding tools less so.
shimman | 3 hours ago
FWIW once I found my workflow (vim + tmux) I stopped caring so much about chasing "new" tools. Now have the luxury to wait 3-5 years and see what's worth adopting, most of it isn't only because I already found a workflow that works for me; but if you're new or still finding what works best, you'll always be experimenting.
kachnuv_ocasek | 3 hours ago
cafebeen | 3 hours ago
https://jazzfuel.com/charlie-parker-the-plastic-saxophone-th...
drcongo | 2 hours ago
n42 | 2 hours ago
there is definitely a tendency for noobs and amateurs in any hobby or industry to obsess over expensive gear and things that don't matter (I love the term "buyhard" for it). you're out of your mind if you think the professionals in literally any industry do not discuss the specific technical tradeoffs of tools they are using among themselves.
mkoubaa | 2 hours ago
leephillips | an hour ago
-- Pablo Picasso
jasondigitized | 41 minutes ago
thoughtfulchris | 3 hours ago
Also! I'm considering Ghostty web (https://github.com/coder/ghostty-web) for my project Ink Web. It's awesome that Ghostty can work in the browser to replace xterm.js.
https://github.com/cjroth/ink-web/pull/1
Project: https://www.ink-web.dev/
WhereIsTheTruth | 2 hours ago
I did give Ghostty a try, the turn off was Adwaita, the tablet UI for the tabs and context menu.. i just can't
submeta | 2 hours ago
The Lua config isn't just "dynamic" in the abstract sense. I built a tmuxinator-style workspace manager that spawns project-specific layouts - named tabs, splits, working directories, startup commands - from a fuzzy launcher. Session state auto-saves every 10 minutes with timestamped snapshots and crash recovery. Theme toggling between dark and light mode triggers a system-wide theme switch script. These are runtime behaviors, not static settings - try doing any of that in TOML.
The built-in multiplexer is the other major differentiator. Splits, directional navigation, pane zoom, pane selection with alphabet overlays, moving panes between tabs or windows, all without a tmux prefix key. It's not just "WezTerm has splits too, it's that the interaction model is fundamentally more fluid when there's no mode switching.
WezTerm isn't trying to be the fastest terminal. It's trying to be the most programmable one, and for people who want their terminal to work as a development environment rather than a PTY renderer, that tradeoff is worth it.
sponno | 2 hours ago
I love iTerms sidebar tabs - I add emojis to mine for my key projects and any subtask just lives under the master tab like a folder.
Would love to see sidebar tabs - or it sounds like I can code my own.
MajorBee | 2 hours ago
I hope they prioritize scriptability soon. It's quite important to my personal git worktree ergonomics.
ionwake | 2 hours ago
No complaints been happy using it for my claude swarms for about a month
cwel | 2 hours ago
for libghostty consumers, favorite i've tried so far is neurosnap/zmx.
dang | 2 hours ago
AI Usage Policy - https://news.ycombinator.com/item?id=46730504 - Jan 2026 (273 comments)
Finding and fixing Ghostty's largest memory leak - https://news.ycombinator.com/item?id=46568794 - Jan 2026 (138 comments)
Why users cannot create Issues directly - https://news.ycombinator.com/item?id=46460319 - Jan 2026 (310 comments)
Ghostty is now non-profit - https://news.ycombinator.com/item?id=46138238 - Dec 2025 (289 comments)
Ghostty compiled to WASM with xterm.js API compatibility - https://news.ycombinator.com/item?id=46110842 - Dec 2025 (115 comments)
Vibing a non-trivial Ghostty feature - https://news.ycombinator.com/item?id=45549434 - Oct 2025 (147 comments)
Ghostty 1.2.0 - https://news.ycombinator.com/item?id=45252026 - Sept 2025 (26 comments)
AI tooling must be disclosed for contributions - https://news.ycombinator.com/item?id=44976568 - Aug 2025 (464 comments)
We rewrote the Ghostty GTK application - https://news.ycombinator.com/item?id=44905808 - Aug 2025 (224 comments)
Release Notes for Ghostty 1.1.0 - https://news.ycombinator.com/item?id=42884930 - Jan 2025 (79 comments)
Déjà vu: Ghostly CVEs in my terminal title - https://news.ycombinator.com/item?id=42562743 - Dec 2024 (55 comments)
Ghostty: Reflecting on Reaching 1.0 - https://news.ycombinator.com/item?id=42527355 - Dec 2024 (7 comments)
Ghostty 1.0 - https://news.ycombinator.com/item?id=42517447 - Dec 2024 (681 comments)
Ghostty 1.0 Is Coming - https://news.ycombinator.com/item?id=41914025 - Oct 2024 (32 comments)
Newuser6923 | an hour ago
mastabadtomm | an hour ago
nout | 31 minutes ago
jfkimmes | an hour ago
Here's what I landed on: This config tries to emulate as much of tmux with native ghostty features (splits and tabs).
https://codeberg.org/jfkimmes/dotfiles/src/branch/master/gho...
orsorna | 10 minutes ago