[FEAT] Add support for custom terminal themes beyond built-in options
Environment
- Platform: Anthropic API
- Claude CLI version: 1.0.3 (Claude Code)
- Operating System: macOS Sonoma 14.6.1
- Terminal: Rio Terminal
Feature Request
Currently, Claude Code only offers 6 pre-defined theme options:
- Dark mode
- Light mode
- Dark mode (colorblind-friendly)
- Light mode (colorblind-friendly)
- Dark mode (ANSI colors only)
- Light mode (ANSI colors only)
These limited options break custom terminal themes that users have carefully configured.
Proposed Solution
Add support for custom theme configuration that allows users to:
- Define their own color values for all UI elements
- Import/export theme configurations
- Use terminal's native colors without override
- Potentially support popular terminal theme formats (base16, iTerm2, etc.)
Use Case
Many developers spend time customizing their terminal themes for optimal readability and aesthetics. The current limited theme options in Claude Code override these customizations, forcing users to choose from pre-defined themes that may not match their terminal setup.
Additional Context
Related to #1185 (limited theme options) and #1076 (auto-detect theme), but this specifically requests full customization capability rather than just additional pre-defined options.
I'd like to add some visual context to illustrate why custom theme support is crucial for modern terminal workflows.
The Problem: Dynamic Theme Switching
Modern terminals like Rio, Warp, and others support dynamic theme switching based on system appearance or time of day. When Claude Code's limited theme options conflict with these custom terminal themes, it creates significant usability issues.
Visual Demonstration
Here's a real example from my workflow:
-
Memory feature with theme mismatch - When using a dark terminal theme but Claude Code is still in light mode, the memory feature becomes illegible: !Memory feature illegible with theme mismatch
-
The problem: Illegible diffs - When Claude Code shows diffs, the bright green/red colors clash terribly with the dark background, making code nearly impossible to read: !Illegible diff with bright colors on dark background
-
The workaround: Manual theme switching - After manually switching Claude Code's theme, the same diff becomes readable: !Same diff after manually switching Claude Code theme
Impact on Workflow
This issue significantly disrupts workflow because:
- Dynamic switching breaks constantly: When my terminal automatically switches themes (e.g., dark mode at night), Claude Code's fixed theme suddenly becomes unreadable
- Manual intervention required: I have to stop my work to manually adjust Claude Code's theme multiple times per day
- No perfect match: None of the 6 pre-defined themes properly match my terminal's custom color scheme
Proposed Solution
Allow Claude Code to:
- Inherit terminal colors directly (respecting ANSI color definitions)
- Or provide a configuration option to disable Claude Code's color overrides
- Or support custom theme definitions via configuration file
This would ensure Claude Code integrates seamlessly with any terminal setup, whether using built-in themes, custom themes, or dynamic theme switching.
Related issues: #1185, #1076, #1148
This is definitely needed.
I also have the same problem with claude code being the only terminal program I use which breaks when the system appearance switches.
Terminal programs should always use the fg, bg, and 1-6 color codes by default (as color codes 0 (black), 7 (white), and 8-15 aren't reliable across popular themes, and should support customization using color codes 0-255.
Definitely need this! Being unable to edit the default themes / opt to use current theme seems like a major oversight against what is generally awesome UX.
I also have the same problem with
claude codebeing the only terminal program I use which breaks when the system appearance switches.Terminal programs should always use the fg, bg, and 1-6 color codes by default (as color codes 0 (black), 7 (white), and 8-15 aren't reliable across popular themes, and should support customization using color codes 0-255.
I agree with @net; in fact, I think this is all that's needed.
Use terminal's native colors without override
Modern terminal emulators allow users to conveniently specify 8-16 colors for use across CLIs/TUIs, sometimes shipping with a TUI to select from a large set of standardized colorschemes. Many (eg Kitty, Ghostty) have some form of native dark + light theme support to react to the system's light/dark mode transition.
A new default "system" or "terminal colors" theme in addition to the existing hardcoded color themes would allow users to set colors for their entire shell environment in one place. This has been my biggest pain point with Claude Code since first trying it, personally.
i would also like to see further flexibility in changing the looks of claude.
who can we notify to bump prio on this...the current setup is not workable
Would love to see system added as an option too! I've gotten to a point where I use claude locally even for non coding tasks and I love using both dark+light themes and this is the only thing missing in my setup!
We've developed a tool called tweakcc which can be used to create custom Claude Code themes. You're welcome to try it out!
I just used the Status Line builder to emulate Oh My Zsh with Agnoster. It does look great with the limited colour palette.
The MacOS auto appearance by time of day is also making this quite annoying on my end. Constantly switching between light and dark mode in my claude editor.
I don't know why do anyone complain, at least you have a choice, the VSCode extension just assumes everyone uses dark mode, no option to change. I'm actually surprised they thought of giving users options on terminal.
@erezschatz - That isn't exactly a contribution to this feature request. That line of thinking would also have a statement like this under its umbrella "I don't know why people need Claude Code in the CLI, you can use it in the web interface". I've tested several other AI CLI tools, for example, OpenCode. Every single one except Claude either respects the underlying terminal's theme, has a configurable theme/scheme, or a combination thereof.
Outside of all the already mentioned tangible and objective reasons for a custom theme, here is another one to add to the list: community. Any app/environment/toy that has custom theme configs, skins, whatever it may be... gives rise to the community sharing with each other and interacting. That's always a good thing - for the creators, for the users, and of course for the overlords of the thing being themed.
This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.
This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know.
the issue has not yet been addressed.
All that time spent on my nvim and wezterm setup, only for Claude Code to override it. As a CLI tool targeting developers, proper theme/color customization should be a basic feature.