Skip to main content

Quick start

Press /theme or Ctrl+K → search “theme” to open the theme picker. Themes preview live as you navigate.

Builtin themes

Dark

Light

Config

Theme is saved globally in ~/.soulforge/config.json:

Theme picker controls

Custom themes

Create your own theme by adding a JSON file to ~/.soulforge/themes/:

Example

~/.soulforge/themes/my-theme.json:
The file name (minus .json) becomes the theme ID.

Metadata fields

Token reference

Tokens use kebab-case in JSON files (auto-converted to camelCase internally):
  • Brand: brand, brand-secondary, brand-dim, brand-alt
  • Text: text-primary, text-secondary, text-muted, text-dim, text-faint, text-subtle
  • Backgrounds: bg-app, bg-primary, bg-secondary, bg-elevated, bg-popup, bg-popup-highlight, bg-overlay, bg-input, bg-banner, bg-banner-error, bg-user
  • Borders: border, border-focused, border-active, border-slash
  • Status: success, error, warning, info, amber
  • Diff: diff-added-bg, diff-removed-bg, diff-added-sign, diff-removed-sign
  • Accents: accent-user, accent-assistant, accent-system

Legacy format

You can also define multiple themes in ~/.soulforge/themes.json:

Hot reload

Theme files are watched for changes. Edit a custom theme file and the UI updates instantly — no restart needed.