[FEATURE] Add "Auto" Theme Mode to Follow OS Preference
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Claude Code currently requires manual theme switching via the /theme command. Users who:
- Use macOS auto-appearance scheduling (e.g. light by day, dark by night)
- Manually toggle system appearance based on ambient lighting
- Want consistent theming across all development tools
...must manually run /theme each time their OS theme changes.
Proposed Solution
Add an "Auto" (System) theme option that automatically detects and follows the operating system's light/dark theme preference.
Behavior
- Startup: On launch, detect OS theme and apply appropriate Claude Code theme
- Real-time: Listen for OS theme changes during the session and update dynamically. I believe this would be the ideal scenario.
Configuration
Add to settings:
{
"//": "auto | light | dark",
"theme": "auto"
}
TUI Changes
Update /theme picker to include:
- Auto (System) - follows OS preference
- Light
- Dark
_Optionally show effective theme: "Auto (Dark)" when system is in dark mode_
Alternative Solutions
_No response_
Priority
Low - Nice to have
Feature Category
Interactive mode (TUI)
Use Case Example
I have a Ghostty config that dynamically sets the shell color scheme based on the OS decsision. Also affects neovim. For CC, I have to manually run /theme and change for existing Claude sessions.
Additional Context
Many terminal applications support this pattern:
- VS Code:
"window.autoDetectColorScheme": true - iTerm2: "Use different profiles for light/dark mode"
- Vim/Neovim:
set background=dark/lightwith autocmd on OSAppearanceChanged
Caveats
- Terminal background mismatch: Light terminal on dark OS (or vice versa) - may need terminal background override
- SSH/Remote sessions: Fall back to explicit setting when OS detection unavailable
- tmux/screen: Document behavior in multiplexer environments
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗