Ghostty

Ghostty

After using Terminal.app for over a decade, I recently made the switch to Ghostty, a terminal emulator, and I love it.

For a few years, I used iTerm2 and dropped it to switch back to Terminal.app as I never liked how sluggish it felt. Now, I feel the same about Terminal. Terminal feels sluggish compared to Ghostty. This thing is blazin’ fast. It uses GPU to render and IT SHOWS!

Ghostty is a new side project from Mitchell Hashimoto, the guy behind a ton of high quality software and a company named after him, HashiCorp. If you use the Infrastructure-as-Code method, you’ve probably used their tools or at the very least heard of them. I’ve been following this project since he announced it on Twitter in 2023. He’s apparently been working on it since 2021. The moment he announced that it was available for public use, I jumped on it and started using it. After a little over a week of using it, I can say that I love it. I’m very impressed and truly inspired. This is a very well done.

It took me two days to switch from Terminal.app to Ghostty on my work computer. I vetted it for two days on my personal Mac and I loved it. I played around with a few configurations and it’s been exciting.

Configuration

Out of the box, you barely need any configuration changes. Maybe the theme. You can preview them using the following command –

ghostty +list-themes
view raw ghostty.sh hosted with ❤ by GitHub

Ghostty’s configuration is stored in a separate config file. I love the fact that I can finally have my terminal configuration stored in my dotfiles repo. The Ghostty docs aren’t the greatest, given how new some of the syntax is, but it’s thorough. You can either check the docs online or the CLI using the following –

ghostty +show-config –default # pass in –docs if you want the documentation too

Keyboard bindings

If you’ve used something like iTerm before, you probably know how panels can be resized using the keyboard shortcuts. Ghostty has the feature too.

Configuring the key bindings is pretty straightforward. You can put them in the same config file.

Quick Terminal

Ghostty, like iTerm, has the Quick Terminal feature where you can bind a global shortcut to quickly dropdown a terminal window for you to work off of and once you’re done, send it away.

Custom Shaders

Ghostty supports custom shaders and it actually performs well with them. I’ve seen some crazy ones out there with water, fire, confetti, fireworks, etc. I will NEVER use any of these besides the default one. I just like to keep it minimalistic. That’s how I’ve had my Terminal.app configured too.

Search

One of the key features that Ghostty lacks is Search. For now, you’d have to rely on a terminal multiplexer like tmux and search through the buffers. However, this is something that’s being worked on and should drop in one of the later releases.

Performance

In terms of performance, it is faster than Terminal.app. It feels snappy and my god, tailing logs and printing text from query logs is mind blowingly fast.

I haven’t yet tried vim/neovim on Ghostty. I will give it a try later.

I’ve also been playing around with the font features offered by Ghostty. I’ve configured it to pretty much mimic my VS Code setup.

You can actually look at the Ghostty console, like the one you have in a browser. You use the `CMD + SHIFT + I` keyboard shortcut to open it and it looks something like this –

Ghostty with console
Ghostty with the perf console

My recommendation

Ghostty seems quite stable. It’s not as feature rich as iTerm, but it’s a great replacement. iTerm has some crazy features like the time travel, password manager, etc, which I’ll never use. It just feels out-of-place having those features baked into a terminal (emulator).

From my 10 days of experience, I highly recommend Ghostty as a terminal replacement. In the recent times, I haven’t been as excited using a piece of software as I’ve been using Ghostty. Check it out!


Comments

2 responses to “Ghostty”

  1. Muhammad Usman Avatar
    Muhammad Usman

    Have you tried WezTerm? It starts out very barebones and the config is done using lua. I’ve been using it for about 6 months with no complaints. I saw Ghostty recently and I’ve been tempted to give it ago but WezTerm works fine for my daily workflows.

    1. I haven’t tried it but I follow Wez and his work. If you do plan on trying Ghostty, LMK how you like it compared to WezTerm.

Comments

Discover more from Mohnish Thallavajhula

Subscribe now to keep reading and get access to the full archive.

Continue reading