Themes
OpenCode supports most common terminal themes and you can create your own custom theme.
Built-in themes
The following predefined themes are available:
opencodecatppuccindraculaflexokigruvboxmonokaionedarktokyonighttroncustom
Where opencode is the default theme and custom let’s you define your own theme.
Setting a theme
You can set your theme in your OpenCode config.
{ "tui": { "theme": "monokai" }}Create a theme
You can create your own custom theme by setting the theme: custom and providing color definitions through the customTheme.
{ "tui": { "theme": "custom", "customTheme": { "primary": "#ffcc00", "secondary": "#00ccff", "accent": { "dark": "#aa00ff", "light": "#ddccff" }, "error": "#ff0000" } }}Color keys
You can define any of the following color keys in your customTheme.
| Type | Color keys |
|---|---|
| Base colors | primary, secondary, accent |
| Status colors | error, warning, success, info |
| Text colors | text, textMuted |
| Background colors | background, backgroundSubtle, backgroundElement |
| Border colors | border, borderActive, borderSubtle |
| Diff view colors | diffAdded, diffRemoved, diffContext, etc. |
You don’t need to define all the color keys. Any undefined colors will fall back to the default opencode theme colors.
Color definitions
Color keys can take:
-
Hex string: A single hex color string, like
"#aabbcc", that’ll be used for both light and dark terminal backgrounds. -
Light and dark colors: An object with
darkandlighthex colors that’ll be set based on the terminal’s background.