Top
Best
New

Posted by mfiguiere 22 hours ago

Libghostty 1.0(mitchellh.com)
984 points | 173 comments
jdorfman 17 hours ago|
> “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.

raglof 14 hours ago||
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
norman784 12 hours ago|||
AFAIK he said that Ghostty was like a technical demo of libghostty
WD-42 6 hours ago||||
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.
exitb 3 hours ago||
So far they stated they don't intend to charge for Rex.
9dev 13 hours ago||||
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.
goosejuice 6 hours ago|||
> Rex is and will always be free.
jazzypants 7 hours ago||||
Why on Earth would folks pay for that? I'm not trying to be a jerk, but I genuinely don't understand the value proposition.
r_lee 6 hours ago||
if it provides a nicer DX and offers value for you, why wouldn't people pay for it?

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

limagnolia 6 hours ago||
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)

r_lee 6 hours ago||
yeah, that's true. but I would say with dev tools and such, people might easily fork over $10 if they think it's nice

I'd say the whole "lower cost" thing is less of a problem when it comes to ergonomics, we know that many devs buy all kinds of fancy split keyboards and things like that to make their workflow smoother, so I wouldn't be surprised if people easily forked over money to this

question is if it will actually take off or actually provide/slot into workflows that people actually like etc. if it's heavily opinionated or not really innovative, I don't see how people would "move over"

just my take though.

limagnolia 5 hours ago||
Absolutely, ergonomics is a huge part of the value- it solves a real problem.
cpuguy83 6 hours ago||||
I'm pretty sure he said Rex will remain free.
9dev 4 hours ago|||
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.
tough 5 hours ago|||
I'm pretty sure Google Chrome is free ;)
dash-44 10 hours ago|||
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.
k9294 10 hours ago||||
How you got your invite? I wanted to test Rex, but on the website there is only an invite only beta.
guessmyname 2 hours ago|||
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].

[1] https://www.google.com/search?q=%22blob.superlogical.com%20A...

[2] https://github.com/egoist/gorex

k9294 1 hour ago||
Thank you!
qaz_plm 8 hours ago||||
Should be able to add your email to get an invite. My invite arrived after three days.
Graziano_M 8 hours ago|||
I got an invite after only a few weeks
postepowanieadm 14 hours ago||||
Ghostty- maybe, but not libghostty.
veidr 6 hours ago|||
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.

It's the fucking business.

mijoharas 10 hours ago|||
I had a look to see how Rex was coming along the other day and it seems there's still no Linux beta (though MacOs users have one).

I'm still interested to check it out though none of these things have ever interested me too much so far.

dcre 6 hours ago||
There is a beta out for the server on Linux but not yet the frontend. So you can connect to a remote Linux box from macOS (or iOS).
ksh09 16 hours ago|||
I'd be happy there even if he did, maybe there's a delayed schedule for Rex to be publicly available.
howunfortunate 17 hours ago|||
Would be some serious 4d chess if you were his sockpuppet account.
jdorfman 14 hours ago|||
lol now that I read it back it might seem like that. I’m just a Mitchell Stan.
codessta 16 hours ago|||
After watching "You can see everything" I now have to stop and think rather than just laughing at your commment.
nsonha 15 hours ago||
That's because he doesn't have a product yet
jdorfman 14 hours ago|||
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.
9dev 13 hours ago||
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.
yurishimo 10 hours ago||
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.

aroman 14 hours ago|||
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.
mgrandl 9 hours ago|||
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…
dcre 6 hours ago|||
Here’s a demo of it on iOS. It’s on a Duo, but you can get the idea from the single-screen part of the demo.

https://xxcancel.com/almonk/status/2114390982049329442#m

violinist 8 hours ago|||
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.

cellu 4 hours ago|||
how have you replaced herdr's worktree management with rex?
bullfightonmars 3 hours ago|||
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.
aroman 2 hours ago|||
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.
smj-edison 17 hours ago||
I'm currently working on my own Zig project (an interpreter) and right now I'm working on designing a C interface for it. Seeing things mentioned like having objects as opaque handles, or enum-keyed getters and setters, made me think about how clunky my current API is, since I leak too many details to callers.

What really caught my attention was this: "So from the start, I took inspiration from C libraries I enjoyed working with and designed the API to have a strong, stable ABI that allows for future additions." What are good examples of this? I feel like I just don't have enough experience with well-designed C libraries to know what to look for.

spacechild1 13 hours ago||
One example that comes to my mind is libopus: https://github.com/xiph/opus

If you have structs that might need to be extended, you can use "versioned structs". One popular technique is to include the struct size as the first field. The struct size is set to `offsetof(mystruct, lastmember) + sizeof(lastmember)` and the receiver of the struct can use this to check if a member exists. The ARA API is a good example: https://github.com/Celemony/ARA_API/blob/65ec5c43b943a48cb54...

agosz 2 hours ago||
If you do version and size as the first two fields, you're basically there to backwards and forwards compatibility. Callers can request the size of the struct, allocate a buffer, and read out the parts they need. They can also check specific versions for what they support and ignore newer versions.

It also helps if you only append to the end of the struct for newer fields.

sigbottle 1 hour ago|||
My job requires thinking about things like this (well, more senior and experienced people actually drive the final decisions, but I still need to understand them). Seeing the level of rigor that went into the development of a stable C abi for this is insane, it hits on pretty much all the checklists (and more!) that we have internally.
zem 11 hours ago||
take a look at hpy, which is explicitly designing a better API for python C extensions. https://hpyproject.org/
JuniperMesos 20 hours ago||
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.
shoobiedoo 20 hours ago|
Indeed it is. It feels like libghostty was only announced yesterday and already there are things like ghostel for emacs that are imo far above and beyond the other emacs terminal options.
Conscat 16 hours ago|||
Ghostel is the first Emacs terminal emulator I've used that really just worked. Vterm and EAT were nice at for time but it's like night and day to Ghostel.
chuckadams 20 hours ago||||
As of recently, the embedded terminal in Jetbrains IDEs is also based on libghostty.
AnggaSP 19 hours ago||
And it has been such an upgrade.

There was so many little things that bugs me with JediTerm, unsupported escape sequences, bugged visualization, truncated output, you name it.

Now it just work, like it supposed to.

asa123 17 hours ago||||
ghostel makes vterm feel so sad!
iLemming 19 hours ago|||
Yesss! Finally I can run nvim +term inside the Emacs frame and then call emacs -nw in there. Matryoshkamacs is the dream. We all live in a simulation.
9dev 13 hours ago||
You emacs people are so weird.
biorach 11 hours ago|||
Oh yeah, like you've never succumbed to temptation of nested editor sessions. Freak.
iLemming 13 hours ago|||
I'm a vimmer. I use Emacs only because it vims better.
tasuki 6 hours ago|||
In what way does it vim better?
iLemming 3 hours ago||
You can literally type that question into any search engine or LLM. Don't challenge me like we're on a school bus. I'm a die-hard vimmer, been hjkl-ming for 17 years. I don't mince my modes here.
ephaeton 11 hours ago|||
wow. Even today, all the modal interface options for emacs feel too slow for my fingers. Maybe a different terminal root will fix that? I should reinvestigate.
nigehban 13 hours ago||
I was using ghostty since its beginning, then Mitchell has shown the capability of rendering for kitty and I installed the kitty, dropped everything else. maybe statistically is not correct but I feel the transitions, animations, rendering of the kitty terminal is superior than ghostty. I only miss some fancy window/pane layout settings (not sure kitty does have a window at all) and naming. Other than that kitty is my daily driver for any Agentic env.

PS: FMPOV Mitchell is a relentless performance addict. I have been seeing this since the vagrant days (this also makes me sad because it reminds me I am getting old)

cavoirom 3 hours ago|
since you are using kitty, make sure you know these:

- kitten, a lot, they are useful. I will name a few. kitten ssh, keep a long lived connection so that you need to authenticated once for the whole kitty window. kitten tranfer, transfer files between remote and local when you are inside the remote host. kitten clipboard, take data on the remote host to the local clipboard.

- customize your keyboard shortcuts to be more efficient on creating new tab, moving between tab, keep the current working directory when creating new tab, split panel (even you are on the remot host).

- tune the performance configuration.

- on macOS, you can hide the title bar of the window, give more minimal look.

- take time to learn from their documentation, a lot of useful things to be known.

- the author is uncompromised on the performance, e.g. https://github.com/kovidgoyal/kitty/issues/884

- don't ask the author to change kitty icon (but you can change it yourself, I did): https://sw.kovidgoyal.net/kitty/faq/#i-do-not-like-the-kitty...

nigehban 1 hour ago||
interesting points, thanks. another missing stuff (which it seems not to be implemented ) for me is the right click menu, I really dont get it why the author does not like that.
spudlyo 18 hours ago||
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.
larodi 14 hours ago|
Though zooming images is not there yet, is very need feature indeed.
ximm 18 hours ago||
> 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.

pekim 10 hours ago|
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.

amterp 20 hours ago||
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!
swyx 12 hours ago||
> 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)

azertify 12 hours ago|||
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.

zem 11 hours ago||||
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.

howtoolbox 12 hours ago|||
[flagged]
dizhn 1 hour ago||
I hope we won't be complaining about no more competition in the terminal core space like we do with browsers now :)
paradox460 18 hours ago||
I'm still on iTerm2, simply because it just seems to work and has all the features I want

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

rafram 7 hours ago||
I switched from iTerm to Ghostty because:

- 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.

AdamGibbins 3 hours ago|||
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.
williamdclt 8 hours ago|||
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.

Myrmornis 4 hours ago|||
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!
tdgunes 9 hours ago|||
I was on iTerm2 for a long time, but nowadays I find myself using: https://bateri.dev
wafngar 13 hours ago|||
Image support is much better in iterm2, you can open them, save them - then you can easily download any file. And fonts also look much nicer.
ashton314 17 hours ago|||
Search and tmux integration are where iTerm2 really shines imo. I use Ghostty 99% of the time now though. (Search did get a lot better with the latest release.) What features specifically keep you on iTerm2?
isomorphic 16 hours ago|||
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.
rkoten 17 hours ago|||
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.

sdevonoes 11 hours ago||
Vertical tabs is why i keep using iterm
IlikeMadison 19 hours ago||
Libghostty made the best terminal for Emacs possible (Ghostel). Thank you Mitchell.
arikrahman 2 hours ago|
Have been using ghostty with neomacs which was only possible with libghostty. Phenomenal experience and no other term even goes close.
More comments...