Guides
A look that is exactly yours.
Loom's theme engine ships presets, but it also takes themes you write yourself, validated before they apply, with background images on top. This guide covers building one.
Start from the starter
Create a new theme in settings and Loom hands you a complete working starter: a dark variant with sensible workspace colors and a terminal palette already filled in. Editing a theme that works beats staring at an empty file, so change one color at a time and watch the workspace follow.
What a theme is
A theme is a small JSON document with a kebab-case id, a name, and one or both variants, light and dark. Each variant carries two things:
- Workspace colors. Background, foreground, cards, popovers, sidebar, accent, borders, and the rest of the surfaces you look at all day.
- A terminal palette. Background, foreground, cursor, selection, and a full 16-color ANSI set, so your prompt and every fleet session render in your colors, not someone else's.
You can also point each variant at an editor theme, and set a background image to work on top of. One file restyles the whole workspace: terminal, editor, and panels together.
Validation that tells you the truth
Every theme passes a validator before it applies, and its errors are precise. An id that is not kebab-case, a variants object missing both light and dark, a color key the engine does not recognize, or an ANSI array that is not exactly 16 entries each gets named by exact path. A broken theme never half-applies.
The format
A small file, the whole workspace.
This is already a valid theme. Every color key is optional, so start minimal, see how it sits, and layer in the sidebar, popover, and ANSI colors as the look firms up.
{
"id": "my-theme",
"name": "My Theme",
"variants": {
"dark": {
"colors": {
"background": "#0d0d10",
"primary": "#7dd3fc"
},
"terminal": { "cursor": "#e8e8ea" }
}
}
}Questions
Custom themes, answered.
Do I need both light and dark variants?
No. At least one of the two is required, and you can ship both if you want the theme to follow the light and dark sides of the workspace.
Will the terminal really match?
Yes. The terminal palette is part of the theme, and Loom's WebGL terminal renders true color, so your cursor, selection, and all 16 ANSI colors show exactly as written across every tab, split, and fleet session.
What happens if my JSON is wrong?
The validator rejects it with a specific error, down to the key that failed, and the theme is not applied until it passes. You fix the line it names, not the file at large.
Does any of this cost anything?
No. Loom is free and Apache-2.0, and the theme engine, presets, custom themes, and background images are all part of it. If you would rather not write JSON at all, the presets are one click.
Hand it the work.
Walk away.
macOS, Linux, and Windows. Around 13 MB. Free and open source.