Why
13 built-in themes today (Dark, Light, Dracula, Nord, Ayu, Catppuccin (Mocha), Gruvbox, Neon, Synthwave, Ember, Matrix, Cobalt, Midnight). Themes are the friendliest possible first contribution — self-contained, visual, zero risk.
What
Contribute new color themes. Note: Nord, Gruvbox, and Catppuccin (Mocha flavor) already exist — pick from what's actually missing:
- Solarized (light + dark)
- Catppuccin's other 3 flavors (Latte, Frappé, Macchiato — only Mocha exists today) (Done by @siddhanttiwari19 )
- Tokyo Night (Done by @floze-the-genius )
- One Dark
- Rosé Pine
- A high-contrast accessibility theme
A theme is a palette object — see src/engine/theme.ts for the shape and existing examples (e.g. CATPPUCCIN_PALETTE at line 164 for the pattern to follow for the other flavors). Register it, and /theme picks it up automatically.
Guidelines
- Check contrast: body text, dim/secondary text, diff green/red, selection highlight all readable on the theme background
- Test in a real terminal with
/theme <name> — include a screenshot in your PR
- One theme (or one family, e.g. all 3 remaining Catppuccin flavors) per PR
Acceptance criteria
- Theme selectable via
/theme, persists across restart
- Screenshot in PR; typecheck green
Why
13 built-in themes today (Dark, Light, Dracula, Nord, Ayu, Catppuccin (Mocha), Gruvbox, Neon, Synthwave, Ember, Matrix, Cobalt, Midnight). Themes are the friendliest possible first contribution — self-contained, visual, zero risk.
What
Contribute new color themes. Note: Nord, Gruvbox, and Catppuccin (Mocha flavor) already exist — pick from what's actually missing:
A theme is a palette object — see
src/engine/theme.tsfor the shape and existing examples (e.g.CATPPUCCIN_PALETTEat line 164 for the pattern to follow for the other flavors). Register it, and/themepicks it up automatically.Guidelines
/theme <name>— include a screenshot in your PRAcceptance criteria
/theme, persists across restart