A terminal-native setup for coding with an AI: Ghostty, tmux, Claude Code

The AI moved into the terminal, so the terminal is finally worth setting up properly. Three single-purpose tools, and the handful of settings that make them cooperate instead of fight.

For years my terminal was an afterthought, a black box I typed git commands into. Then the AI coding assistant moved into that same box, and suddenly the terminal was where I spent the day. So I finally set it up properly. The result is three tools that each do one boring thing well: Ghostty is the window, tmux keeps the work alive, and Claude Code is the pair programmer. The interesting part is not the tools, it is the few settings that make them actually cooperate.

Ghostty is the window

Ghostty is a fast, GPU-accelerated terminal, and most of my config is about removing friction. I run a Nerd Font so the powerline glyphs and the agent's little UI icons render instead of showing up as tofu boxes. The theme is a calm near-black with amber accents, picked to stay readable and colorblind-safe rather than to look like a hacker movie. New splits inherit the current folder, so I stop retyping the same cd. And a global hotkey drops a quake-style terminal down over whatever I am doing, which is perfect for a quick command without breaking focus.

There is some pure eye candy too, a subtle animated cursor trail, and I am not going to pretend it makes me faster. It just makes a tool I stare at all day feel like mine, and that turns out to be worth something.

tmux keeps the work alive

tmux is the multiplexer that runs inside the terminal, and its real value alongside a long-running agent is persistence. The work is a session that keeps going whether or not the window is in front of me. I can split a pane to watch a log next to the agent, detach and come back later, and pull output straight into the clipboard with a vi-style copy mode. Splits keep the current folder, windows renumber themselves when I close one, and the escape key is snappy so typing never feels laggy.

Claude Code is the pair

The agent itself lives in a pane like any other program. It reads the code, runs commands, and edits files while I watch the diffs go by. The one setting that matters here is telling the terminal to treat the left Option key as a proper Alt, so the agent's keyboard shortcuts fire. The right Option key still types special characters, so nothing is lost in the trade.

The glue is a handful of settings

Here is the part nobody warns you about: stack these three tools naively and small things break. tmux will happily swallow the agent's progress bar, eat Shift+Enter, and mangle the colors. Four settings fix almost all of it, and they are the reason the setup feels seamless instead of fighting itself:

The tools are boring on their own. The whole trick is a few lines of config that let three single-purpose programs behave like one keyboard-driven workspace.

None of this is exotic. It is a terminal, a multiplexer, and an assistant, wired together so the seams disappear. But that is the point. When the environment stops fighting you, the only thing left to think about is the work.