claude-themes
matcra587 · matcra587/claude-themes
A marketplace of UI themes for Claude Code, built from established palettes, allowing users to customize the interface with various theme families.
A marketplace of UI themes for Claude
Preview
What you can do with it
- Change the Claude Code interface to a dark theme like Dracula or Nord.
- Apply a light theme such as Solarized Light or Everforest Light.
- Customize your terminal's color scheme to match your preferred theme.
Safety check
Usable, but read the notes first.
- ●No clear license: check with the author before using it in a commercial product.
Automated scan of the repo files. Always review code you run.
From the README
Claude Themes
A marketplace of UI themes for Claude Code, built from established palettes rather than ad hoc color picks. Each theme family is a separate plugin — install only the ones you want.
Installation
Browse and install from the marketplace UI:
/plugin
Or install a family directly:
/plugin install <family>@matcra587/claude-themes
Plugins
| Plugin | Themes |
|---|---|
base16 | Ocean, Eighties, Cupcake (+ ANSI each) |
catppuccin | Latte, Frappé, Macchiato, Mocha (+ ANSI each) |
dracula | Dracula (+ ANSI) |
everforest | Everforest Dark, Everforest Light (+ ANSI each) |
github | Dark Default, Light Default, Dark Dimmed (+ ANSI each) |
gruvbox | Gruvbox Dark, Gruvbox Light (+ ANSI each) |
monokai | Classic Monokai (+ ANSI) |
monokai-pro | Monokai Pro (+ ANSI) |
nord | Nord (+ ANSI) |
one-dark | One Dark, OneHalf Dark, OneHalf Light (+ ANSI) |
rose-pine | Rosé Pine, Moon, Dawn (+ ANSI each) |
solarized | Solarized Dark, Solarized Light (+ ANSI each) |
tokyo-night | Tokyo Night (+ ANSI) |
Each plugin's README lists its specific themes and their base values.
ANSI variants
Every family ships each theme in two forms: a regular variant built from the palette's RGB values, and an (ANSI) variant whose colors are ANSI slot names that resolve through your terminal's palette at render time. An ANSI variant assumes your terminal runs that family's terminal port — pick it when the two match, and the whole UI draws from the palette your terminal already defines.
The base value also decides code-block syntax highlighting, which custom themes cannot override. Claude Code picks one of three syntax palettes:
basecontains"ansi"→ syntax highlighting uses the terminal's ANSI palette- otherwise
basecontains"dark"→ a hardcoded Monokai-style palette - otherwise → a hardcoded GitHub-light palette
So regular variants (base: "dark"/"light") always render Monokai-style or GitHub-light code blocks, whatever the family — whilst (ANSI) variants (base: "dark-ansi"/"light-ansi") unify UI chrome and code-block syntax under the one palette your terminal supplies.
When to use which
- Regular variants — themed UI with Claude Code's default code-block colors; works in any terminal.
- (ANSI) variants — your terminal already runs the family's port (e.g. terminal on Catppuccin Mocha + Claude Code on Catppuccin Mocha (ANSI)); everything renders from one palette.
Each family's ANSI mapping is derived from its terminal port. Flavours that share one port mapping (catppuccin's dark flavours, for example) end up with identical ANSI file content — the mapping decides that, not a shared template.
Theme schema
Each theme is a JSON file in its plugin's themes/ directory, validated against schemas/theme.schema.json.
[!NOTE] Some themes intentionally use sparse overrides. A slot with no clean match in the source palette is left to Claude's fallback rather than guessed.
Contributing
New families, ANSI variants, and semantic-mapping fixes are welcome — light themes especially. See the contributing guide for palette sourcing, token mapping, the audit checklist, and local validation.