|
Download docs/cli/themes.md from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 8.1 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/docs/cli/themes.md
- Command line
-
hf download hf://SaylorTwift/gemini-cli/docs/cli/themes.md
-
curl -L -o themes.md https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/docs/cli/themes.md
8.1 kB
| # Themes | |
| Gemini CLI supports a variety of themes to customize its color scheme and | |
| appearance. You can change the theme to suit your preferences via the `/theme` | |
| command or `"theme":` configuration setting. | |
| ## Available themes | |
| Gemini CLI comes with a selection of pre-defined themes, which you can list | |
| using the `/theme` command within Gemini CLI: | |
| - **Dark themes:** | |
| - `ANSI` | |
| - `Atom One` | |
| - `Ayu` | |
| - `Default` | |
| - `Dracula` | |
| - `GitHub` | |
| - `Holiday` | |
| - `Shades Of Purple` | |
| - `Solarized Dark` | |
| - `Tokyo Night` | |
| - **Light themes:** | |
| - `ANSI Light` | |
| - `Ayu Light` | |
| - `Default Light` | |
| - `GitHub Light` | |
| - `Google Code` | |
| - `Solarized Light` | |
| - `Xcode` | |
| ### Changing themes | |
| 1. Enter `/theme` into Gemini CLI. | |
| 2. A dialog or selection prompt appears, listing the available themes. | |
| 3. Using the arrow keys, select a theme. Some interfaces might offer a live | |
| preview or highlight as you select. | |
| 4. Confirm your selection to apply the theme. | |
| <!-- prettier-ignore --> | |
| > [!NOTE] | |
| > If a theme is defined in your `settings.json` file (either by name or | |
| > by a file path), you must remove the `"theme"` setting from the file before | |
| > you can change the theme using the `/theme` command. | |
| ### Theme persistence | |
| Selected themes are saved in Gemini CLI's | |
| [configuration](../reference/configuration.md) so your preference is remembered | |
| across sessions. | |
| --- | |
| ## Custom color themes | |
| Gemini CLI lets you create your own custom color themes by specifying them in | |
| your `settings.json` file. This gives you full control over the color palette | |
| used in the CLI. | |
| ### How to define a custom theme | |
| Add a `customThemes` block to your user, project, or system `settings.json` | |
| file. Each custom theme is defined as an object with a unique name and a set of | |
| nested configuration objects. For example: | |
| ```json | |
| { | |
| "ui": { | |
| "customThemes": { | |
| "MyCustomTheme": { | |
| "name": "MyCustomTheme", | |
| "type": "custom", | |
| "background": { | |
| "primary": "#181818" | |
| }, | |
| "text": { | |
| "primary": "#f0f0f0", | |
| "secondary": "#a0a0a0" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| ``` | |
| **Configuration objects:** | |
| - **`text`**: Defines text colors. | |
| - `primary`: The default text color. | |
| - `secondary`: Used for less prominent text. | |
| - `link`: Color for URLs and links. | |
| - `accent`: Used for highlights and emphasis. | |
| - `response`: Precedence over `primary` for rendering model responses. | |
| - **`background`**: Defines background colors. | |
| - `primary`: The main background color of the UI. | |
| - `diff.added`: Background for added lines in diffs. | |
| - `diff.removed`: Background for removed lines in diffs. | |
| - **`border`**: Defines border colors. | |
| - `default`: The standard border color. | |
| - `focused`: Border color when an element is focused. | |
| - **`status`**: Colors for status indicators. | |
| - `success`: Used for successful operations. | |
| - `warning`: Used for warnings. | |
| - `error`: Used for errors. | |
| - **`ui`**: Other UI elements. | |
| - `comment`: Color for code comments. | |
| - `symbol`: Color for code symbols and operators. | |
| - `gradient`: An array of colors used for gradient effects. | |
| **Required properties:** | |
| - `name` (must match the key in the `customThemes` object and be a string) | |
| - `type` (must be the string `"custom"`) | |
| While all sub-properties are technically optional, we recommend providing at | |
| least `background.primary`, `text.primary`, `text.secondary`, and the various | |
| accent colors via `text.link`, `text.accent`, and `status` to ensure a cohesive | |
| UI. | |
| You can use either hex codes (for example, `#FF0000`) **or** standard CSS color | |
| names (for example, `coral`, `teal`, `blue`) for any color value. See | |
| [CSS color names](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#color_keywords) | |
| for a full list of supported names. | |
| You can define multiple custom themes by adding more entries to the | |
| `customThemes` object. | |
| ### Loading themes from a file | |
| In addition to defining custom themes in `settings.json`, you can also load a | |
| theme directly from a JSON file by specifying the file path in your | |
| `settings.json`. This is useful for sharing themes or keeping them separate from | |
| your main configuration. | |
| To load a theme from a file, set the `theme` property in your `settings.json` to | |
| the path of your theme file: | |
| ```json | |
| { | |
| "ui": { | |
| "theme": "/path/to/your/theme.json" | |
| } | |
| } | |
| ``` | |
| The theme file must be a valid JSON file that follows the same structure as a | |
| custom theme defined in `settings.json`. | |
| **Example `my-theme.json`:** | |
| ```json | |
| { | |
| "name": "Gruvbox Dark", | |
| "type": "custom", | |
| "background": { | |
| "primary": "#282828", | |
| "diff": { | |
| "added": "#2b3312", | |
| "removed": "#341212" | |
| } | |
| }, | |
| "text": { | |
| "primary": "#ebdbb2", | |
| "secondary": "#a89984", | |
| "link": "#83a598", | |
| "accent": "#d3869b" | |
| }, | |
| "border": { | |
| "default": "#3c3836", | |
| "focused": "#458588" | |
| }, | |
| "status": { | |
| "success": "#b8bb26", | |
| "warning": "#fabd2f", | |
| "error": "#fb4934" | |
| }, | |
| "ui": { | |
| "comment": "#928374", | |
| "symbol": "#8ec07c", | |
| "gradient": ["#cc241d", "#d65d0e", "#d79921"] | |
| } | |
| } | |
| ``` | |
| <!-- prettier-ignore --> | |
| > [!WARNING] | |
| > For your safety, Gemini CLI will only load theme files that | |
| > are located within your home directory. If you attempt to load a theme from | |
| > outside your home directory, a warning will be displayed and the theme will | |
| > not be loaded. This is to prevent loading potentially malicious theme files | |
| > from untrusted sources. | |
| ### Example custom theme | |
| <img src="/docs/assets/theme-custom.png" alt="Custom theme example" width="600" /> | |
| ### Using your custom theme | |
| - Select your custom theme using the `/theme` command in Gemini CLI. Your custom | |
| theme will appear in the theme selection dialog. | |
| - Or, set it as the default by adding `"theme": "MyCustomTheme"` to the `ui` | |
| object in your `settings.json`. | |
| - Custom themes can be set at the user, project, or system level, and follow the | |
| same [configuration precedence](../reference/configuration.md) as other | |
| settings. | |
| ### Themes from extensions | |
| [Extensions](../extensions/reference.md#themes) can also provide custom themes. | |
| Once an extension is installed and enabled, its themes are automatically added | |
| to the selection list in the `/theme` command. | |
| Themes from extensions appear with the extension name in parentheses to help you | |
| identify their source, for example: `shades-of-green (green-extension)`. | |
| --- | |
| ## Dark themes | |
| ### ANSI | |
| <img src="/docs/assets/theme-ansi-dark.png" alt="ANSI theme" width="600"> | |
| ### Atom One | |
| <img src="/docs/assets/theme-atom-one-dark.png" alt="Atom One theme" width="600"> | |
| ### Ayu | |
| <img src="/docs/assets/theme-ayu-dark.png" alt="Ayu theme" width="600"> | |
| ### Default | |
| <img src="/docs/assets/theme-default-dark.png" alt="Default theme" width="600"> | |
| ### Dracula | |
| <img src="/docs/assets/theme-dracula-dark.png" alt="Dracula theme" width="600"> | |
| ### GitHub | |
| <img src="/docs/assets/theme-github-dark.png" alt="GitHub theme" width="600"> | |
| ### Holiday | |
| <img src="/docs/assets/theme-holiday-dark.png" alt="Holiday theme" width="600"> | |
| ### Shades Of Purple | |
| <img src="/docs/assets/theme-shades-of-purple-dark.png" alt="Shades Of Purple theme" width="600"> | |
| ### Solarized Dark | |
| <img src="/docs/assets/theme-solarized-dark.png" alt="Solarized Dark theme" width="600"> | |
| ### Tokyo Night | |
| <img src="/docs/assets/theme-tokyonight-dark.png" alt="Tokyo Night theme" width="600"> | |
| ## Light themes | |
| ### ANSI Light | |
| <img src="/docs/assets/theme-ansi-light.png" alt="ANSI Light theme" width="600"> | |
| ### Ayu Light | |
| <img src="/docs/assets/theme-ayu-light.png" alt="Ayu Light theme" width="600"> | |
| ### Default Light | |
| <img src="/docs/assets/theme-default-light.png" alt="Default Light theme" width="600"> | |
| ### GitHub Light | |
| <img src="/docs/assets/theme-github-light.png" alt="GitHub Light theme" width="600"> | |
| ### Google Code | |
| <img src="/docs/assets/theme-google-light.png" alt="Google Code theme" width="600"> | |
| ### Solarized Light | |
| <img src="/docs/assets/theme-solarized-light.png" alt="Solarized Light theme" width="600"> | |
| ### Xcode | |
| <img src="/docs/assets/theme-xcode-light.png" alt="Xcode Light theme" width="600"> | |