194 Material Design 3 (Material You) themes
for the OpenCode TUI: 9 variants × 12 hues
(monochrome only ships hue 0), plain + OLED. Each file carries
both light and dark appearances (OpenCode switches itself).
Active set is generated from
src/dynamic/(OpenCodeDynamicSchema+OpenCodeDynamic: MD variant + HCT source in, all v2 tokens out).deprecated-theme/keeps the archived V1 static set.
| Light | Dark |
|---|---|
![]() |
![]() |
![]() |
![]() |
More screenshots in docs/ on GitHub.
- A terminal with truecolor support (
COLORTERM=truecolor), otherwise colors degrade to the nearest 256-color approximation. - Node.js 22+ (installer only; the themes themselves are plain JSON).
npx -y -p @sandlada/opencode-material-theme opencode-md3-themes installSubset example (expressive greens, plain only):
opencode-md3-themes install --variant expressive --hue 120,150 --oled plainOr copy the files manually (src/themes/ — the v2 set):
git clone --depth 1 https://github.com/sandlada/opencode-material-theme.git
mkdir -p ~/.config/opencode/themes
cp opencode-material-theme/src/themes/*.json ~/.config/opencode/themes/Then pick a theme with /theme. Theme files are not hot-reloaded: restart
the TUI (or leave and re-enter the session) after installing or switching
light/dark mode — see the upstream-issue note below.
md3-{variant}-{hue}[-oled].json, all lowercase:
{variant}:monochrome,neutral,tonal-spot,vibrant,expressive,fidelity,content,rainbow,fruit-salad{hue}: HCT hue0-330step30(monochromeonly ships hue0, source isHct.from(hue, 75, 50))-oled: the file whose dark half is pitch-black
npm install
npm --prefix dev-app install
npm run dev:app # theme lab: variant/HCT controls, TUI mock, export
bun scripts/check-dynamic.mjs # validate 648 combos
bun scripts/generate-dynamic-matrix.mjs --out ./src/themes # rebuild 194Light/dark switching can leave stale colors (e.g. markdown list text keeps the old mode's color) until restart — an OpenCode TUI bug, not a theme bug: anomalyco/opencode#55735, fix PR anomalyco/opencode#56323 (open, unmerged).
MIT, copyright Kai-Orion & Sandlada.



