Claude Code /theme: 6 Built-in Looks for Your Terminal
Table of Contents
Why /theme
Claude Code defaults to a dark theme. But not everyone uses a dark terminal — some prefer light backgrounds, some have color vision deficiencies, and some terminals only support 16 colors.
/theme lets you switch themes instantly, adapting Claude Code’s colors to your terminal environment.
What Is /theme
/theme is Claude Code’s theme switching command. It opens an interactive picker that lets you preview and select a theme.
/theme
The selected theme takes effect immediately and is saved to your global config (~/.claude/), applying across all projects.
7 Theme Options
| Option | Display Name | Description |
|---|---|---|
auto | Auto (match terminal) | Automatically matches terminal dark/light mode |
dark | Dark mode | Dark theme (default) |
light | Light mode | Light theme |
dark-daltonized | Dark mode (colorblind-friendly) | Dark, colorblind-friendly |
light-daltonized | Light mode (colorblind-friendly) | Light, colorblind-friendly |
dark-ansi | Dark mode (ANSI colors only) | Dark, 16 colors only |
light-ansi | Light mode (ANSI colors only) | Light, 16 colors only |
Three categories:
- Standard themes (dark / light): Use 24-bit RGB true color, ideal for modern terminals
- Colorblind-friendly themes (daltonized): Optimized for deuteranopia (red-green color blindness), replacing red/green contrasts with blue and yellow
- ANSI themes: Use only the 16 standard ANSI colors, compatible with older terminals and environments without true color support
How Auto Mode Works
When you select auto, Claude Code detects whether your terminal has a dark or light background:
Method 1: Environment Variable
Reads the $COLORFGBG variable (set by iTerm2, Konsole, and similar terminals), formatted as foreground;background (ANSI color indices). Background 0-6 or 8 is classified as dark; 7 or 9-15 as light.
Method 2: OSC 11 Query
Sends an OSC 11 escape sequence to the terminal to retrieve the background RGB value, then calculates luminance using the ITU-R BT.709 formula:
luminance = 0.2126 × R + 0.7152 × G + 0.0722 × B
Luminance > 0.5 → light theme, otherwise → dark theme.
What Themes Affect
Each theme defines 60+ color values, covering nearly every UI element in the terminal:
| Category | Includes |
|---|---|
| Brand colors | Claude’s signature orange rgb(215,119,87) |
| Text | Foreground, inverse, inactive text |
| UI elements | Permission prompts, Plan mode, prompt borders |
| Semantic colors | Success (green), error (red), warning (yellow) |
| Diff | Added lines, removed lines, highlighted words |
| Agents | Sub-agent colors (red/blue/green/yellow/purple/orange/pink/cyan) |
| Selection | Text selection background |
Some specific comparisons:
| Property | Dark | Light |
|---|---|---|
| Text | rgb(255,255,255) white | rgb(0,0,0) black |
| Success | rgb(78,186,101) bright green | rgb(44,122,57) dark green |
| Error | rgb(255,107,128) bright red | rgb(171,43,63) dark red |
| Added line bg | rgb(34,92,43) dim green | rgb(105,219,124) bright green |
| Removed line bg | rgb(122,41,54) dim red | rgb(255,168,180) bright pink |
Colorblind-friendly themes differ by replacing confusing red/green pairings with blue and yellow/orange alternatives.
Preview Mechanism
The /theme picker doesn’t require “select then see” — it supports live preview:
- Move the cursor to a theme and the terminal switches to it immediately
- Press Enter to confirm and save
- Press Escape to cancel and restore the original theme
You can freely browse all themes without worry — cancel reverts everything, no configuration is changed.
Configuration Storage
Theme settings are saved in global config, effective across all projects. You can also set it directly via the /config command:
/config set theme light
Supported values: auto, dark, light, dark-daltonized, light-daltonized, dark-ansi, light-ansi.
Default is dark.
Note for Apple Terminal Users
Apple Terminal (macOS built-in) has poor support for 24-bit RGB escape sequences. If you use Apple Terminal, Claude Code automatically downgrades to 256-color mode.
Recommendations:
- If colors look off, try the
dark-ansiorlight-ansitheme - Or switch to a terminal with true color support like iTerm2, Warp, or Kitty
Difference from /color
Claude Code also has a /color command, which only changes the Agent identifier color (the colored marker next to sub-agent names) without affecting the overall theme.
/theme→ Changes the global color scheme/color→ Only changes the Agent identifier color
Final Thoughts
/theme is a small command, but it solves a real problem: making terminal colors stop hurting your eyes.
The colorblind-friendly and ANSI-compatible theme variants especially show attention to different user groups. Not everyone uses the latest terminal, and not everyone can distinguish red from green.
A great tool isn’t just powerful — it’s comfortable for everyone to use.
Related Articles
Claude Code Agent Loop: Dissecting the Heart of an AI Coding Assistant
How does Claude Code understand your requests, invoke tools, and self-recover step by step? A source-code deep dive into the Agent Loop's core architecture — streaming responses, parallel tool execution, auto-compaction, and error recovery.
Claude Code settings.json Explained (1): Where Config Files Live and Who Wins
A complete guide to Claude Code's configuration file system — five config sources, their file paths, priority rules, array merging vs value overriding, and enterprise managed settings delivery.
Claude Code settings.json Deep Dive (Part 2): The Permissions System
A thorough breakdown of Claude Code's permissions configuration — allow/deny/ask rule arrays, wildcard syntax, MCP tool permissions, defaultMode options, and additionalDirectories.
Claude Code settings.json Deep Dive (Part 3): The Hooks System
A thorough breakdown of Claude Code's hooks configuration — four hook types, core events (PreToolUse/PostToolUse/Stop/Notification), stdin/stdout protocol, exit code semantics, and practical examples.
Claude Code settings.json Deep Dive (4): env, Models, Auth, and Other Useful Fields
A comprehensive guide to the remaining settings.json fields in Claude Code — env variable injection, model configuration, authentication helpers, Git attribution, session cleanup, language and UI, thinking depth, auto-updates, memory system, and more.