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!
What’s old is new again is apparently just as true in tech as it is in fashion.
That's probably why it is so hyped up as it is right now.
Websites used to be below 100KiB - now they come with MEGABYTES of obfuscated JS.. wtf
Though obviously, it's not the individual developer to blame but the incentive system.
I laugh every time I see someone on HN asserting that the web "shouldn't" be used for anything beyond "documents and lightly interactive content", which is not uncomment. There's some real old-man-yelling-at-clouds energy there.
All of those people are now the vibe coders of the 20s, and it's going to end up in the same dumpster fire of 'Who knew it might be a good idea to cryptographically sign and control library packages in a public repository?'
* Note: I'm distinguishing things going sideways despite best intentions and careful planning from YOLO + 'Oops, how could that possibly have happened?' shit
The UI paradigm created by the emacs transient package [1] can improve the discoverability of CLI commands significantly. It's one of the components of magit, the famous git frontend, that makes it so awesome. It's discoverability is very close to that of GUIs and somehow even more pleasing to use than GUIs. I wonder if someone is trying this on terminals.
I've used a terminal as my main interface FOREVER, and I'm amazed that people are joining this healthy habit of interacting with the computer as CREATORS.
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.
Also it 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. It's hard to appreciate them right away, but beautiful to look back.
Thanks for Ghostty! It has been my daily terminal driver for the past year.
I'm sure you feel the same watching Ghostty become what it has. Big thank you.
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?
that might be a viable approach for you
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.
If so that actually sounds really cool. I'd like a dedicated lazygit app in my tray at all times.
So here we are
Project mentions Windows compiles but isn't tested. Do you have a gut check on what issues there might be?
Feel free to open issues in the repo, I'll find a way to get a Windows machine if there's interest.
You can also email me at `trolley [at] wands [dot] is`
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…
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.
> 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
[0] https://www.reddit.com/r/macapps/comments/1loiw2z/comment/n0...
Out of curiosity, does ghostty do the Quake terminal thing - I use yakuake for this, but it feels a bit long in the tooth.
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.
Nice! Looks like I should have rushed the interview. :D
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.
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.
I've been slow on the agent pickup. The ethical issues really bother me (LLMs in general), though it's clear I'm not gonna have a choice in this industry so I've been caving recently. The persistent narrative that agents can build entire complex software systems is also irritating, because that clearly doesn't seem to align with reality.
I was thinking that downloading the full official documentation, separated by sections inside the repository someone is working on with Zig, could be useful, but maybe there are more optimal ways to approach this.
Thanks.
Big fan. Can I get a ride on your jet?
Tabs (and panes? I haven't tried yet) should work fine for regular terminal windows though.
Also, Zellij is nice.
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
This is addressed in paragraph 5 of the post they replied to.
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.
Essentially, I have a few features that have a TUI-first UI, and the obvious next step is to expose some of that to a browser.
Let's say I'm the creator of Alacritty, would I have more problems adding libghostty than it's generically named identical counterpart libtermengine?
The real goal isn't for Alacrity or Kitty or WezTerm or any other terminal to use libghostty. I think over the long term, terminal emulator user bases dwindle down to niche (but important) use cases.
The real goal is for higher-level tooling (GUI or browser) that utilizes terminal-like programs to have something like libghostty to reach for. I think this represents the much, much larger ecosystem out there that likely touches many more people. For example, Neovim's terminal mode, terminal multiplexers, PaaS build systems, agentic tooling, etc. You're seeing this emerge in force already with the awesome-libghostty repo.
libghostty would still be useful for traditional terminal emulators to replatform on, and for example xterm.js is seriously looking into it (and I'm happy to help and even offered their maintainer a maintainer spot on libghostty). But, they're not the goal. And if fragile egos hold people back, it's really not my problem, it's theirs.
Just that it's a specific "product"-y sounding name? Would you also be concerned about "libwayland" vs "libcompositor"? Genuinely curious: this seems like an insightful question, I just don't follow the reasoning.
Let's say I'm the creator of ghostty "competition".
The fact that is has the same name, could feel if I change that:
- Maybe my users start thinking why don't I use ghostty instead - Will the maintainers of libghostty chose more oriented to ghostty than for my terminal?
It's a half assed analogy, but think if Google's V8 would be called ChromeEngine instead of V8.
I recall the package manager war of Haskell between "stack" and "cabal-install":
Users would have strong opinion depending on their background.
But the developers eventually made both projects use the same libraries.
Both tools allow for ghcup to manage the compiler, so there's no conflict there.
The difference is eventually just a frontend experience, and all the heavy lifting and synergy is achieved behind the scenes.
I would not have believed the same is possible for terminals, even cross-platform, so thank you for having this vision.
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.