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: light

The 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:

GroupKeys
Core text & bordersaccent, border, borderAccent, borderMuted, success, error, warning, muted, dim, text, thinkingText
BackgroundsselectedBg, userMessageBg, customMessageBg, toolPendingBg, toolSuccessBg, toolErrorBg, statusLineBg
Message & tool textuserMessageText, customMessageText, customMessageLabel, toolTitle, toolOutput
MarkdownmdHeading, mdLink, mdLinkUrl, mdCode, mdCodeBlock, mdCodeBlockBorder, mdQuote, mdQuoteBorder, mdHr, mdListBullet
DifftoolDiffAdded, toolDiffRemoved, toolDiffContext
SyntaxsyntaxComment, syntaxKeyword, syntaxFunction, syntaxVariable, syntaxString, syntaxNumber, syntaxType, syntaxOperator, syntaxPunctuation
Thinking & input modesthinkingOff, thinkingMinimal, thinkingLow, thinkingMedium, thinkingHigh, thinkingXhigh, bashMode, pythonMode
Status linestatusLineSep, 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.

  • Settings — pinning themes in config.yml.

  • Plugins — bundle a theme with other extension surfaces.\n

Ask Docs

AI assistant to help answer questions about the documentation. Answers are read-only and cite docs/source.

Hi! How can I help you with the documentation today? Answers are read-only and cite docs/source.

Ctrl+Enter to send