Libghostty is a very cool project, this is an exciting release, kudos to mitchellh for spearheading this as well as all the people who have made contributions to the project. I use ghostty as my primary terminal emulator today and a few months ago I was experimenting with using libghostty in an android project that I plan to jump back to someday when I have the time, so I personally benefit from this work.
There's also https://wintty.io/ which I just learned about. MIT licensed, binary downloads restricted to project sponsors, but buildable from source, allegedly easily (I haven't tried it). Currently 120 stars on GitHub.
He's just starting the project, if you check his page he doesn't even have any binaries yet. So currently it's more like "Hey, subscribe to my Patreon if you want to support my work, and in the future I'll make some bonus content for subscribers when it's ready". Which... well, some people actually do follow through on commitments like that, so really it depends on how well you know and trust the person involved whether you'd want to subscribe to a Patreon like that. Similar principle here, it looks like.
(I have formed no opinion, positive or negative, on WinTTY yet, BTW, so don't take this as either an endorsement or a... whatever the right word for anti-endorsement would be).
Let's not assume a project is incomplete if it doesn't have official windows support. Microsoft's relationship with Windows users is abusive. It's ok to not contribute to that.
Libghostty is such an awesome project, I didn't myself understand the vision a year ago but I've since then been working on my own terminal project using Libghostty and it really does just work and save me such a tremendous amount of work. Kudos to all the contributors!
> You can now create a terminal in ~1,500 lines of C that has more features and better performance than just about any terminal that existed in 2025, and most today in 2026.5 And thanks to the rich ecosystem of language bindings, you can do this in every major programming language. You get this for free. For almost no effort. You can just do it.
can i just get you people to slow down a bit and explain: why are you guys building your own terminal? whats the deep pain here?
(i'm not at all being skeptical, i respect you guys enough to understand that there's something here I don't get and it's my skill issue, so I am trying to learn)
I think the point isn't that everyone should create their own standalone terminal, but apps that embed terminals (like IDEs, cloud portals etc) can make much better integrated terminals with less code.
It's like a better alternative to xterm.js, and better than existing terminal emulator libraries.
think of it as the split between a browser engine (renders and handles interactions with webpages) and a browser (provides the user interface and everything other than rendering the webpage, e.g. bookmarks, tabs, clipboard interaction, etc.)
similarly, a terminal conceptually consists of a terminal engine, which handles text rendering and interaction, and then a terminal which handles tabs, splits, sessions, etc.
now one key point is that you can get a terminal engine right according to a bunch of reasonably objective criteria, so it's a problem well worth solving once and for all. the terminal itself is a lot more subjective and idiosyncratic; different people want different things out of their terminals and the reason is very often that it fits the way they work, or they enjoy some particular features, and even the absence of other features. it is wonderful that libghostty can solve the part that everyone agrees needs to be objectively correct, and lets people concentrate on building the subjective part in the way they like best.
In my case it's cause I wanted something like herdr or cmux i.e. a terminal with first-class agent support, but I didn't like any of the solutions that were already out there, hence I made Muster [0]. I wanted to focus on just the AI-ness of it all, I was previously very happy with Ghostty and had been using it for over a year, and Libghostty allowed me to get a ton of work for free, while maintaining a Ghostty-like feel even tho it's my own project.
interesting in the sense of "why should i bother switching?". the default terminal is good enough. what great features does foot have that make it worth switching? what does it do better than other terminals. i didn't see anything in the feature list that sounded useful to me.
incidentally i just discovered that my default terminal does not support copying the tmux selection into the desktop clipboard. so now i am going to switch to a terminal that does support that.
But OSC 7 is a standard supported across virtually all widely used terminal emulators anyway, so configuring your shell to emit it is a sensible thing to do regardless.
does anyone have a terminal setup with gorgeous colors/background/etc over ssh without a display manager? Looking for a lightweight server side environment. I keep searching for headless / framebuffer / DRM setups and there seems to be a few out there, wondering if these exist in a practical workflow.
This is a confusing question. If the terminal emulator is using the server's frame buffer, then it is running on the server end. If the terminal emulator is 'over SSH', then the actual terminal emulator runs on the client end.
They are two very different setups, the former being covered by the likes of zhcon, jfbterm, fbpad, and my virtual terminal system; and the latter being a wide range of things depending from what one's desires are on the client.
"Mitchell Hashimoto is a software developer and entrepreneur best known as the co-founder of HashiCorp, which was acquired by IBM for $6.4 billion in 2025."
Many common ways for the financing of an free and open source project to be sustainable (The main keyword) in the mid to long term:
1) A non-profit company that has full-time employees but supported via sponsorships: (gnu project, mastodon, omarchy, zig)
2) Multiple for-profit companies that each have full-time employees contributing to an open source project that they all use: (ocaml, linux, rust)
3) An ultra high net worth individual that has full-time contributors to open source and supported via a non-profit (signal, ghostty)
4) A for-profit company that has dedicated full-time employees that have full support and own the direction of the open source project (go, swift, java)
It’s really hard to come up with better conditions for an open-source project than what libghostty has. I’m pretty sure it will be the last terminal emulator at this point.
> A for-profit company that has dedicated full-time employees that have full support and own the direction of the open source project (go, swift, java)
I think this has not been the case for Java in quite a while. It is a community project now.
you missed the 99% case, which is some random person who has a reasonably well paying day job and develops the project in their spare time. AI agents make that more sustainable, not less. vim is a good example, as are a lot of popular programming languages.
it's not sustainable in theory, because you can definitely think up valid failure modes like that. in practice though it's how a huge percentage of open source software out there is developed and maintained. at most the bdfl becomes less active in development but continues to shepherd the project as it attracts other contributors.
He posted here a while back, paraphrased "My revenue model is my bank account has 10 digits". He's wealthy and likes to code and is giving back to the community
The documentation for libghostty is great, I'm reading through the guides and examples. It feel like a fun way to build your own terminal emulator GUI in C, Zig, or other languages with C bindings.
In what way did search get better for you with 1.4? The hotkeys to navigate search results (Cmd+G / Cmd+Shift+G) don't work for me even with custom keybindings as documented and the search box doesn't get prefilled with current selection - the _only_ two features that I'd ask for besides the actual search working. Were you able to solve these in your setup?
No shade to ghostty btw, it's an amazing product that I use every day. I just have to accept the lack of some of this usability polish.
Aside from the outstanding tmux integration (and search):
- Font rendering (and cell size control) is still better on iTerm2, although Ghostty has been rapidly gaining
- Compact theme with thin titlebar tabs
- Profiles
- Window arrangements
- In-terminal API (which Mitchell has acknowledged as a useful feature)
The iTerm2 settings/preferences are a mixed bag. On the one hand, discoverability and settings search. On the other hand the panel is insane. Also iTerm2 doesn't have Ghostty's straightforward prefs file. I guess I want the best of both worlds: A well-organized settings UI, with search; and a file I can easily neovim.
I'm also still on iterm2. I don't quite get what people want from a terminal emulator, for me it's mostly window management: being able to open iterm2 fullscreen with a hotkey, having panes and tabs, that's it.
I wouldn't even need panes and tabs if I used tmux, but I can't be arsed: I used to but now much prefer using a GUI and not have to do tabs/scroll/selection differently than every other application.
That actually touches on a killer feature of iterm that I have yet to see elsewhere. If you start or resume a tmux session with the -CC arg, it integrates with iterm2 gui natively
All your tabs, splits, etc become tmux equivalents. It's very nice
- iTerm started pushing a ton of updates to add features that absolutely no one wanted. AI chat in the terminal emulator (not within the terminal), integrated web browser, etc.
- Some of those features turned out to introduce major vulnerabilities, so they had to push even more frequent updates to patch them. It’s extremely annoying to have your work interrupted by multiple update prompts in a day from your terminal.
- iTerm has visual glitches (line artifacts appearing when windows are opened/closed) on non-Retina monitors.
That said, I miss the GUI for changing settings. Ghostty’s settings file format requires looking up keys every time you want to change something, and it isn’t nearly as powerful as iTerm profiles.
I chose Ghostty instead of Wezterm specifically because the settings file format makes it possible to get a GUI some day. I don't even know if it's officially considered for Ghostty but at least it can be done, even by an external tool.
VSCode started this way and for a long time settings could only be updated by editing a JSON file. The fancy settings UI was added much later on.
Wezterm config being Lua makes it almost impossible to get a UI ever.
A big reason I gave up iTerm2 was that it didn't use a plain text file as its native configuration format -- I was just too obsessive about wanting my config in git to be able to handle it!
I ditched iTerm2 a few years back, when I opened MacOS Terminal, typed in it - and it appeared to be predicting my keystrokes it was so much faster. I'd never noticed how slow iTerm2 was until this. I understand its performance has improved since, not sure by how much.
WezTerm was a nice term and I think it's still ahead of Ghostty in standards support (far fewer renderer bugs). Ideas like built-in tmux were also good and came before their time. But there's been no stable release since February 2024, so the project feels dead to me. Also, large config files are a pain — I like Ghostty's defaults.
> Every bug any libghostty-vt embedder reports makes everyone else in the ecosystem better. Every feature we ship in libghostty-vt becomes available to everyone quickly and safely. Terminals can move faster with less fragmentation.
Can anyone give a comparison to libvte? There are many terminals that are just thin wrapper around that (gnome-terminal, xfce4-terminal, mate-terminal, lxterminal, sakura, …). It is tied to GTK, so it has a much narrower scope. But still it feels related in spirit.
libghostty provides terminal emulation, without any UI. An application embedding it will need to provide the UI.
libvte provides terminal emulation complete with a gtk UI.
In terms of terminal emulation libghostty implements several protocols that libvte does not. For example kitty keyboard, kitty graphics, and desktop notification.
One area where Ghostty really shines is with fancy TUI programs like the pi agent. Pi has a relatively recent tuiMode "fullscreen" feature, and it's been exceptional. Showing inline images with the Kitty graphics protocol has been a huge improvement too -- I love it when a model calls `read` on an image file and I get to see the results in my terminal. The OSC-8 hyperlink support very handy too. Viewport scrolling is super fast, and pi can hide/show the scrollbar as you need it.
> “And a whole wave of new terminals and "agentic" coding tools, such as herdr and cmux, have been built on it rather than writing yet another emulator.”
Mitchell could have easily snuck his competing product Rex in there but resisted. Respect.
I’m using the beta. So far so good. I’m swapping between that and Herdr. Anyone who writes macOS apps take notes on Rex’s onboarding. It was so easy to enable/grant permissions.
The whole app is so incredibly satisfying and feels polished, down to every last button and animation. Buttery smooth, feels completely native. Better than some first-party macOS apps IMHO.
Just to reiterate to anyone reading this and being skeptical; it’s 10000000% better than what most apps give you in terms of affordances for allowing permissions in a Mac app.
Does this mean Apple might nuke those capabilities next year? It would not surprise me, but for right now, it’s really freaking good what they managed to put together.
It’s worth downloading the beta just to study their onboarding flow.
No, he does, and it's extremely good. It's completely replaced herdr for me and I run it on Linux (server), macOS, and my iPhone. I've yet to run into a bug. Access is being controlled via Discord and TestFlight - you can find the link to apply on their site.
Can you describe the iOS experience? Is it just a terminal that mirrors your sessions from the server? I have yet to encounter a good terminal experience on iOS that doesn’t make me want to rip my hair out so if they have some secret sauce to make it enjoyable I would be interested…
It has its own server-client format that replaces both the ssh / mosh layer and the tmux layer, allowing the iOS app to connect to existing sessions on the computer (also the Mac app can either connect to the local Rex server that is included in the app, or to remote servers over Tailscale).
It doesn’t replicate the “remote authentication” part of ssh, and leaves that to Tailscale instead.
Rex has "sessions" which are like groups of tabs and it is scriptable, I made a little plugin that when invoked pops open a floating terminal asks for a worktree name and sets up a new worktree.
i'm not sure what you're referring to - if herdr had worktree management features, I never used them. that's not something i'd want my terminal multiplexer to do anyway, our worktree automation is part of the repo.
Herdr made it quite nice and easy to have different worktrees/spaces. Eg. I wrote a simple plugin that rsyncs the dev repo (including uncommitted, untracked and gitignored files like `.env` and generated code, so it's ready to use right away) and create a git worktree and open it as its own workspace in the sidebar.
I see Rex has the concept of sessions and tabs within it, so am wondering how are people working and switching worktrees within it, automating flows etc?
I like Rex and have started using it and its replacing Ghostty for me. This has made me a bit confused: is the intent for Rex to replace Ghostty? not sure when I would use one vs the other yet
I suspect Ghostty is to Rex what Chromium is to Google Chrome (without all the negative connotations that is, I’m a happy Rex user!): both something of a tech demo for libghostty, and an open source, basic-but-fully-featured terminal emulator. Rex, then, will possibly be a paid product at some point, and adds features like the server, agent integration, and persistent session management on top.
If you had asked me two years ago if I was ready to pay for my terminal and quit my jetbrains subscription, I’d have laughed. Now I’m earnestly ready for that if Superlogical were to announce a paid plan.
Incredible that we’re now at the point of needing to say “without all the negative connotations” when comparing against any sort Google product. LOL. I see this often.
It comes down to the question of if it provides enough value over other competing products (which may be free or lower cost) to justify the price. If you sell 10$ widgets that solve $100 problems, you may wonder why nobody is buying your $10 widget when it "provides so much value" and it is because a $1 widget solves the same problem just as well.
Note, I am deliberately using a generic example, I use Ghostty but I haven't tried Rex yet and I have no idea how much value it provides over competing widgets)
Sure, but then again, Superlogical is a company and as such surely will create a commercial product at some point. I would be surprised if that wouldn’t pertain to Rex in some way.
You don’t need an invite to get a copy of Rex Beta app; the URL to download the official .dmg has been leaked for several days in various Chinese forums. Search “blob.superlogical.com AND latest.dmg” online [1]. And for the people who like Go (golang) projects, someone already asked an LLM to replicate the app in Go [2].
Dang. I was hoping some of this was going to come to ghostty. Especially the ssh session stuff. Wezterm has it. I prefer ghostty but it’s kinda lame if it becomes the lite version of a paid product.
I like Rex, too. Ghostty was never enough to use as any kind of frequent daily-use thing; I tried it, but found it basic. (I use iTerm, mainly, or Konsole on Linux.)
Rex is a more serious challenger to iTerm, for me, but atm has similar flaws (Mac only, for most functionality) without coming close on a feature basis. (Nobody uses all of iTerm's features, but most iTerm fans use a subset of them that still exceeds what less-featureful terminal apps (i.e., all of them) can do).
But libghostty is fuckig amazing. Do you have some internal/personal bespoke app that needs a terminal pane somewhere? Ask your clanker to use libghostty.
Do you have a professional, commercial product that needs a terminal somewhere? Direct your team of highly-paid experienced human software engineers to evaluate libghostty.
176 comments
[ 0.27 ms ] story [ 10.3 ms ] thread- Noctty (~517 stars)
- GhosttyWin3
- ghostty-windows (~79 stars)
(I have formed no opinion, positive or negative, on WinTTY yet, BTW, so don't take this as either an endorsement or a... whatever the right word for anti-endorsement would be).
Many basic features are missing, but I'll be keeping a close eye on this project.
can i just get you people to slow down a bit and explain: why are you guys building your own terminal? whats the deep pain here?
(i'm not at all being skeptical, i respect you guys enough to understand that there's something here I don't get and it's my skill issue, so I am trying to learn)
It's like a better alternative to xterm.js, and better than existing terminal emulator libraries.
similarly, a terminal conceptually consists of a terminal engine, which handles text rendering and interaction, and then a terminal which handles tabs, splits, sessions, etc.
now one key point is that you can get a terminal engine right according to a bunch of reasonably objective criteria, so it's a problem well worth solving once and for all. the terminal itself is a lot more subjective and idiosyncratic; different people want different things out of their terminals and the reason is very often that it fits the way they work, or they enjoy some particular features, and even the absence of other features. it is wonderful that libghostty can solve the part that everyone agrees needs to be objectively correct, and lets people concentrate on building the subjective part in the way they like best.
[0] https://github.com/amterp/muster
Ghostty is simpler and faster
incidentally i just discovered that my default terminal does not support copying the tmux selection into the desktop clipboard. so now i am going to switch to a terminal that does support that.
Haven’t gone back since.
I have it reuse the same directory in a new pane. And my home directory in a new tab.
I suppose my accolade is that Ghostty just does what I want without hunting through config screens and managing file edits.
No, it doesn't.
What you're describing is a Gnome Terminal issue.
https://bugzilla.gnome.org/show_bug.cgi?id=697475
But OSC 7 is a standard supported across virtually all widely used terminal emulators anyway, so configuring your shell to emit it is a sensible thing to do regardless.
https://ghostty.org/docs/vt/osc/7
They are two very different setups, the former being covered by the likes of zhcon, jfbterm, fbpad, and my virtual terminal system; and the latter being a wide range of things depending from what one's desires are on the client.
bonus if lightweight vector instructions carry over too, gradient backgrounds, rainbow effects, etc.
it should be pretty lightweight to send vector instructions.
1) A non-profit company that has full-time employees but supported via sponsorships: (gnu project, mastodon, omarchy, zig)
2) Multiple for-profit companies that each have full-time employees contributing to an open source project that they all use: (ocaml, linux, rust)
3) An ultra high net worth individual that has full-time contributors to open source and supported via a non-profit (signal, ghostty)
4) A for-profit company that has dedicated full-time employees that have full support and own the direction of the open source project (go, swift, java)
5) VC funded open source projects (Herdr, Bun, Deno, Burno, Atuin)
All other options such as low donations like "buy me a coffee", ko-fi, are completely unsustainable, now that AI agents exist.
I think this has not been the case for Java in quite a while. It is a community project now.
https://lib.ghostty.org/vt/example-programs.html
It also looks useful for testing and developing text interfaces (TUI), like file navigator, editor, dashboard, etc.
Occasionally I'll check out other terms people rave about. Tried kitty, wezterm, and a few others a while back, but wound up coming back to iterm.
Still, really happy to see things like this gaining traction. An easy way to implement high performance terminals in any application is a boon
No shade to ghostty btw, it's an amazing product that I use every day. I just have to accept the lack of some of this usability polish.
- Font rendering (and cell size control) is still better on iTerm2, although Ghostty has been rapidly gaining - Compact theme with thin titlebar tabs - Profiles - Window arrangements - In-terminal API (which Mitchell has acknowledged as a useful feature)
The iTerm2 settings/preferences are a mixed bag. On the one hand, discoverability and settings search. On the other hand the panel is insane. Also iTerm2 doesn't have Ghostty's straightforward prefs file. I guess I want the best of both worlds: A well-organized settings UI, with search; and a file I can easily neovim.
I wouldn't even need panes and tabs if I used tmux, but I can't be arsed: I used to but now much prefer using a GUI and not have to do tabs/scroll/selection differently than every other application.
All your tabs, splits, etc become tmux equivalents. It's very nice
- iTerm started pushing a ton of updates to add features that absolutely no one wanted. AI chat in the terminal emulator (not within the terminal), integrated web browser, etc.
- Some of those features turned out to introduce major vulnerabilities, so they had to push even more frequent updates to patch them. It’s extremely annoying to have your work interrupted by multiple update prompts in a day from your terminal.
- iTerm has visual glitches (line artifacts appearing when windows are opened/closed) on non-Retina monitors.
That said, I miss the GUI for changing settings. Ghostty’s settings file format requires looking up keys every time you want to change something, and it isn’t nearly as powerful as iTerm profiles.
No release since 2024 is noooo gooooood
Can anyone give a comparison to libvte? There are many terminals that are just thin wrapper around that (gnome-terminal, xfce4-terminal, mate-terminal, lxterminal, sakura, …). It is tied to GTK, so it has a much narrower scope. But still it feels related in spirit.
libvte provides terminal emulation complete with a gtk UI.
In terms of terminal emulation libghostty implements several protocols that libvte does not. For example kitty keyboard, kitty graphics, and desktop notification.
Mitchell could have easily snuck his competing product Rex in there but resisted. Respect.
Does this mean Apple might nuke those capabilities next year? It would not surprise me, but for right now, it’s really freaking good what they managed to put together.
It’s worth downloading the beta just to study their onboarding flow.
It doesn’t replicate the “remote authentication” part of ssh, and leaves that to Tailscale instead.
https://xxcancel.com/almonk/status/2114390982049329442#m
there's a big market for "makes your life easier" tools both in B2C and B2B
maybe not that big of a market but who knows
Note, I am deliberately using a generic example, I use Ghostty but I haven't tried Rex yet and I have no idea how much value it provides over competing widgets)
[1] https://www.google.com/search?q=%22blob.superlogical.com%20A...
[2] https://github.com/egoist/gorex
Rex is a more serious challenger to iTerm, for me, but atm has similar flaws (Mac only, for most functionality) without coming close on a feature basis. (Nobody uses all of iTerm's features, but most iTerm fans use a subset of them that still exceeds what less-featureful terminal apps (i.e., all of them) can do).
But libghostty is fuckig amazing. Do you have some internal/personal bespoke app that needs a terminal pane somewhere? Ask your clanker to use libghostty.
Do you have a professional, commercial product that needs a terminal somewhere? Direct your team of highly-paid experienced human software engineers to evaluate libghostty.
It's the fucking business.
I'm still interested to check it out though none of these things have ever interested me too much so far.