Skip to main content

Documentation 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.

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 in ~/.gauss/skins/ — no reinstall or rebuild needed.

Activating a skin

Switch skins at any time inside a running gauss session with /skin <name>. The change takes effect immediately on the next prompt — no restart required.
At runtime (instant, session-local):
/skin ares
/skin mono
/skin cyberpunk     # your custom skin
/skin               # list available skins
Permanently (saved to config):
gauss config set display.skin ares
Or edit ~/.gauss/config.yaml directly:
display:
  skin: "ares"

Built-in skins

OpenGauss includes seven built-in skins. All are shown in gauss 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 the default skin automatically, so you only need to specify what you want to change.
ElementSkin keyDescription
Banner panel bordercolors.banner_borderHex color for the outer border of the startup banner
Banner title textcolors.banner_titleHex color for the large title in the banner
Banner section headerscolors.banner_accentHex color for “Available Tools”, “Skills”, etc.
Banner dim/muted textcolors.banner_dimHex color for separators and labels
Banner body textcolors.banner_textHex color for tool names and skill names in the banner
General UI accentcolors.ui_accentHex color for general UI highlight elements
UI labelscolors.ui_labelHex color for UI label text
Success indicatorscolors.ui_okHex color for ✓ / success states
Error indicatorscolors.ui_errorHex color for error states
Warning indicatorscolors.ui_warnHex color for warning states
Prompt textcolors.promptHex color for input area text
Input area rulecolors.input_ruleHex color for the horizontal rule above the prompt
Response box bordercolors.response_borderANSI color for the response panel border
Session labelcolors.session_labelHex color for the session ID label
Session bordercolors.session_borderHex color for the session ID dim border
Spinner waiting facesspinner.waiting_facesList of face strings shown while waiting for the API
Spinner thinking facesspinner.thinking_facesList of face strings shown during model reasoning
Spinner verbsspinner.thinking_verbsList of verbs for spinner messages (“thinking”, “forging”, …)
Spinner wingsspinner.wingsList of [left, right] pairs used as spinner decorations
Tool output prefixtool_prefixCharacter prepended to each tool output line (default: )
Per-tool emojistool_emojisMap of tool name → emoji used in spinners and progress lines
Agent namebranding.agent_nameShown in the banner title and status display
Welcome messagebranding.welcomePrinted at CLI startup
Status glyphbranding.status_glyphGlyph in the status bar when the agent is running
Goodbye messagebranding.goodbyePrinted when you exit gauss
Response box labelbranding.response_labelHeader text inside the response panel
Prompt symbolbranding.prompt_symbolSymbol shown before your input text
Help headerbranding.help_headerHeader 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.
# ~/.gauss/skins/cyberpunk.yaml
name: cyberpunk
description: Neon-soaked terminal theme

colors:
  banner_border: "#FF00FF"
  banner_title: "#00FFFF"
  banner_accent: "#FF1493"
  banner_dim: "#8B008B"
  banner_text: "#E0E0FF"
  ui_accent: "#FF1493"
  ui_label: "#00FFFF"
  ui_ok: "#39FF14"
  ui_error: "#FF073A"
  ui_warn: "#FF6600"
  prompt: "#E0E0FF"
  input_rule: "#FF00FF"
  response_border: "#00FFFF"
  session_label: "#FF1493"
  session_border: "#6A0572"

spinner:
  thinking_verbs:
    - "jacking in"
    - "decrypting"
    - "uploading"
    - "bypassing ICE"
    - "pinging the net"
  wings:
    - ["⟨⚡", "⚡⟩"]
    - ["⟨◈", "◈⟩"]

branding:
  agent_name: "Cyber Agent"
  welcome: "ICE BROKEN. CONNECTION ESTABLISHED. Type /help for commands."
  status_glyph: "⚡"
  goodbye: "Disconnecting from the net. ⚡"
  response_label: " ⚡ Cyber "
  prompt_symbol: "⚡ ❯ "
  help_header: "(⚡) Available Commands"

tool_prefix: "▏"

tool_emojis:
  terminal: "⚡"
  web_search: "🔮"
  browser_navigate: "🌐"

SkinConfig structure

The skin engine parses each YAML file into a SkinConfig object with these fields:
FieldTypeDescription
namestrUnique skin identifier
descriptionstrShort description shown in /skin listing
colorsdict[str, str]Hex color values for UI elements
spinnerdict[str, Any]Spinner faces, verbs, and wings
brandingdict[str, str]Text strings used throughout the CLI
tool_prefixstrCharacter prepended to tool output lines
tool_emojisdict[str, str]Per-tool emoji overrides
banner_logostrRich-markup ASCII art logo (wide terminals)
banner_logo_compactstrRich-markup logo for narrow terminals
banner_herostrRich-markup hero art (wide terminals)
banner_hero_compactstrRich-markup hero art for narrow terminals

Accessing skin values in Python

from gauss_cli.skin_engine import get_active_skin, set_active_skin

skin = get_active_skin()
print(skin.colors["banner_title"])          # "#FFD700"
print(skin.get_branding("agent_name"))      # "Gauss"
print(skin.get_spinner_list("thinking_verbs"))
print(skin.get_spinner_wings())             # [("⟪⚔", "⚔⟫"), ...]

set_active_skin("ares")       # switch built-in
set_active_skin("cyberpunk")  # switch to user skin from ~/.gauss/skins/

Inheritance and fallbacks

Missing fields in a skin automatically inherit from the default skin. This means you can create a minimal skin that only changes colors and keep the default branding, spinner, and tool prefix:
name: rose
description: Soft rose gold theme

colors:
  banner_border: "#B76E79"
  banner_title: "#F4A7B9"
  banner_accent: "#F08080"
  input_rule: "#B76E79"
  response_border: "#F4A7B9"
# Everything else — branding, spinner, tool_prefix — inherits from default
The skin engine loads user skins first (from ~/.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:
1
User skins directory
2
~/.gauss/skins/<name>.yaml — your custom skins take precedence over built-ins.
3
Built-in skins
4
The seven built-in skins compiled into the skin engine: default, ares, mono, slate, poseidon, sisyphus, charizard.
5
Fallback
6
If neither source has the requested skin, a warning is logged and the default skin is used automatically.

Build docs developers (and LLMs) love