Skip to main content

Using Ghostty for the first time

Published:

5 min read

It’s 2026, a time for AI agents and AI tools like Claude Code and Codex CLI to be alive. I am using them every day and I find myself spending more time inside a terminal app rather than a code editor.

In the past, I’ve written about setting up and installing Oh My Zsh and using iTerm2 as my de facto terminal app. I’ve used iTerm2 as long as I can remember, probably around a decade. I have switched between different color schemes and configurations, even saved them in my dotfiles.

Recently, I’ve been hearing a lot about Ghostty, which is a new terminal app in town and is created by Mitchell Hashimoto (co-founder of HashiCorp). Everyone keeps saying it is minimal and fast. You had me at minimal.

Why I switched

iTerm2 is a great terminal but is a complete app that offers more settings than I need right now.

Ghostty seems the opposite. It requires one plain text file. Doesn’t provide a GUI settings panel. The default settings in Ghostty aren’t too bad. It all made sense when I first installed and ran the app on my Mac.

Another reason is that Ghostty is GPU-accelerated and noticeably snappier. Window launches feel instant. Scrolling through my conversations with Claude Code sessions feels smoother. These details add up when you are looking at and interacting with a terminal window for at least 1/3rd of your full day’s work. Maybe more on some days.

Getting Ghostty

Ghostty is available at ghostty.org. On macOS, download the .dmg from the website or install via Homebrew:

brew install --cask ghostty

Ghostty configuration

I was mind-blown when I found out that Ghostty uses a single plain text file for configuration. Press Cmd + , and the config file opens right inside the terminal. No settings GUI, no preferences panel with dozens of tabs. Just a text file.

An example of this is the terminal app theme. Ghostty ships with hundreds of built-in themes and does not require importing or downloading anything. All you need to do is mention the name.

theme = light:Gruvbox Light,dark:dracula

If you are like me and want to stick to one theme, you can define a single theme:

theme = Gruvbox Light

My complete Ghostty configuration

Here’s my complete Ghostty configuration. There is nothing fancy about it:

# Theme
theme = Gruvbox Light

# Contrast
minimum-contrast = 1.3

# Font
font-family = JetBrainsMono Nerd Font
font-size = 16
font-thicken = true

# Window
macos-titlebar-style = tabs
window-padding-x = 8
window-padding-y = 4
background-opacity = 0.96
background-blur = 10
unfocused-split-opacity = 0.6
window-padding-balance = true

# macOS
macos-option-as-alt = left

# Cursor
cursor-style = bar

# Mouse
mouse-hide-while-typing = true

That’s it! A few lines of configuration is all I need. Everything is documented in the official documentation, but here’s what the above configuration does:

Shortcuts to remember

Whenever you make a change to your configuration, always remember to press Cmd + Shift + , to reload your changes.

Splitting panes works by default. You can press Cmd + D for vertical splits and Cmd + Shift + D for horizontal ones.

Why minimal

I have seen many cool terminal configurations that are quite long and contain custom themes, and complex keybindings. I want to keep things minimal on my end because I have a minimal setup and using default keybindings are part of my muscle memory now. There are definitely things I can improve in near future, if I have to spend more time inside a terminal window. When a configuration gives me everything I need, there’s hardly any reason to make it complex.

This how my current Ghostty window looks like:

My current Ghostty window
Support me

Next Post
Slash pages you need for your blog

Aman Mittal author

I'm a software developer and technical writer. On this blog, I share my learnings about both fields. Recently, I have begun exploring other topics, so don't be surprised if you find something new here.

Currently, working on documentation at Expo.

Tech writing blog webring | Static.Quest webring