The agent era has an unadvertised side effect: the terminal came back to life. Claude Code, codex — the tools I touch most every day all live in the terminal. So I've been following every Ghostty move, and the latest one is especially interesting: libghostty.

1. Some background first

Ghostty is a terminal emulator written in Zig by Mitchell Hashimoto (yes, that Mitchell, of HashiCorp). It hit 1.0 at the end of 2024, macOS and Linux only. Windows support has been the white whale of the issue tracker, and Mitchell's position has been consistent: it will happen, but it will happen the right way.

2. What libghostty actually is

In short: Ghostty pulled its core — the genuinely hard parts like terminal emulation, VT parsing, and font shaping — into a library exposing a C API. The GUI got demoted to a "shell" over that library: macOS is one shell, GTK is another.

Mitchell wrote a whole blog post about it, titled "Libghostty Is Coming." The project also shipped a demo called ghostling: a few hundred lines of code and you have a working terminal.

This matters more than "yet another terminal": the terminal went from an application to a component. The next time an editor wants to embed a real terminal, or an agent tool wants to run a real shell inside its UI, there's no need to wrap a WebView and suffer Electron's sins — just link the library.

3. Why Zig

Zig isn't a famous language, but it fits this job suspiciously well:

  • No hidden control flow. The code is "flat" — what you read is what runs.
  • comptime settles generics at compile time, so runtime doesn't pay the tax.
  • Zero-cost C interop — extern a header and you're in.

For a library that's going to be embedded inside other people's programs, "no magic" isn't a bonus, it's the ticket to entry. The less magic, the clearer the boundary; the clearer the boundary, the braver the host.

By the way, the same logic applies to AI writing code: explicit code is the hardest for a model to screw up, because there's nothing to hallucinate.

4. So what about Windows

Ghostty 1.2 shipped experimental Windows support. The one-core-many-shells architecture is precisely the precondition: Windows doesn't need a rewritten Ghostty, it just needs one more shell.

Countless cross-platform apps have died on that hill and settled for the "native shell wrapping a system WebView" hybrid, doubling memory usage on the spot. Ghostty picked the opposite route: make the hardest core a library shared by every platform, and keep each platform's shell thin.

Right direction chosen; the rest is just a matter of time.

5. Closing

The terminal is the agent's home. Whoever turns the terminal into a library isn't thinking "another terminal" — they're thinking about which piece of software will need a terminal ten years from now.

That's a step further out than most terminals think.