DEV Community

J Now
J Now

Posted on

Terminal themes assume you're scanning code. I'm reading paragraphs.

Six hours into a Claude Code session, I noticed I was squinting. Not at code — at tool output. Permission prompts. Reasoning blocks. The prose that fills every gap between commands.

Most terminal themes were built for syntax highlighting: reserve your brightest slot for keywords, your accent for strings, your muted tone for comments. That's a scanning workflow. Claude Code is a reading workflow. The two have different requirements.

So I built klein-blue — four Terminal.app themes tuned for body-size prose legibility over long sessions, anchored to Yves Klein's International Klein Blue.

The contrast story is the core of it. I used the APCA Lc metric instead of WCAG 2.1 ratios, because APCA accounts for spatial frequency — body-size text at 13–14px needs higher contrast than a large header at the same nominal ratio. The gate structure: body >= 90 Lc, subtle >= 75, muted >= 45, accent >= 60. Klein Void Prot (V3) is the only variation where every single accent slot clears those gates.

IKB itself — pure pigment, hex 002FA7 — fails as readable text on a dark ground. APCA scores it at Lc -12, which is effectively invisible. The workaround: split it across two ANSI slots. Pure IKB in ansi:blue for decorative borders and highlights where legibility isn't required. A lifted Klein-family blue (A8BEF0) in ansi:blueBright for permission-prompt text that actually needs to be read.

The ansi:redBright slot is where the four variations diverge. Claude Code maps that slot to its claude-sand brand color. Two variations neutralize it so IKB has no competition. Two accept it as a second hero — Sand & Sea being the explicit name for that choice.

# Install
git clone https://github.com/robertnowell/klein-blue
cd klein-blue && ./install.sh
# Then in Claude Code: /theme → dark-ansi
# Without that last step, Claude Code ignores the ANSI theme entirely
Enter fullscreen mode Exit fullscreen mode

One non-obvious requirement: Claude Code's /theme must be set to dark-ansi. The app ships with hardcoded RGB fallbacks and ignores your Terminal.app ANSI palette unless you opt into it explicitly.

Font files (CommitMono-Regular for V1/V3, IBM Plex Mono for V2/V4) install to ~/Library/Fonts/. Full rollback via restore.sh if it's not for you.

github.com/robertnowell/klein-blue

Top comments (0)