OpenGauss ships with a data-driven skin engine that lets you completely reshape the CLI’s visual appearance without touching any code. Skins control everything visible in the terminal: the banner’s colors and borders, the animated spinner’s faces and verbs, the response box label, the prompt symbol, tool-output line prefixes, per-tool emojis, and all branding text. You define a skin as a plain YAML file and drop it inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/math-inc/OpenGauss/llms.txt
Use this file to discover all available pages before exploring further.
~/.gauss/skins/ — no reinstall or rebuild needed.
Activating a skin
At runtime (instant, session-local):~/.gauss/config.yaml directly:
Built-in skins
OpenGauss includes seven built-in skins. All are shown ingauss with /skin.
default
Classic Gauss — warm gold and amber tones with kawaii branding. The out-of-the-box look.
ares
War-god theme — deep crimson and bronze with custom spinner wings (
⟪⚔ … ⚔⟫) and war-themed thinking verbs.mono
Clean grayscale monochrome. Minimal, distraction-free, easy on the eyes in bright environments.
slate
Cool blue developer-focused theme. Royal blue borders, sky-blue titles, and teal accents.
poseidon
Ocean-god theme — deep blue and seafoam with wave-inspired spinner verbs and trident branding.
sisyphus
Austere grayscale with persistence-themed verbs (“pushing uphill”, “enduring the loop”) and a boulder banner hero.
charizard
Volcanic theme — burnt orange and ember with fire-themed spinner verbs and a flame-tail hero.
What skins customize
Every skin field is optional. Any key you omit inherits from thedefault skin automatically, so you only need to specify what you want to change.
| Element | Skin key | Description |
|---|---|---|
| Banner panel border | colors.banner_border | Hex color for the outer border of the startup banner |
| Banner title text | colors.banner_title | Hex color for the large title in the banner |
| Banner section headers | colors.banner_accent | Hex color for “Available Tools”, “Skills”, etc. |
| Banner dim/muted text | colors.banner_dim | Hex color for separators and labels |
| Banner body text | colors.banner_text | Hex color for tool names and skill names in the banner |
| General UI accent | colors.ui_accent | Hex color for general UI highlight elements |
| UI labels | colors.ui_label | Hex color for UI label text |
| Success indicators | colors.ui_ok | Hex color for ✓ / success states |
| Error indicators | colors.ui_error | Hex color for error states |
| Warning indicators | colors.ui_warn | Hex color for warning states |
| Prompt text | colors.prompt | Hex color for input area text |
| Input area rule | colors.input_rule | Hex color for the horizontal rule above the prompt |
| Response box border | colors.response_border | ANSI color for the response panel border |
| Session label | colors.session_label | Hex color for the session ID label |
| Session border | colors.session_border | Hex color for the session ID dim border |
| Spinner waiting faces | spinner.waiting_faces | List of face strings shown while waiting for the API |
| Spinner thinking faces | spinner.thinking_faces | List of face strings shown during model reasoning |
| Spinner verbs | spinner.thinking_verbs | List of verbs for spinner messages (“thinking”, “forging”, …) |
| Spinner wings | spinner.wings | List of [left, right] pairs used as spinner decorations |
| Tool output prefix | tool_prefix | Character prepended to each tool output line (default: ┊) |
| Per-tool emojis | tool_emojis | Map of tool name → emoji used in spinners and progress lines |
| Agent name | branding.agent_name | Shown in the banner title and status display |
| Welcome message | branding.welcome | Printed at CLI startup |
| Status glyph | branding.status_glyph | Glyph in the status bar when the agent is running |
| Goodbye message | branding.goodbye | Printed when you exit gauss |
| Response box label | branding.response_label | Header text inside the response panel |
| Prompt symbol | branding.prompt_symbol | Symbol shown before your input text |
| Help header | branding.help_header | Header text shown by /help |
Creating a custom skin
Drop a YAML file at~/.gauss/skins/<name>.yaml. The name field inside the file must match the filename (without .yaml). Activate it with /skin <name> or display.skin: <name> in config.yaml.
SkinConfig structure
The skin engine parses each YAML file into aSkinConfig object with these fields:
| Field | Type | Description |
|---|---|---|
name | str | Unique skin identifier |
description | str | Short description shown in /skin listing |
colors | dict[str, str] | Hex color values for UI elements |
spinner | dict[str, Any] | Spinner faces, verbs, and wings |
branding | dict[str, str] | Text strings used throughout the CLI |
tool_prefix | str | Character prepended to tool output lines |
tool_emojis | dict[str, str] | Per-tool emoji overrides |
banner_logo | str | Rich-markup ASCII art logo (wide terminals) |
banner_logo_compact | str | Rich-markup logo for narrow terminals |
banner_hero | str | Rich-markup hero art (wide terminals) |
banner_hero_compact | str | Rich-markup hero art for narrow terminals |
Accessing skin values in Python
Inheritance and fallbacks
Missing fields in a skin automatically inherit from thedefault skin. This means you can create a minimal skin that only changes colors and keep the default branding, spinner, and tool prefix:
~/.gauss/skins/), then built-ins, and finally falls back to default if a skin name is not found.
Skin search order
When you run/skin <name> or set display.skin: <name>, the engine searches in this order:
The seven built-in skins compiled into the skin engine:
default, ares, mono, slate, poseidon, sisyphus, charizard.