Skip to main content

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:

ToolConfig LocationFormat
Zellij.config/zellij/themes/<name>.kdlKDL with terminal color names
Vim.vim/colors/<name>.vimVim colorscheme
Yazi.config/yazi/theme.tomlTOML with hex colors
lazygit.config/lazygit/config.ymlYAML gui.theme section
Starship.config/starship.tomlTOML with palette

Color Mapping

A theme needs these terminal color slots for Zellij:

SlotPurpose
fgDefault foreground text
bgBackground
blackDark background variant
redErrors, unstaged changes
greenSuccess, staged changes
yellowWarnings, search highlights
bluePrimary accent
magentaSecondary accent
cyanTertiary accent, links
whiteBright foreground
orangeSpecial 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.