Skip to content(if available)orjump to list(if available)

Libghostty is coming

Libghostty is coming

72 comments

·September 23, 2025

hackitup7

I love how this guy founds + takes public + sells a multibillion company and then just goes right back to hacking. Legend.

kortex

Hashimoto is an absolute wizard, but what I find most compelling about him is his absolutely uncanny ability to segment and abstract systems and interfaces in a way for maximum composability and minimal entanglement. He's like the walking embodiment of Rich Hickey's Simple Made Easy philosophy. It's like he designs software systems in such a way that they have no choice but to operate correctly and predictably.

Also I just tried Ghostty for the first time. With iTerm2 and the Zsh/Powerlevel10k theme, there's an extremely brief but perceptible lag from running a command and the render. In ghostty it feels actually instant.

buildbot

I love ghostty and use it daily, somehow I missed it was by Mitchell Hashimoto! Very cool to see.

krferriter

I had tried it briefly previously but in the last couple months I think I have made the permanent switch from iterm2. It's so much snappier and simpler and also reliably handles text reflowing when a long line wraps, which was a constant problem I had in iterm2, where it would insert fake newlines when copying out text that was wrapped.

I also like that I can have my config in a little plaintext file and just drop it onto a new computer and get the same keybindings. I am using the terminator keybindings for creating and navigating between split panes.

rwmj

And hacking on tty software too, the geekiest corner of the Unix tech stack.

null

[deleted]

qaq

100% Legend love Ghostty btw :)

bigwheels

This is super cool, it will be so nice to have a truly omni-platform terminal emulator that can even conceivably extend to iOS and Android.

Aside: I didn't realize Ghostty was written in Zig, wow. The first Zig-thing I'm aware of using on a regular basis. It's amusing the repository structure looks exactly like a Golang layout, haha.

https://github.com/ghostty-org/ghostty

ldemailly

It doesn’t (look like a go layout) and that’s a good thing because pkg/ src/ etc aren’t good go directories.

jdorfman

The passion and attention to detail Mitchell has for developer experience is beyond me. I remember the first time I used Vagrant (2011, Santa Monica California) like it was yesterday it was that impactful.

I never thought in a million years I would even think of ditching iTerm2 but when Ghostty dropped I installed it and fell in love.

tambourine_man

I really want to like Ghostty but:

- Still no ⌘F for find.

- No way (that I know of) to select previous output or specific string and copy with only keyboard shortcuts.

- No ⌘. sending CTRL-C (muscle memory and being advertised as native to the Mac is what one would expect).

- Fonts still don't render as nicely as in Terminal.app. I've fiddled with `font-thicken-strength` and it's close, but not quite. Probably impossible or very hard to replicate due to its Metal rendering nature, but when all you do is look at text all day, it matters.

zenlot

I use ghostty daily now. Switched recently. In macOS I can re-map now caps lock to be cmd and it works for cmd+c. Everything else is great, sensible defaults and what's not easily customizable.

Gruvbox light theme looks great too.

The fact it's written in Zig is awesome too, if you ever question if Zig is ready, ghostty is your answer to that.

Not seeing myself going back. It's great experience.

Tip: if you combine your ghostty flow with aerospace, it's nearly perfect setup for your keyboard only experience on mac.

epolanski

Other huge projects are Clickhouse and Bun.

ordinaryradical

I think you’re thinking of TigerBeetle, not Clickhouse, which is a quite performant db with a fascinating simulation-tested story and proof of performance / safety.

nasretdinov

ClickHouse is written in C++ (un)fortunately. Although I do think that Zig would fit it quite well too

sdairs

Yeah ClickHouse is written in C++, though rust is also possible https://clickhouse.com/blog/rust - would be cool to see zig!

MonkeyClub

Through TFA I ended up perusing Hashimoto's blog, and from that moved on to "The Tao of HashiCorp".

Curiously, it hasn't been discussed on HN before, so I started a thread to get HNers' thoughts on it:

https://news.ycombinator.com/item?id=45351378

trial3

i desperately want to use ghostty but cmd+f support is just such a dealbreaker. excited about this development though!

yankcrime

You can map something like cmd+shift+f to open the entire buffer in your default text editor, this has been sufficient for a lot of folks - myself included - while we wait for native scrollback search to land.

jrop

trial3

oh, incredible! i'll keep my eyes peeled and will be switching to it from iTerm the moment it's available

nhumrich

I have heard this from a lot of people, yet here I am, using a terminal that supports this, and have yet to ever do it. Can you help me understand what workflows you depend on Ctrl+f for? I wonder if I am missing something big.

esafak

Don't you ever need to search through a program's output; e.g., to find what failed? Otherwise you'll have to remember to tee everything to a file every time you run a command.

esafak

Can someone explain why this was not one of the first features added? Who doesn't want to search their history? There must be some complication.

Mitchell raised the issue himself two years ago: https://github.com/ghostty-org/ghostty/issues/189

SG-

probably because you never volunteered to code it up.

but really not all features can make it in 1.0

Tossrock

You could run tmux inside it and bind cmd f to copy-mode + /

timeon

> i desperately want to use ghostty

Is there any particular reason?

jrop

I've been keeping an eye on this in the hopes that text-reflow (edit: including for scrollback) could be solved in Neovim-based terminals [1]. I'm loving the innovation Ghostty is bringing to the terminal space.

1. https://github.com/neovim/neovim/issues/33155

jez

Do you consider yourself a neovim terminal power user?

I tried a while back to invert my workflow (from tmux driving neovim to neovim driving terminals) because I thought it might be easier to only ever have one buffer open for a given file, instead of attempting to open a file in a given pane only to realize that it's already open in a different neovim instance in a different pane.

When I was testing that stuff out I don't think I noticed particular issues with text reflow that would benefit from being solved by swapping to libghostty, rather my pain points were just about how to adjust to the different paradigm. I'd be curious to hear more about someone who is all in on Neovim embedded terminals (and possibly how libghostty might make it better).

jrop

I do indeed live in the terminal (all day due to work), but tmux adds too much value for me to do all terminal management in Neovim (tmux session-management being what I use most). I've just encountered too many visual "glitches" in the Neovim terminal to rely on it for everything. That's not to say, however, that I never use the built-in Neovim :terminal.

> I thought it might be easier to only ever have one buffer open for a given file, instead of attempting to open a file in a given pane only to realize that it's already open in a different neovim instance

This is not a problem in my config:

    vim.api.nvim_create_autocmd({ 'FocusGained', 'BufEnter', 'CursorHold' }, {
      pattern = '\*',
      command = 'silent! checktime',
    })
Since `'autoread'` is by default `on` in Neovim, this seamlessly reloads the buffer if the underlying file has been updated on disk.

khamidou

I'd be curious to hear more about how tmux helps you — I tried it and besides keeping a permanent session open on a remote server to me I didn't find much use for it compared to regular terminal tabs

jez

I think my problem is when I realize that I had unsaved changes open in a different neovim instance. If the file was not dirty in any other open neovim instances then I don't have the same problem.

c-hendricks

I'm all in on Neovim terminals, having a remote development setup means it keeps my terminal with my neovim window (I use nvim-qt).

Also not sure how ghostty would help, haven't noticed text reflowing issues.

It's not bad, a little awkward getting used to:

- you might want a plugin to give you a "persistent" terminal across all tabs

- I still haven't found a way to clear scroll back while a command is running

- I had to set up mappings for easier exiting terminal mode (c-\ c-n really sucks)

- I had to set up events so whenever a terminal buffer is focused it immediately enters insert mode. While I love vim, I've never wanted modal editing in a terminal

10000truths

Sounds like a feature-complete successor to libtmt:

https://github.com/deadpixi/libtmt

AceJohnny2

> excellent feature compatibility such as parsing Kitty Graphics Protocol or Tmux Control Mode, and more

Oh oh oh!!!

> https://github.com/ghostty-org/ghostty/issues/1935

awww...

(while ghostty can parse Tmux Control Mode stuff, it doesn't actually implement the full feature. My dependence on iTerm2 remains...)

mitchellh

Ghostty has the capability to parse Tmux control mode (and this blog post is about libghostty-vt). Ghostty the GUI is missing the capability to map that to GUI elements. But Ghostty understands Tmux control mode today: https://github.com/ghostty-org/ghostty/blob/main/src/termina...

vinceguidry

Really looking forward to this, writing my own personal editor in Ruby and not having a library for parsing terminal input is leading me to write my own kitty keyboard protocol parser (which ghostty implements) and having to hand-code lookup tables is driving me batty. I really don't like the idea of using an existing TUI framework as none of them actually implement the kitty protocol.

* https://sw.kovidgoyal.net/kitty/keyboard-protocol/#

tennysont

Interesting!

The nix package for ghostty is broken/unavailable on MacOS at the moment, but installing the brew cask (`brew install --cask ghostty`) and a basic config file:

```

font-family = Monaco

theme = dark:Catppuccin Frappe,light:Catppuccin Latte

```

Got me almost everything I used from iTerm2. Nerdfont just worked (in iTerm I think you have to use the `Use a different font for non-ASCII text` setting)