DEV Community

J Now
J Now

Posted on

Reading terminal output for hours is a prose problem, not a syntax problem

Most terminal themes are built for code: dense token differentiation, high chroma, optimized for scanning short bursts across a dozen language constructs. Claude Code output is different — tool results, reasoning chains, permission prompts, explanations. Paragraphs. I was reading it for four to six hours a day and my eyes were done by afternoon.

klein-blue is four Terminal.app themes built specifically for that use case, anchored on Yves Klein's IKB pigment and verified for body-size prose legibility using APCA contrast.

Why WCAG fails here

WCAG 2.x luminance ratios are polarity-blind: same score whether you're reading light-on-dark or dark-on-light. APCA's Lc metric isn't. On dark terminals, the contrast curve for body-size text is steeper than WCAG implies, and colors that clear 4.5:1 can still be fatiguing over a long session.

Pure IKB makes this concrete. The pigment — a deep ultramarine blue — returns Lc -12 on a dark background. Effectively invisible as text. Beautiful as a border.

So it's split: ansi:blue carries pure IKB for decorative borders and highlights (Claude Code routes those here). ansi:blueBright carries a lifted Klein-family blue at Lc >= 90 — that's the slot Claude Code uses for permission-prompt text, so it has to be readable.

Per-role gates instead of one threshold

body      Lc >= 90
subtle    Lc >= 75
muted     Lc >= 45
accent    Lc >= 60
Enter fullscreen mode Exit fullscreen mode

Klein Void Prot (V3) passes all four strictly. The other variations make named tradeoffs — V2 (Sand & Sea) accepts Claude's redBright brand orange as a warm second hero alongside IKB. V4 (Gallery) strips to one blue for maximum void.

One prerequisite worth knowing

Claude Code uses a hardcoded RGB palette by default and ignores Terminal.app ANSI slots. The theme activates only when you run /theme inside Claude Code and select dark-ansi. Easy to miss.

MIT licensed. Install script, rollback script, Objective-C builder if you want to tweak values.

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

Top comments (0)