Documentation Index
Fetch the complete documentation index at: https://soulforge.proxysoul.com/llms.txt
Use this file to discover all available pages before exploring further.
Quick start
Press /theme or Ctrl+K → search “theme” to open the theme picker. Themes preview live as you navigate.
Builtin themes
Dark
| Theme | Description |
|---|
dark | SoulForge default |
solarized-dark | Ethan Schoonover’s classic |
catppuccin | Catppuccin Mocha |
catppuccin-frappe | Catppuccin Frappe |
catppuccin-macchiato | Catppuccin Macchiato |
gruvbox-dark | Retro groove |
tokyo-night | Tokyo Night |
tokyonight-storm | Tokyo Night Storm |
dracula | Dracula |
nord | Arctic, north-bluish |
one-dark | Atom One Dark |
rose-pine | All natural pine |
kanagawa | Inspired by Katsushika Hokusai |
github-dark | GitHub Dark |
everforest-dark | Comfortable green |
ayu-dark | Ayu Dark |
nightfox | Nightfox |
proxysoul-main | proxySoul — deep purple with hot pink |
proxysoul-coffee | proxySoul Coffee — warm amber & burnt orange |
proxysoul-water | proxySoul Water — ocean blue & teal |
cyberdream | Cyberdream |
oxocarbon | Oxocarbon |
sonokai | Sonokai |
moonfly | Moonfly |
melange | Melange |
solarized-osaka | Solarized Osaka |
bamboo | Bamboo |
nordic | Nordic |
synthwave | Synthwave |
iceberg | Iceberg |
ember | Ember |
vesper | Vesper |
Light
| Theme | Description |
|---|
light | Clean light theme |
catppuccin-latte | Catppuccin Latte |
one-light | Atom One Light |
github-light | GitHub Light |
Config
Theme is saved globally in ~/.soulforge/config.json:
{
"theme": {
"name": "catppuccin",
"transparent": true,
"userMessageOpacity": 70,
"diffOpacity": 30,
"borderStrength": "strong"
}
}
| Field | Description |
|---|
name | Theme ID (builtin or custom) |
transparent | Make background transparent (terminal background bleed-through) |
userMessageOpacity | User message background opacity when transparent: 0 (clear), 30 (dim), 70 (subtle), 100 (solid) |
diffOpacity | Diff background opacity when transparent: 0 (clear), 30 (dim), 70 (subtle), 100 (solid) |
borderStrength | Border visibility: "default", "strong", or "op" |
Theme picker controls
| Key | Action |
|---|
↑ / ↓ | Navigate themes (live preview) |
Enter | Apply selected theme |
Tab | Toggle transparent mode |
M | Cycle message background opacity |
D | Cycle diff background opacity |
B | Cycle border strength |
Custom themes
Create your own theme by adding a JSON file to ~/.soulforge/themes/:
mkdir -p ~/.soulforge/themes
Example
~/.soulforge/themes/my-theme.json:
{
"_extends": "dark",
"_label": "My Theme",
"_description": "A custom dark theme",
"_variant": "dark",
"brand": "#ff6600",
"brand-secondary": "#ff0040",
"bg-primary": "#1a1a2e",
"bg-elevated": "#16213e",
"text-primary": "#e0e0e0",
"success": "#00ff88",
"error": "#ff4444"
}
The file name (minus .json) becomes the theme ID.
| Field | Description |
|---|
_extends | Inherit from a builtin theme (default: dark). Only override the tokens you want to change. |
_label | Display name in the theme picker |
_description | Description shown in the picker |
_variant | "dark" or "light" — controls the indicator in the picker |
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
You can also define multiple themes in ~/.soulforge/themes.json:
{
"my-theme": {
"_extends": "dark",
"brand": "#ff6600"
},
"another-theme": {
"_extends": "light",
"brand": "#0066ff"
}
}
Hot reload
Theme files are watched for changes. Edit a custom theme file and the UI updates instantly — no restart needed.