Skip to content

Theming

Claudette ships with 14 built-in themes — built on the Claude Design token system — and supports custom themes you can create and share.

Open Settings > Appearance (or press ⌘/Ctrl + ,) and select a theme from the dropdown.

ThemeStyle
Default DarkClaudette’s signature theme — coral on warm charcoal (default)
Default LightCream paper with deep coral accents
JellybeansDark Vim-inspired palette with cool slate accent
High ContrastMaximum legibility with cyan accent
Rosé PineSoho-vibes dark with iris accent
Rosé Pine MoonRosé Pine on warmer navy base
Rosé Pine DawnRosé Pine light — cream parchment with iris accent
Solarized DarkSchoonover’s canonical dark with blue accent
Solarized LightSolarized inverted monotones with identical accents
BrinkMid-tone warm chrome with Ristretto-style gold accent
Jellybeans MutedSofter, desaturated take on Jellybeans
Midnight BlueCool blue-tinted dark theme
Warm EmberWarm amber-toned dark theme
SidekickShip Sidekick brand — deep navy with electric violet

Create your own themes by placing JSON files in:

~/.claudette/themes/

Each file must be valid JSON with the following structure:

{
"id": "my-custom-theme",
"name": "My Custom Theme",
"author": "Your Name",
"description": "A brief description of the theme",
"colors": {
"color-scheme": "dark",
"accent-primary": "#e07850",
"accent-primary-rgb": "224, 120, 80",
"app-bg": "rgb(28, 24, 21)",
"text-primary": "rgb(240, 235, 229)"
}
}
FieldTypeDescription
idstringUnique identifier (used internally)
namestringDisplay name shown in the theme picker
colorsobjectMap of CSS custom property names to values
FieldTypeDescription
authorstringTheme author name
descriptionstringBrief description
  • Maximum file size: 1 MB
  • File format: JSON (.json extension)
  • Custom themes with the same id as a built-in theme will override the built-in

Any property you omit inherits the value from the Default Dark theme. You only need to specify the tokens you want to change — a theme file containing a single accent override is valid and will render correctly, with every other surface falling back to the default palette.

You can customize any of the following 57 CSS custom properties.

PropertyDescription
color-scheme"dark" or "light" — controls native UI elements and syntax highlighting
PropertyDescription
accent-primaryPrimary accent color (e.g., #e07850)
accent-primary-rgbRGB values for opacity variants (e.g., 224, 120, 80)
accent-dimDimmed accent for less prominent elements
accent-bgTransparent accent background (e.g., rgba(224, 120, 80, 0.08))
accent-bg-strongStronger accent background
accent-glowGlow/shadow effect (e.g., 0 0 12px rgba(224, 120, 80, 0.25))
mascot-pinkSecondary brand pink used for the mascot and highlight accents
mascot-pink-dimDimmed mascot pink for subtler highlights
PropertyDescription
text-primaryMain text color
text-mutedSecondary text
text-dimTertiary text
text-faintVery subtle text
text-separatorSeparator/divider text color
PropertyDescription
app-bgMain application background
sidebar-bgSidebar background
sidebar-borderSidebar border color
chat-input-bgChat input field background
chat-header-bgChat panel header
chat-user-bgUser message bubble background
chat-system-bgSystem message background
PropertyDescription
terminal-tab-bgInactive terminal tab background
terminal-tab-active-bgActive terminal tab background
terminal-bgTerminal panel background color
terminal-fgTerminal text (foreground) color
terminal-cursorTerminal cursor color
terminal-selectionTerminal text selection background
PropertyDescription
hover-bgHover background
hover-bg-subtleSubtle hover background
selected-bgSelected item background
PropertyDescription
status-runningRunning/active agent color
status-idleIdle agent color
status-stoppedStopped/error color
PropertyDescription
badge-doneAgent finished badge color
badge-planPlan awaiting review badge color
badge-askAgent question badge color
PropertyDescription
diff-added-bgAdded line background
diff-removed-bgRemoved line background
diff-added-textAdded line text color
diff-removed-textRemoved line text color
diff-hunk-headerHunk header color
diff-line-numberLine number color
PropertyDescription
dividerDivider/separator lines
toolbar-activeActive toolbar button background
toolbar-active-textActive toolbar button text
error-bgError surface background
error-borderError surface border
error-hoverError surface hover state
overlay-bgScrim behind modals and popovers
overlay-bg-heavyStronger scrim for opaque overlays
shadow-smSmall box shadow
shadow-mdMedium box shadow
shadow-lgLarge box shadow
shadow-card-hoverCard hover shadow

Typography tokens are themeable but most themes leave them at the Default Dark stacks. Override them to ship a theme with its own typographic voice — user-level font preferences set in Settings > Appearance still take precedence over whatever a theme specifies.

PropertyDescription
font-sansUI sans-serif font stack (e.g., "Inter", system-ui, sans-serif)
font-monoMonospace font stack used by code blocks and terminal tabs
font-displayDisplay font stack for headings and brand surfaces

Here’s a complete example based on the built-in Warm Ember theme:

{
"id": "warm-ember",
"name": "Warm Ember",
"author": "Claudette",
"description": "A warm amber-toned dark theme",
"colors": {
"color-scheme": "dark",
"accent-primary": "#f0a050",
"accent-primary-rgb": "240, 160, 80",
"accent-dim": "#cc8840",
"accent-bg": "rgba(240, 160, 80, 0.08)",
"accent-bg-strong": "rgba(240, 160, 80, 0.15)",
"accent-glow": "0 0 12px rgba(240, 160, 80, 0.25)",
"sidebar-bg": "rgb(26, 22, 18)",
"sidebar-border": "rgb(48, 40, 32)",
"text-primary": "rgb(240, 232, 220)",
"text-muted": "rgb(160, 145, 130)",
"text-dim": "rgb(130, 118, 105)",
"text-faint": "rgb(100, 90, 78)",
"text-separator": "rgb(75, 65, 55)",
"hover-bg": "rgba(255, 200, 120, 0.06)",
"hover-bg-subtle": "rgba(255, 200, 120, 0.04)",
"selected-bg": "rgba(240, 160, 80, 0.1)",
"divider": "rgb(50, 42, 34)",
"status-running": "#f0a050",
"status-idle": "rgb(120, 110, 100)",
"status-stopped": "#e85050",
"diff-added-bg": "rgba(0, 180, 80, 0.12)",
"diff-removed-bg": "rgba(220, 40, 40, 0.12)",
"diff-added-text": "rgb(80, 210, 110)",
"diff-removed-text": "rgb(235, 100, 100)",
"diff-hunk-header": "rgb(120, 170, 230)",
"diff-line-number": "rgb(100, 90, 78)",
"chat-user-bg": "rgba(240, 160, 80, 0.05)",
"chat-system-bg": "rgba(240, 180, 60, 0.08)",
"chat-input-bg": "rgb(30, 26, 20)",
"chat-header-bg": "rgb(26, 22, 18)",
"terminal-tab-bg": "rgb(30, 26, 20)",
"terminal-tab-active-bg": "rgb(44, 38, 30)",
"terminal-bg": "rgb(18, 15, 12)",
"terminal-fg": "rgb(240, 232, 220)",
"terminal-cursor": "rgb(240, 232, 220)",
"terminal-selection": "rgba(240, 160, 80, 0.25)",
"toolbar-active": "rgba(240, 160, 80, 0.12)",
"toolbar-active-text": "#f0a050",
"app-bg": "rgb(18, 15, 12)",
"shadow-sm": "0 1px 2px rgba(0, 0, 0, 0.3)",
"shadow-md": "0 4px 12px rgba(0, 0, 0, 0.4)",
"shadow-lg": "0 8px 24px rgba(0, 0, 0, 0.5)",
"shadow-card-hover": "0 8px 24px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(240, 160, 80, 0.15)",
"badge-done": "#50d8a0",
"badge-plan": "rgb(120, 170, 230)",
"badge-ask": "#f0a050"
}
}

Save this file to ~/.claudette/themes/warm-ember.json, then select it from Settings > Appearance. Most custom themes are much shorter — only the tokens you want to change need to appear.