Custom theme set via project .claude/settings.local.json reverts to the default theme after /rename

Status Open
Maintainer reply None cached
Activity 2 comments · opened Jul 23, 2026

[BUG] Custom theme set via project .claude/settings.local.json reverts to the default theme after /rename

Environment

  • Claude Code v2.1.218 (also latest at time of writing)
  • Windows 11, Windows Terminal + Git Bash
  • Interactive TUI session

Description

A theme key in a project-scope .claude/settings.local.json pointing at a custom theme is honored at session start — the input border, session badge, and spinner render in the custom colors. But running /rename <name> mid-session makes those colors revert to the built-in default theme's accents for the remainder of the session. Starting a new session in the same directory restores the custom colors.

It looks like the title change triggers a theme re-resolution that only consults user-scope settings, dropping the project/local-scope theme layer that was applied at startup.

Steps to reproduce

  1. Create a custom theme ~/.claude/themes/demo-blue.json:
{
  "name": "Demo Blue",
  "base": "dark",
  "overrides": {
    "promptBorder": "#7aa2f7",
    "promptBorderShimmer": "#a8c3fa",
    "claude": "#7aa2f7",
    "claudeShimmer": "#a8c3fa"
  }
}
  1. Create C:\projects\demo-app\.claude\settings.local.json:
{
  "theme": "custom:demo-blue"
}

(user-scope ~/.claude/settings.json has "theme": "dark")

  1. Run claude in C:\projects\demo-app — the input border and spinner render in the custom blue. ✔
  2. Run /rename My Session.

Expected

The session is renamed; the active theme is unchanged.

Actual

The session is renamed, but the input border, badge, and spinner revert to the default dark theme's teal/orange. The custom theme stays inactive until the session ends; the next claude session in the directory is themed correctly again.

<img width="1095" height="501" alt="Image" src="https://github.com/user-attachments/assets/0d7ef754-5744-4436-b885-6820cf53580e" />

<img width="1093" height="498" alt="Image" src="https://github.com/user-attachments/assets/8b8a4f24-9235-472a-8c7c-cf07a22f3fc2" />

Notes

  • The theme key does not appear in the documented settings table, but it is clearly read from project scope at startup (and local scope correctly overrides user scope there). If per-project theme is intended to be supported, the /rename path should re-resolve it the same way startup does; if it is not intended, a docs note about its scope would help.

View original on GitHub ↗

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