Klein-blue terminal theme tunes ANSI colors for Claude Code prose
Developer J Now built klein-blue, four Terminal.app theme variations inspired by Yves Klein's IKB pigment, specifically tuned to the ANSI color slots Claude Code uses for prose, tool output, and permission prompts — not syntax highlighting.
Score breakdown
J Now built klein-blue, a set of four Terminal.app themes designed for reading Claude Code's prose-heavy output — tool traces, reasoning, and permission prompts — rather than traditional syntax highlighting. The core challenge was that pure IKB blue (Yves Klein's signature pigment) is effectively invisible as text on dark backgrounds, scoring APCA Lc -12. The solution splits blue across two ANSI slots: pure IKB goes to `ansi:blue` (used by Claude Code for decorative borders), while `ansi:blueBright` — mapped to permission-prompt text users must actually read — uses a lifted blue (`A8BEF0`) that clears the APCA body-text threshold of Lc >= 90. A critical setup requirement: Claude Code must be set to `dark-ansi` via the `/theme` picker, or it ignores the Terminal.app ANSI palette entirely.
J Now created klein-blue after spending hours daily reading paragraphs of English prose in a terminal theme built for code — keyword colors, string literals, diff output — none of which reflects how Claude Code actually uses color. Claude Code's output is dominated by tool results, reasoning traces, permission prompts, and explanations, so J Now built four Terminal.app theme variations around Yves Klein's IKB pigment, each mapped to the specific ANSI slots Claude Code actually uses.
The central design constraint was that pure IKB scores APCA Lc -12 against a dark background — not merely low contrast, but effectively zero.
The central design constraint was that pure IKB scores APCA Lc -12 against a dark background — not merely low contrast, but effectively zero. Rather than abandoning the pigment, klein-blue splits blue into two roles: pure IKB is assigned to `ansi:blue`, which Claude Code uses for decorative borders and structural highlights where legibility isn't required. The `ansi:blueBright` slot — which Claude Code maps to permission-prompt text users must actively parse — receives a lifted Klein-family blue (`A8BEF0`) that clears the APCA body-text gate of Lc >= 90. The four variations (Void Refined, Sand & Sea, Void Prot, Void Gallery) differ by font (CommitMono or IBM Plex Mono) and how they handle `ansi:redBright`, the slot Claude Code uses for its claude-sand brand color. Two variations neutralize that slot to keep IKB dominant; two accept it as a second hero color. Void Prot is the strictest variant, with every accent verified against per-role APCA gates: body >= 90, subtle >= 75, muted >= 45, accent >= 60.
Installation is handled by `install.sh`, which copies `.terminal` profiles and fonts to `~/Library/Fonts/`, with a `restore.sh` for rollback. One hard-won setup note: Claude Code must be switched to `dark-ansi` via the `/theme` picker before the theme takes effect — without that setting, Claude Code ignores the Terminal.app ANSI palette and falls back to hardcoded RGB values. The project is available at github.com/robertnowell/klein-blue.