We’re seeing something of a terminal emulator renaissance of late, with developers eager to reimagine, rethink, and rewire the humble console to leverage modern hardware, GPU acceleration, containerised workflows, and (in some cases) AI/LLMs.
Ghostty, a new open-source and cross-platform terminal application created by Mitchell Hashimoto (co-founder of HashiCorp) is the latest to join the fray.
Hashimoto’s says he “set out to build a terminal emulator that was fast, feature-rich, and had a platform-native GUI while still being cross-platform.”
The first public release materialised over Christmas, rather like a festive Dickensian spook seeking to give us a glimpse into the future. Base on a play with this initial offering, it certainly seems promising.
‘Platform-native GUI’ is an important USP. Other cross-platform terminal tools, like Warp, and command prompts built inside IDES opt for non-native or custom web-based UIs, often out of coding expediency, predictability, and feature parity.
Not so with Ghostty.
On Linux, Ghostty‘s GUI is written in Zig and uses GTK4/libadwaita (on macOS the UI is written in Swift using AppKit and SwiftUI). It doesn’t merely look native, it is native – native windows, tabs, menus, in-app icons, system font, and so on.
This means Ghostty does not feel as decoupled from the system it interfaces with as some other modern terminals do.
Ghostty Terminal Features
Ghostty 1.0 is the first stable release following several months of (seemingly) YouTuber-only beta access which fuelled a hype cycle talking up its speed, its features, and its game-changing potential – whether it lives up to any of that is for you to decide.
It is certainly the case that this first public release feels fast, works well, and is feature-rich.
Of course, the rub with describing any terminal emulator as “featured” is most of said features are invisible, foundational things one will access, run, or do in a terminal rather than bells and whistles stuck on top of it, there to ogle!
On the subject of ogling, Ghostty looks a lot like GNOME Terminal and, in many ways, feels like it too. It could easily function as a drop-in replacement – though whether that’s a compelling statement is, again, for you to decide.
I can say Ghostty feels fast and responsive when working with commands, tools, and processes. The fact it plumbs in support for an array of capabilities that developers who make awesome CLI apps is sure to be appreciated too.
Ghostty 1.0 features at-a-glance:
- Fast startup/launch times
- Support for multiple windows, tabs, and split panes
- macOS platform features: Quicklook, secure input API, etc
- Linux: GTK single app process, primary clipboard, IME input, etc
- GPU-accelerated rendering (OpenGL on Linux, Metal on macOS)
- Rich theming (100 built-in themes, plus supports custom ones)
- Uses regular system keyboard shortcuts
- Automatic shell integration for
bash
,zsh
,fish
, andelvish
- Complex prompt redrawing on resize
- Working directory reporting
- Active process detection
- ‘Programmatic italicisation’ (i.e., fake italics if needed)
- Xterm compatibility
- Custom shader support
- Ligature and variable font support
- Grapheme clustering
- Kitty graphics protocol
Unlike other nascent alternatives, Ghostty requires no configuration to begin using it – nor a login (tsk, Warp).
There is an editable configuration file (can be opened from the app menu) users can use to control, adjust, and disable features, behaviours, keybindings, etc.
Finally, the name Ghostty is not a trademark Joey Sneddon typo: A tty
is the virtual console you can open on Linux distributions by pressing ctrl + alt + f1 (and other number function keys).
Install Ghostty Terminal on Ubuntu
Interesting in trying this phantasmic new GPU-accelerated console? If you’re on macOS it’s easy: download the official, ready-to-run binary from the website.
On Linux things are trickier.
There is an official Ghostty package available for Arch Linux users (in ‘Extra’), a Nix flake for those who use container-based multi-package setups, and a community-maintained Copr so those on Fedora can fetch the latest build without much fuss.
The app is simply too new for distro maintainers to have started packaging it in their repos.
You can install Ghostty on Ubuntu (Linux Mint, Pop!_OS, etc) by compiling it from source code (see below) until an official (or unofficial) Flatpak, Snap, PPA/DEB, or AppImage appears.
Compile Ghostty source code on Ubuntu
Building software from source sounds frightening, but the reality is not nearly as scary.
First things first, go download Ghostty from Github from the releases page, then extract the ZIP, then open a new terminal window and cd
into the extracted directory.
Next, install these dependencies (required to build it):
sudo apt install libgtk-4-dev libadwaita-1-dev
Now install Zig 0.13 — and it must be v0.13, not a newer build! You can download a v0.13 binary from the Zig website (as a tarball, then extract to /opt
).
To cut out the fuss, you may prefer to use the Zig snap package (considered beta):
sudo snap install --beta zig --classic
Finally, you can proceed to build and install Ghostty locally using this command:
zig build -p $HOME/.local -Doptimize=ReleaseFast
I’m not sure if it’s because I used the Zig snap, but while the command successfully builds Ghostty it doesn’t install an app shortcut/launcher for it. The docs say to run sudo update-desktop-database
to make it show, but it didn’t.
What did work was building and installing Ghostty system-wide:
sudo zig build -p /usr -Doptimize=ReleaseFast
Whichever method you use, let the build process complete.
Once done, launch Ghostty from the application launcher.
I plan on using Ghostty as my default terminal for a while to properly assess its potential and see if it really does match the hype generated on YouTube.
Now that you know about it, and how to install it on Ubuntu, perhaps you’ll do the same? I’m keen to hear your thoughts on this apps, so don’t be shy in the comments!