Built-in themes
omp ships about 100 palettes including the two baselines dark and light. The catalog includes Catppuccin, Dracula, Nord, Gruvbox, Tokyo Night, Poimandres, Solarized, Rose Pine, Monokai (most in dark and light variants), and omp originals like titanium.
List the active set from inside omp with /settings, then pick one to apply.
Switching themes
From /settings, navigate to Theme and select a value. To pin one in ~/.omp/agent/config.yml:
theme:
dark: titanium
light: lightThe slot is selected automatically: OSC 11 background luminance first, then COLORFGBG, then a native macOS appearance probe on the Zellij path where OSC 11 is unreliable, then a dark fallback.
Custom themes
Drop a JSON file at ~/.omp/agent/themes/<name>.json. The filename without extension becomes the theme name. Built-in names take precedence over same-named custom files — pick a unique name.
{
"name": "ink",
"vars": {
"fg": "#e6e6e6",
"accent": "#7aa2f7"
},
"colors": {
"text": "fg",
"accent": "accent",
"error": "#f7768e",
"success": "#9ece6a",
"warning": "#e0af68",
"border": "#3a3f4b",
"muted": "#565f89"
},
"symbols": { "preset": "unicode" }
}vars is an optional palette you reference by name from colors. colors declares the full UI key set (66 tokens covering text, borders, backgrounds, markdown, status line, syntax, diff, thinking modes). Every token is required — a missing key is a validation error that names it.
UI color keys
The required colors tokens group into:
| Group | Keys |
|---|---|
| Core text & borders | accent, border, borderAccent, borderMuted, success, error, warning, muted, dim, text, thinkingText |
| Backgrounds | selectedBg, userMessageBg, customMessageBg, toolPendingBg, toolSuccessBg, toolErrorBg, statusLineBg |
| Message & tool text | userMessageText, customMessageText, customMessageLabel, toolTitle, toolOutput |
| Markdown | mdHeading, mdLink, mdLinkUrl, mdCode, mdCodeBlock, mdCodeBlockBorder, mdQuote, mdQuoteBorder, mdHr, mdListBullet |
| Diff | toolDiffAdded, toolDiffRemoved, toolDiffContext |
| Syntax | syntaxComment, syntaxKeyword, syntaxFunction, syntaxVariable, syntaxString, syntaxNumber, syntaxType, syntaxOperator, syntaxPunctuation |
| Thinking & input modes | thinkingOff, thinkingMinimal, thinkingLow, thinkingMedium, thinkingHigh, thinkingXhigh, bashMode, pythonMode |
| Status line | statusLineSep, statusLineModel, statusLinePath, statusLineGitClean, statusLineGitDirty, statusLineContext, statusLineSpend, statusLineStaged, statusLineDirty, statusLineUntracked, statusLineOutput, statusLineCost, statusLineSubagents |
Symbol set
symbols.preset swaps between unicode (default), nerd (requires a Nerd Font), and ascii.d ascii for terminals that misrender glyphs.
Live reload
The active custom theme file is watched. Save and the TUI repaints. No restart, no reload command.