In December 2024 the new terminal emulator ghostty created by mitchellh (founder of Hashicorp) was released.
I originally had the (incorrect) assumption that it was similar to other “new” terminal emulators that require a network connection, were built in javascript or had some sort of “AI” features wedged in.
What caught my eye though when reading About Ghostty, was the focus on the following,
This quote by mitchellh and finally convinced me to give it a try,
I like to imagine that if stores like CompUSA still existed, Ghostty 1.0 would be boxed, shrink-wrapped, and on the shelf ready for purchase (but also free and open-source).
Installing on my MacOS and Linux laptops was relatively straightforward, although for my Linux Mint laptop I had to install a .deb from a 3rd party repo. What I first noticed was it’s sane defaults, it just worked out-of-the-box and I could just start using it. It was snappy too, especially compared to Terminal.app on MacOS.
What really hooked me was finding the built-in themes, including my current favorite, Tokyo Night. Not only were these built into ghostty, but there was an interactive preview feature with the ghostty +list-themes
command.
It was a lot of fun previewing themes with zero friction of trying them out, unlike other terminal emulators where you have to change a config and then reload it. In addition, the theme
options can set a theme for both light and dark modes, dynamically switching depending on your OS setting. I like to have a “light” OS theme during the day and a “dark” theme during the night and this was a feature I haven’t seen in other terminal emulators.
My ghostty configuration is relatively small, with a few changes for how I like my terminal emulator,
~/.config/ghostty/config
#Font
font-family = "TX-02"
font-size = "16"
#Terminal settings
term = "xterm-256color"
#Visuals
theme = "light:tokyonight-day,dark:tokyonight"
background-opacity = .9
background-blur-radius = 20
selection-invert-fg-bg = true
bold-is-bright = true
minimum-contrast = 2
#Cursor
cursor-style = block
cursor-style-blink = true
cursor-invert-fg-bg = true
cursor-opacity = .8
shell-integration-features = no-cursor
I’ve always though it was cool that some terminals could display graphics using sixels, but support in Terminal.app was never there. Ghostty doesn’t support sixels either, but does support the Kitty Graphics Protocol, which is even better as it’s a modern library and in active development.
This lets terminals tools like timg
, mpv
and neofetch
display graphics right in the terminal.
I’ve been using ghostty for the past two weeks on all my systems and I’ve really enjoyed it. It performs much better than Terminal.app on MacOS, which feels extremely sluggish in comparison now.
That’s not to say I haven’t had any issues,
vim
to switch out of insert modeThese aren’t enough to keep from using ghostty, and I am looking forward to what future releases have in store.