One theme — a full VSCode/shiki theme — projected into every tool, switched with one command that live-reloads everything.
The fat format (a full VSCode theme) stays canonical. monotheme projects it down to 16-color ANSI for simple tools and passes it through at full fidelity for smart ones — so one file fans out into your whole environment.
Every target detects whether the tool is present and no-ops if not, so you only theme what you have. Adding another is a small adapter away.
chrome + TextMate syntax parity
bat / Sublime / any base16 tool
Requires Bun. Clone, install, point each tool's config at the slot once — future switches are automatic.
# clone + install git clone https://github.com/eduwass/monotheme cd monotheme bun install # expose the `theme` command on your PATH bun link # list available themes theme list
# project a theme everywhere + live-reload theme set shades-of-purple theme set github-light theme set catppuccin-mocha # the active theme theme current # follow the system light/dark mode (macOS) theme pair set github-light tokyo-night theme watch install
Full launcher + per-tool wiring: docs/INSTALL.md.
The highest-leverage contribution is a new tool adapter — theme one tool and everyone gets it for free. Adapters are small, pure functions; syntax colors are verified token-for-token against shiki.
A to*(theme) function returns your tool's format; a target writes it and reloads.
Most adapters are 20–40 lines. Personal adapters can live in
~/.config/monotheme/targets/ — no fork needed.
Pure adapters, no new deps, detect-and-no-op when a tool is absent, and verify syntax against the shiki oracle.
Contributing