mitchellh

Joined 18 years ago

Karma
12,008
Submissions
620
Member since
Jul 18
Email: [email protected]

GitHub: http://github.com/mitchellh

Twitter: http://twitter.com/mitchellh

Site: http://mitchellh.com

View on Hacker News

Recent submissions

Comment · 4 days ago
Comment · 4 days ago
These are Ghostty GUI release notes, but I want to take a moment to highlight the libghostty progress we've made since Ghostty 1.3.

As a reminder, libghostty is the highly portable, embeddable library that provides core terminal emulation, render state, and more. I always felt that a free, high qualty, lightweight, reusable terminal emulation core would benefit the developer world more than any single GUI application. And that is playing out!

It is and always was my true purpose with the Ghostty project (I said this in my first ever talk about Ghostty!). I've jokingly said many times that Ghostty GUI is just a glorified tech demo for libghostty. That's not fair though, because GUI is great and there are really talented people working on it.

Since I started the project, Ghostty has always gotten people saying "I don't understand why you'd start a terminal emulator today." Well, the answer is libghostty. It's truly unique and its enabling something special (imo!).

Highlights of libghostty since 6 months ago (none of the below was true 6 months ago):

- Libghostty has nearly 100% coverage of all of Ghostty's core (and you can compile with flags to remove any of these features for size/safety): https://libghostty.tip.ghostty.org/

- Libghostty now builds and is tested (in CI) for: Apple (macOS, iOS, visionOS), Windows (MSVC and GNU), Linux, FreeBSD, Android, WebAssembly, and freestanding (i.e. direct on hardware with no OS).

- Libghostty has bindings in pretty much every popular programming language: C, Zig, Go, Swift, Python, Rust, .NET, etc.

- Libghostty's memory requirements have dramatically shrunk to enable the portability above. There's still work to do but a single empty terminal now takes 90% less memory. And at scale I've proven 10,000 active (input/output happening) terminals on a Linux server with 4 cores and 8 GB of RAM.

- Libghostty powers all JetBrains IDE terminals, over 12.5 million active users. https://blog.jetbrains.com/platform/2026/10/jetbrains-termin...

- Libghostty is the most popular core behind the wave of venture-backed "agentic" terminals and editors, such as Herdr, cmux, and many others.

- Libghostty is being discussed and has been verbally accepted to replace the terminal core in Neovim: https://github.com/neovim/neovim/pull/39773 (work still to be done)

- Libghostty powers a really popular and powerful terminal emulator for emacs (Ghostel): https://github.com/dakra/ghostel

- Libghostty's speed is used by Antithesis to fuzz popular terminal programs and has directly led to hundreds of bug fixes sent upstream to programs such as tmux, btop, shells, and other terminal emulators. :)

- And so much more: https://github.com/Uzaaft/awesome-libghostty

Libghostty is really successfully turning into the tide that raises all boats. As it becomes more popular, Ghostty itself gets more performant and stable, and so does everyone else. It is also a vehicle for delivering modern terminal emulation to the widest source possible.

I plan on tagging libghostty 1.0 in the next few months and declaring ABI stability at that point!

Comment · 22 days ago
Comment · 24 days ago
Creator of Ghostty here.

We run on a 6 month release cycle as noted in our release notes. The 1.4 release was scheduled for the last week of September (~a week ago), but it had to be pushed to October due to personal family travel as well as some lagging localization PRs. After we release in October, there won't be another release until March.

I'm actually working on the 1.4 changelog right now and I put out a call for help for the translations yesterday on X. The only risk now is that my 3 year old became very sick today and my wife is out of town, so I'm solo parent and that's now impacting things.

There's been literally over a thousand changes on main between March and today and if you look at our commit history we're extremely active with commits almost every day. So I'm not sure what anyone is trying to imply by sharing this with this title, but please don't read into it in any weird way.

Comment · 2 months ago
Creator of Ghostty here. Always a fan of new terminals. I noticed your benchmarks are against Ghostty 1.3.1, which is fair, since its the latest released, but our IO throughputs in particularly the areas you tested have improved by more than double on some machines, so if you get a chance, I would ask you rebenchmark on `main`.

I don't know if it'd be faster than your terminal or not, but it'd be significantly faster than 1.3.1. On my M4 MacBook Pro, ASCII processing improved by about 2.8x, if that holds in your benchmarks, it would be faster than shitty. But, who knows. I'd prefer you ran it yourself.

Comment · 3 months ago
No idea
Comment · 3 months ago
> Good news is that modern compilers are more than capable of emitting SIMD code even if original source is nothing but.

They're really not (I have a whole section on it in the blog post). This example in the post doesn't auto-vectorize, for example. And its a pretty big part of the overall throughput for plain text runs (ascii or unicode). Really, the point of that section is that almost nothing auto-vectorizes, backed up by LLVM docs and published research.

Instead, writing 12 lines for a 5x gain is way easier than crossing your fingers and hope someone else pays your bills.

Bigger picture, the real point is that this stuff isn't complicated. You wouldn't copy and paste 100 lines because you hope the compiler "lifts this into a for loop", you just write the for loop cause you know how and its simple.

Similarly, the common case of "process N values in parallel" is very simple. Write a dozen lines of code you're comfortable with. No need to pray the compiler people saved your bacon.

Comment · 3 months ago
> i've found that zig tends to extend my vectors to the native width of the platform and then operate on them there

oh interesting. though i suspect that isn't zig and thats llvm.

Comment · 3 months ago
> mitchell, i know you hang around some of these comments sometimes

hi im here

> i noticed that in ghostty you bring in some c++ libs to do the simd heavy lifting for you. any plans to port that to zig? anything missing from the language or libs that's preventing it?

No plans to port it. For others, this is referencing highway: https://github.com/google/highway

The major limitation of Zig's vectors is that they're compile-time only. So if you're building redistributed software that compiles for a baseline CPU target, it won't be as optimized as it could be for YOUR possible machine.

Highway compiles our SIMD modules for different hardware configurations and at startup does a CPUID fingerprint to figure out which to load. That way even baseline has AVX512 etc. implementations, and we just activate the right one at runtime.

We only use Highway for our hottest hot paths that we feel benefit from that specialization.

No plans to port that (although, I spent hundreds of dollars and slop-forked it into Zig with the help of this good boy GPT and it worked great actually, but I didn't want to maintain it).

Comment · 3 months ago
Case-in-point, the example in my own post doesn't auto-vectorize with LLVM or GCC at highest optimization levels. Basically, compilers will never auto-vectorize loops with an early loop break afaik.
Comment · 4 months ago
> If you assume Hashimotos net worth is one billion dollars, a $400k donation is equivalent to a $400 donation if your net worth is one million dollars.

1. Net worth is significantly less than that (taxes + heavy philanthropy)

2. $400K donation is orders (plural) of magnitude off our actual philanthropic giving in total. This is just one donation.

Comment · 4 months ago
> How is it out of touch? I donated much more than Hashimoto did relative to our net worths, but I cannot deny that I would have felt much more satisfied making a 1000x impact if I was a billionaire.

You have no way of possibly knowing this. And I bet you its not true.

I'm no longer a billionaire, partially because I paid an astronomical amount in taxes (I don't play the tax avoidance games). And partially because we're donating a whole lot more than $400K per year. This is ONE donation. We don't publicize most of our giving because it attracts armchair critics like you, and its distracting from the goals.

(I make an exception for Zig and technical things because my influence for better and worse usually is net positive for the initiative)

But, more importantly, I don't think playing these "my donation is worth more than yours" games is productive. If you want to think that way thats fine, I won't defend myself or my family any further than this post.

Comment · 4 months ago
I'm the creator of Ghostty. This isn't right. It should idle at 0 to 1%, as supported by sibling comments. If you can collect more details about your system please open a discussion on the main Ghostty repo. Same with memory.

In terms of speed, same thing: if you can provide some kind of objectively measurable thing, we can look into it. Everything we've measured so far firmly places Ghostty in the "fast" camp (with friends such as Kitty).

We're sometimes faster, sometimes slower, but in any case not noticeably so. You wouldn't pick Ghostty vs Kitty for example for performance, it'd be something else. But you would pick Ghostty over say... iTerm2 for performance (but you may pick iTerm2 for features, its extremely feature rich!).

Comment · 4 months ago
probably just been long enough that he doesn't give a shit

source: most of the bullshit i surface up nowadays

Comment · 4 months ago
As with all things, the horror stories just get the most attention. People love to rage. There are plenty of boring (good, even!) VCs out there. They just work more quietly, professionally.

I'll share a story, but its about a close friend and not me so I won't name any explicit actors and I'm going to round out the numbers. You either trust me or you don't, but this is a very direct relationship I have to both the founder and VC.

The story is this: the founder started their company outside of SV, so the lawyers weren't super familiar with startups and messed up the initial incorporation and stock plan stuff (actually super common: use Stripe Atlas or pay a startup-aware lawyer!). Went under the radar through years. This company ended up being bought for nearly $1B (with a B) after many rounds and a large board.

During the legal work to close the acquisition, they found out this messed up stock plan. Without going into the details, the effect was that instead of taking home $200M, the founder would take home ~$75M. The mistake the lawyer made almost a decade earlier was about to cost him $125M.

Most of the board basically said "too bad so sad, law is law." But one VC (the one I know, the one I'm talking about) basically strong armed and politicked the whole thing and eventually convinced everyone around the table to give up an equal share of their own holdings to make the founder whole.

Letter to the law: they didn't have to.

Spirit of being founder friendly: this VC went to bat hard and got everyone to yield to make things "right."

Also, look, you might argue $75M vs $200M is just "rich vs rich." Who cares? Sure. That's not the point.

You don't hear about stuff like this because honestly its not a big enough deal and feel good stories get way less clicks than pitchfork stories.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton