claude-code icon indicating copy to clipboard operation
claude-code copied to clipboard

[FEAT] Add support for custom terminal themes beyond built-in options

Open jd-smeltser opened this issue 7 months ago • 17 comments

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:

  1. Dark mode
  2. Light mode
  3. Dark mode (colorblind-friendly)
  4. Light mode (colorblind-friendly)
  5. Dark mode (ANSI colors only)
  6. 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.

jd-smeltser avatar May 25 '25 03:05 jd-smeltser

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:

  1. 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

  2. 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

  3. 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:

  1. Inherit terminal colors directly (respecting ANSI color definitions)
  2. Or provide a configuration option to disable Claude Code's color overrides
  3. 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

jd-smeltser avatar May 25 '25 04:05 jd-smeltser

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.

net avatar Jun 07 '25 15:06 net

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.

beyondoscar avatar Jun 10 '25 02:06 beyondoscar

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.

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.

jmpaz avatar Jun 26 '25 19:06 jmpaz

i would also like to see further flexibility in changing the looks of claude.

danbryan avatar Jul 05 '25 16:07 danbryan

who can we notify to bump prio on this...the current setup is not workable

Morriz avatar Jul 23 '25 20:07 Morriz

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!

rnmp avatar Jul 27 '25 15:07 rnmp

We've developed a tool called tweakcc which can be used to create custom Claude Code themes. You're welcome to try it out!

bl-ue avatar Aug 04 '25 14:08 bl-ue

I just used the Status Line builder to emulate Oh My Zsh with Agnoster. It does look great with the limited colour palette.

TheChasman avatar Sep 02 '25 20:09 TheChasman

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.

peterasorensen avatar Oct 06 '25 03:10 peterasorensen

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 avatar Oct 06 '25 09:10 erezschatz

@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.

Derjyn avatar Oct 27 '25 16:10 Derjyn

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.

github-actions[bot] avatar Dec 08 '25 10:12 github-actions[bot]

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.

jmpaz avatar Dec 08 '25 17:12 jmpaz

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.

ronload avatar Dec 10 '25 21:12 ronload