[FEATURE] Add "Auto" Theme Mode to Follow OS Preference

Resolved 💬 2 comments Opened Jan 8, 2026 by vaporwavie Closed Jan 8, 2026

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

  1. Startup: On launch, detect OS theme and apply appropriate Claude Code theme
  2. 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/light with 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

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗