Most of what Claude Code outputs is English. Tool call results, reasoning traces, permission prompts, multi-paragraph explanations — on a busy session my screen is maybe 20% syntax-highlighted code. The rest is prose I'm reading at body size for hours at a stretch.
Every terminal theme I tried was tuned for the wrong thing: contrast decisions optimized for scanning identifiers, accent stacks built around keywords, backgrounds chosen to make def pop. Nobody had tuned for comfortable sustained reading of paragraphs.
So I built klein-blue — four Terminal.app themes anchored to Yves Klein's IKB pigment, verified with the APCA Lc contrast metric against specific gates per text role: body text ≥90 Lc, subtle text ≥75, muted ≥45, accents ≥60. The strictest variation, Klein Void Prot, is the only one where every accent slot passes those gates.
The hardest constraint was IKB itself. Pure International Klein Blue on a dark ground measures Lc -12 on APCA — effectively invisible as text. That's a problem when the whole aesthetic premise is the pigment. The fix: split across two ANSI slots. Pure IKB (002FA7) goes into ansi:blue, which Claude Code uses for decorative borders and UI chrome — never body text. A lifted Klein-family blue, A8BEF0, goes into ansi:blueBright, which Claude Code maps to permission-prompt text you actually have to read.
The other differentiating moment between the four variations is ansi:redBright — the slot Claude Code uses for its claude-sand brand color. Klein Void Sand & Sea accepts it as a second hero alongside IKB. Klein Void Refined and Gallery neutralize it to avoid brand color competition with the blue.
# Install
git clone https://github.com/robertnowell/klein-void
cd klein-void && ./install.sh
# Then in Claude Code: /theme → dark-ansi
# (dark-ansi required — hardcoded RGB palette ignores ANSI themes)
Ships as .terminal profile files for macOS Terminal.app, with CommitMono-Regular (V1, V3) and IBM Plex Mono (V2, V4) installed to ~/Library/Fonts/. Rollback via restore.sh.
Top comments (0)