Sophon 2.0 is here
Sophon Docs
Command Line

Themes & Appearance

Switch CLI color themes, auto-detect light/dark terminals, and run without color.

The Sophon CLI ships with four hand-tuned color themes plus an automatic monochrome mode. Themes shape the brand accents, syntax highlighting, and diff colors used across panels, tables, and the interactive chat.

Themed visuals are part of the default experience — no opt-in needed. If you opt out of the enhanced UI with SOPHON_CLI_V2=0 (or "v2": false in ~/.sophon/config/cli.json), output falls back to plain console styling. See Configuration & Auth.

The themes

ThemeBest for
indigo-coreThe default — balanced indigo accents on a dark terminal
deep-voidOLED / true-black terminals; deeper surfaces, brighter brand
graphiteA muted, low-saturation look for long sessions
daylightLight terminals; darker text and accents tuned for white backgrounds
no-colorAutomatic monochrome — no ANSI colors at all

Setting a theme

From the chat: /theme

In the full-screen chat, /theme opens a picker that repaints the whole screen live as you move through the list — you see the real transcript in the new palette before you commit. Enter keeps it and persists the choice to the theme key in ~/.sophon/config/cli.json; Esc reverts to what you had. /theme <name> switches directly, without the picker.

/theme belongs to the full-screen surface, so the pinned and classic prompts don't offer it — use the environment variable there.

From the environment: SOPHON_THEME

Choose a theme with the SOPHON_THEME environment variable:

SOPHON_THEME=deep-void sophon chat

To apply it to every session, export the variable from your shell profile (~/.bashrc, ~/.zshrc, or your PowerShell $PROFILE):

export SOPHON_THEME=deep-void

Force monochrome output for any reason (logging, pipes, accessibility) with the standard NO_COLOR convention:

NO_COLOR=1 sophon status

Automatic detection

When you don't set a theme explicitly, the CLI picks one for you. Resolution happens in priority order, and the full-screen chat adds one step the other surfaces don't have yet:

Full-screen chat

  1. NO_COLOR — if set (to any value), the monochrome theme wins and all color is stripped.
  2. SOPHON_THEME — an explicit theme name (indigo-core, deep-void, graphite, daylight).
  3. The theme key in cli.json — what /theme persisted last.
  4. Terminal background probe — if your terminal reports a light background (via COLORFGBG), the CLI selects daylight automatically.
  5. indigo-core — the default fallback when nothing else applies.

Everywhere else — the pinned and classic chat surfaces, tables, and every non-chat command — the same order applies with step 3 left out: the persisted cli.json theme isn't consulted on those surfaces yet.

So a light-background terminal that exports COLORFGBG gets readable colors out of the box, and a piped or NO_COLOR environment stays clean — without any configuration.

COLORFGBG is set by many terminal emulators (e.g. some xterm builds, rxvt). If yours doesn't report it, export SOPHON_THEME=daylight from your shell profile.

Where to go next