Skip to main content
Step Code includes six themes and supports custom colors in JSON. Place a file in a theme directory to select it in /theme. Editing the active theme reloads it immediately.

Built-in themes

Theme files

The filename is the theme name, such as my-theme.json. Custom themes appear alongside built-in themes in /theme. Start from a complete theme and retain all color fields while adjusting the palette.

Theme JSON format

A theme has name, reusable vars, and a colors mapping. This example illustrates fields; it is not a complete replacement theme:
A complete theme defines all 52 color tokens, covering core UI, backgrounds and content, Markdown, diffs, syntax highlighting, thinking borders, and bashMode. The partial example above cannot be used as a complete theme. True-color terminals use 24-bit colors; others may fall back to nearby 256-color values. Use brighter, saturated colors on dark terminals and darker, muted colors on light terminals. Put shared base colors in vars.

Switching themes

Set the default in configuration:
For one launch only:
/theme opens the picker; custom themes are available without restarting. /theme <name> switches directly. Editing the active file hot-reloads it.

statusTips

statusTips is a boolean in config.toml, not a theme field. It defaults to true, showing one working-line tip per turn. Disable it with:

Error behavior

Invalid colors fail the entire theme and fall back to built-in dark. A transient error during hot reload retains the active theme. Check JSON syntax, color values, variable references, and field completeness.

Next steps