The Complete Claude Code Terminal Setup (2026)
A nine-item checklist for setting up Claude Code properly: font, shell, CLAUDE.md, hooks, status line, MCP servers, notifications, and theme.
Most people install Claude Code, run it in whatever terminal was already open, and never touch a setting. It works. It works the way a car works when you never adjust the seat.
There are about nine things worth configuring. Together they take maybe an hour, and I would not go back. This is the checklist, in the order I would do it, with a link to the deeper post on each one so you can skip what you already know.
The ordering matters. Items one through four fix things you will otherwise fight daily. Five through nine make it yours.
1. Install a Nerd Font
Time: 5 minutes. Do this first.
If your prompt shows boxes, question marks, or blank gaps where icons should be, you do not have a Nerd Font. Claude Code's TUI, most modern prompts, and half the CLI tools you use draw glyphs that a standard font simply does not contain.
Grab one from the Nerd Fonts project and set it in your terminal. My picks:
- JetBrains Mono Nerd Font for the safest default. Tall x-height, unambiguous zero, comfortable at 13pt.
- Fira Code Nerd Font if you want ligatures.
- Hack Nerd Font if you want something denser.
On macOS the easy path is Homebrew:
brew install --cask font-jetbrains-mono-nerd-font
Then set it as your terminal's font. This is the single highest ratio of quality-of-life to effort in the whole list. Full walkthrough: how to install Nerd Fonts for Claude Code.
2. Sort out your shell
Time: 0 to 20 minutes.
Slightly deflating truth: your shell barely matters to Claude Code. The agent spawns its own subprocesses. Whether you run zsh, fish, or bash changes almost nothing about how the agent behaves.
It matters for you, in the moments between agent turns. zsh is the macOS default and has the biggest plugin ecosystem. fish has the best out-of-the-box autosuggestions. bash is the most portable. Pick on your own comfort and stop optimizing.
The one thing worth adding regardless: a fast prompt like Starship that shows git state without a delay. A slow prompt is genuinely irritating when you are alternating between reading the agent and typing commands. More detail in the best shell for Claude Code.
3. Write a real CLAUDE.md
Time: 30 minutes. Highest impact on output quality.
This is the one that actually changes what the agent produces. CLAUDE.md in your project root is context Claude Code reads on every session. It is where you put the things a new hire would need on day one and that no amount of reading the code will reveal.
What belongs in it:
- The commands. Build, test, lint, dev server. Exact invocations.
- Conventions that are not inferable from the code. Naming, error handling, what "done" means.
- Landmines. The file that looks dead but is not. The test that fails on purpose.
- Things you have already told the agent twice.
What does not belong: a directory listing, a restatement of the framework docs, or anything the agent can read from the code faster than from your prose.
Keep it under a couple hundred lines. A bloated CLAUDE.md burns context on every single session, and the fifteenth rule dilutes the first five. Deeper: CLAUDE.md best practices.
4. Turn on notifications
Time: 10 minutes. Fixes the most annoying failure mode.
Claude Code does not crash when it needs you. It waits, silently, possibly for a very long time, while you read something in another window.
The fix is a Notification hook. Minimum viable version, in ~/.claude/settings.json:
{
"hooks": {
"Notification": [
{ "hooks": [{ "type": "command", "command": "printf '\\a'" }] }
]
}
}
That is a terminal bell, which most terminals turn into a tab badge or a flash. Upgrade to an OS notification with different sounds for Notification and Stop and you will stop losing minutes to a stuck agent entirely. Full configs for macOS, Linux, and Windows: Claude Code notifications.
5. Configure the status line
Time: 15 minutes.
The status line is the strip Claude Code prints under your input. By default it is bare. Configured, it is the most useful glance in the workflow.
Point settings.json at a script:
{
"statusLine": {
"type": "command",
"command": "node ~/.claude/statusline.js"
}
}
Claude Code pipes session JSON to your script on stdin. Your script prints a string. That string is the status line.
If you only show two things, show the active model and the context budget. The model because it is easy to forget you are on Opus for a variable rename. The context budget because seeing it fill up is what makes you compact early instead of getting truncated mid-thought. Add git branch with a dirty marker if you want a third. Examples and troubleshooting: customizing your Claude Code status line.
6. Learn the hooks that matter
Time: 30 minutes.
Hooks are shell commands Claude Code runs on lifecycle events, declared in settings.json. Notifications are the obvious use, but they are not the only one.
The ones worth knowing:
| Hook | Good use |
|---|---|
Notification |
Alert when blocked on you |
Stop |
Alert when a turn finishes |
PreToolUse |
Guardrails. Block edits to files that should never change |
PostToolUse |
Auto-format after edits. Run the linter |
SessionStart |
Print project-specific reminders |
The PostToolUse auto-format hook is the underrated one. Let the agent write code however it writes code, then run your formatter automatically. You stop arguing with it about style entirely. Full reference: the Claude Code hooks guide.
7. Add two or three MCP servers, not twelve
Time: 20 minutes.
MCP servers give Claude Code access to things outside your filesystem: a database, a browser, an issue tracker, your docs.
The temptation is to install everything. Resist it. Every connected server puts its tool definitions into context, on every session, whether you use them or not. Twelve servers is a meaningful chunk of your context window spent describing tools the agent will never call.
Pick the two or three that match what you actually do. A database server if you write queries. A browser server if you build UI. A docs server if you work against an API you cannot remember. Then stop. Which ones and how to wire them: MCP servers for Claude Code.
8. Set up parallel sessions properly
Time: 10 minutes, once you need it.
The moment you run two Claude Code sessions against the same repo, you need git worktrees. Two agents in one directory will overwrite each other's edits and neither will notice.
git worktree add ../myapp-feature feature/thing
One checkout per session, one branch per session, shared .git. Merge normally at the end. This is a five-second habit that prevents a genuinely bad afternoon. The rest of the parallel workflow, including how many sessions is too many, is in how to run multiple Claude Code sessions at once.
9. Make it somewhere you want to sit
Time: however long you enjoy it.
Everything above is function. This last one is not, and I would still not skip it.
If you spend four hours a day watching an agent scroll code, the visual environment stops being decoration and starts being your workspace. A good color scheme with distinct ANSI colors makes diffs readable. A comfortable font size makes hour three tolerable. Contrast that does not fight you means fewer headaches.
At minimum: pick a proper terminal color scheme, check that bright black is visible against your background (dimmed TUI text depends on it, and when it disappears you will think the app is broken), and set your font size one notch larger than you think you need.
Beyond that, this is where MOLTamp fits, so discount appropriately. It is a free skinnable shell built specifically for running AI CLI agents. Skins go past colors to the whole interface: backgrounds, widget slots, music, visualizers. The tab system holds up to 50 sessions with per-tab attention badges that go amber when an agent needs input and green when it finishes, wired to the same Notification and Stop hooks from item four. There is a community gallery of skins, and the skinning docs if you want to build your own. A $10 unlock opens the marketplace. The app itself is free.
Or ignore all of that and pick Nord in whatever terminal you already have. That counts too. See Claude Code skins in 2026 for the wider picture.
The 20 minute version
If you do nothing else:
- Install JetBrains Mono Nerd Font.
- Write a 40 line CLAUDE.md with your build and test commands.
- Add a
Notificationhook that rings the bell.
That is 90 percent of the benefit for 20 percent of the effort. The rest can wait for a slow afternoon.
FAQ
What do I actually need to set up for Claude Code?
Strictly, nothing. It runs out of the box. The three that pay for themselves immediately are a Nerd Font, a real CLAUDE.md, and a notification hook so you know when the agent is blocked.
Does Claude Code need a special terminal?
No. It runs in any terminal that handles a TUI properly, which is all of them. Terminal choice affects your comfort over long sessions, not the agent's behavior.
What is the difference between hooks and the status line?
Hooks run commands when events happen, so they can alert you or enforce rules. The status line is a script that prints one line of session state under your prompt. Hooks act, the status line reports.
How long does a full Claude Code setup take?
About an hour for all nine items, and you can do it in pieces. The font, CLAUDE.md, and notification hook take 20 minutes together and cover most of the value.
Work down the list in order and stop wherever it stops feeling worth it. Nobody needs all nine. If you get through the first four and want the environment to feel like yours rather than like a default, MOLTamp is free and skins the whole shell around the agent.