Creating Custom Themes
aibox ships 7 built-in themes. You can create a custom theme by adding entries to the CLI source code.
Theme Structure
Each theme defines colors for 5 tools:
| Tool | Config Location | Format |
|---|---|---|
| Zellij | .config/zellij/themes/<name>.kdl | KDL with terminal color names |
| Vim | .vim/colors/<name>.vim | Vim colorscheme |
| Yazi | .config/yazi/theme.toml | TOML with hex colors |
| lazygit | .config/lazygit/config.yml | YAML gui.theme section |
| Starship | .config/starship.toml | TOML with palette |
Color Mapping
A theme needs these terminal color slots for Zellij:
| Slot | Purpose |
|---|---|
fg | Default foreground text |
bg | Background |
black | Dark background variant |
red | Errors, unstaged changes |
green | Success, staged changes |
yellow | Warnings, search highlights |
blue | Primary accent |
magenta | Secondary accent |
cyan | Tertiary accent, links |
white | Bright foreground |
orange | Special highlights |
Adding a Theme
To add a new theme to aibox, you need to modify cli/src/themes.rs (theme data) and cli/src/config.rs (Theme enum). See the existing themes as reference patterns.
The projectious theme (cli/src/themes.rs) is a good starting point — it uses a simple palette with clear semantic mappings.
Manual Overrides
If you don't want to modify the CLI, you can manually edit the config files in .aibox-home/ after aibox sync. Note that aibox sync will overwrite theme-dependent files, so manual edits need to be reapplied after each sync.