> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clideck.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Themes

> Customize terminal colors with 15 built-in themes and custom theme support

CliDeck ships with 15 terminal color themes and supports custom themes.

## Built-in Themes

### Dark Themes

| Theme            | Style                |
| ---------------- | -------------------- |
| Midnight         | Slate blue (default) |
| Dracula          | Classic purple       |
| Nord             | Cool blue-gray       |
| Catppuccin Mocha | Warm lavender        |
| Solarized Dark   | Solarized blue       |
| One Dark         | Atom-inspired        |
| Monokai          | Sublime-inspired     |
| Tokyo Night      | Muted blue           |
| GitHub Dark      | GitHub's dark theme  |
| Gruvbox Dark     | Warm retro           |

### Light Themes

| Theme            | Style            |
| ---------------- | ---------------- |
| GitHub Light     | Clean and bright |
| Solarized Light  | Easy on the eyes |
| Catppuccin Latte | Warm pastels     |
| One Light        | Atom light       |
| Rose Pine Dawn   | Soft and warm    |

## Changing the Default Theme

1. Open **Settings** > **Appearance**
2. Select a theme from the dropdown — each shows a mini color preview
3. A larger preview panel below shows sample code in the selected theme

The default theme applies to all new sessions.

## Per-Session Themes

Each session can have its own theme. Right-click a session > **Change Theme** to pick a different one.

## Light / Dark Mode

The sun/moon toggle in the left navigation rail switches between light and dark mode. When you switch:

* The CliDeck UI switches color scheme
* Sessions using a "default" theme (the mode's default) automatically switch to the new mode's default theme
* Sessions with a specific theme keep their theme

If switching modes would change a session's theme polarity (e.g., dark session in light mode), CliDeck shows a restart banner — the terminal needs to restart so the agent sees the correct color environment.

## Custom Themes

Create a `custom-themes.json` file in `~/.clideck/` to add your own themes:

```json theme={null}
[
  {
    "id": "my-theme",
    "name": "My Custom Theme",
    "accent": "#ff6b6b",
    "theme": {
      "background": "#1a1b26",
      "foreground": "#c0caf5",
      "cursor": "#c0caf5",
      "selectionBackground": "#33467c",
      "black": "#15161e",
      "red": "#f7768e",
      "green": "#9ece6a",
      "yellow": "#e0af68",
      "blue": "#7aa2f7",
      "magenta": "#bb9af7",
      "cyan": "#7dcfff",
      "white": "#a9b1d6",
      "brightBlack": "#414868",
      "brightRed": "#f7768e",
      "brightGreen": "#9ece6a",
      "brightYellow": "#e0af68",
      "brightBlue": "#7aa2f7",
      "brightMagenta": "#bb9af7",
      "brightCyan": "#7dcfff",
      "brightWhite": "#c0caf5"
    }
  }
]
```

The theme object follows the [xterm.js ITheme](https://xtermjs.org/docs/api/terminal/interfaces/itheme/) format. Custom themes appear alongside built-in themes in all theme pickers.
