DEV Community

J Now
J Now

Posted on

Terminal themes optimize for code. Claude Code isn't code.

Most terminal color schemes were built around syntax highlighting — keywords, strings, operators, brackets. That's the right problem to solve if your screen is 80% code. Mine isn't. Tool output, reasoning traces, permission prompts, explanations. Paragraphs. I was reading prose in a theme that had never considered prose.

I built klein-void (four variations) to fix that for my own setup, anchored on Yves Klein's IKB pigment — a specific blue I wanted to look at for hours.

The core problem with borrowing a syntax-first theme: contrast metrics like WCAG 4.5:1 were built for UI buttons, not body text at terminal font sizes. I switched to APCA, which weights contrast differently depending on text size and polarity. The gates I set: body text Lc >= 90, subtle text Lc >= 75, muted Lc >= 45, accents Lc >= 60. The strictest variation, Klein Void Prot (V3), is the only one where every accent slot clears those gates.

The immediate problem with IKB as a text color: it fails APCA as foreground on dark ground (Lc -12, effectively invisible). So it's split. Pure IKB goes into the ansi:blue slot, which Claude Code uses for decorative borders and highlights — things you glance at, not read. A lifted Klein-family blue (around Lc 75) goes into ansi:blueBright, which Claude Code uses for permission-prompt text you actually have to read.

That slot distinction is the whole design. Claude Code maps its UI roles onto specific ANSI positions. If you don't know which slots it uses for tool output vs. reasoning vs. permission prompts, you're tuning blind.

One other gotcha worth documenting: Claude Code's /theme picker must be set to dark-ansi. If it's set to anything else, Claude Code ignores your Terminal.app ANSI palette entirely and falls back to its hardcoded RGB values. The theme does nothing.

# install
bash install.sh

# rollback
bash restore.sh
Enter fullscreen mode Exit fullscreen mode

Ships as .terminal profile files for macOS Terminal.app. Four variations depending on how much brand blue you want: Klein Void Refined (balanced), Sand & Sea (accepts Claude's sand color as a second hero), Prot (every contrast gate passes), Gallery (maximum void, minimum color). Two font options — CommitMono-Regular for V1/V3, IBM Plex Mono for V2/V4 — both install to ~/Library/Fonts/. MIT licensed.

https://github.com/robertnowell/klein-void

Top comments (0)