apply
Set chaff up in the folder: chaff.yaml for the chosen genre, today's findings shelved in .chaff-baseline.json, and, when asked, a…
Build a colour scheme of your own for MulmoTerminal — one that joins Midnight, Nord, Daylight and Solarized in Settings' theme picker and can then be pinned per project. Writes `themes` in `~/.mulmoterminal/config.json`, the whole-app palette (panels, borders, accent, text).
$ npx -y skills add receptron/mulmoterminal --skill mulmoterminal-theme --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/mulmoterminal-themeContext preview
The summary Claude sees to decide when to auto-load this skill.
Build a colour scheme of your own for MulmoTerminal — one that joins Midnight, Nord, Daylight and Solarized in Settings' theme picker and can then be pinned per project. Writes `themes` in `~/.mulmoterminal/config.json`, the whole-app palette (panels, borders, accent, text).
name: mulmoterminal-theme description: Build a colour scheme of your own for MulmoTerminal — one that joins Midnight, Nord, Daylight and Solarized in Settings' theme picker and can then be pinned per project. Writes `themes` in `~/.mulmoterminal/config.json`, the whole-app palette (panels, borders, accent, text). Settings → Theme can copy an existing theme and change its colours one by one; this skill is for a scheme described in words or drawn from an image, contrast checking, and the terminal's own `term` palette. Use when the user wants their own theme, a dark/light variant that isn't shipped, a scheme drawn from a painting, a photo or a brand's colours, or says the built-in themes are too dark, too blue, too low-contrast. For colouring ONE project's cell (its badge and header), or assigning an existing theme to a directory, use mulmoterminal-dirs instead.
`themes` in `~/.mulmoterminal/config.json` defines schemes that appear in Settings' picker next to the four built-ins, and that a project can then name in its `.mulmoterminal.json` `theme` key. Settings can choose a theme, and copy one and change its colours one at a time (Settings → Theme → Your own theme). What it cannot do is design one — from a mood, a photo or a brand, with contrast checked — or set the terminal's `term` palette. This skill is that path.
This is the **whole app's** palette — panel backgrounds, borders, accent, text. A single project's badge and header colours are a different thing (`mulmoterminal-dirs`).
Ask for the direction first, with concrete options rather than "what colours?":
This is the easiest to do well: take 5–8 colours off the source and assign them to roles.
and write only the keys that differ.
{ "id": "arles", "label": "Van Gogh (Arles)", "extends": "daylight", "colors": { "--accent": "#c8971e" } }`solarized`). Anything you leave out is inherited. Start here — it is far easier to get right, and a three-key diff is a real theme.
when the config is saved, not when the theme is painted: an incomplete theme with no base is **rejected outright** rather than half-applied, because the missing half would inherit whatever the previous theme left on the element.
Assign the source's colours to roles, then say what each one is doing before you write it. Rules that matter more than taste:
gamma-decode each channel (`c/255`, then `c<=0.03928 ? c/12.92 : ((c+0.055)/1.055)^2.4`), weight `0.2126 R + 0.7152 G + 0.0722 B`, ratio `(lighter+0.05)/(darker+0.05)`. Aim for **4.5:1 or better** for `--text`, and don't let `--text-muted` fall below **3:1** — a beautiful palette that can't be read is the usual way this goes wrong.
the source; the accent wants its most saturated note. Taking six vivid colours and putting them in six roles produces something unusable at 12px.
`themes` is a **partial `POST /api/config` merge** — write only `themes`, so the user's other settings survive. Send the **whole array**, existing entries included: it replaces, it does not append, and a lone new entry silently deletes the rest.
Then: **reload the tab**, open Settings, and pick the theme. It does not appear until the page re-reads the config. If the file was hand-edited while the server was running, the server needs a restart too.
Ask what to change and adjust. The picker is the real preview — apply and look, rather than describing.
A theme is global. If the user wanted "this project in my new scheme", the second half is `"theme": "<id>"` in that project's `.mulmoterminal.json` — hand off to `mulmoterminal-dirs`.
{
"themes": [
{ "id": "arles", "label": "Van Gogh (Arles)", "extends": "daylight", "colors": { "--accent": "#c8971e" } }
]
}| Field | Rule | |---|---| | `id` | **Required.** Lowercase letter first, then lowercase/digits/dashes, ≤ 32 chars (`^[a-z][a-z0-9-]{0,31}$`). It becomes a `data-theme` attribute value and is what a project's `theme` key names. | | `label` | **Required.** What the picker shows, ≤ 40 chars after trimming. | | `extends` | Optional: `"midnight"` / `"nord"` / `"daylight"` / `"solarized"`. Omit only if you set all 20 colours. | | `colors` | Hex only — `#rgb` / `#rgba` / `#rrggbb` / `#rrggbbaa`. **A key outside the 20 drops the whole theme**, so check spelling before writing. | | `term` | Optional. The xterm palette, set outright — see [The terminal palette](#the-terminal-palette-term) below. Same hex rule, and its own key vocabulary. |
**`id` must not be a built-in id.** `midnight`, `nord`, `daylight` and `solarized` are refused rather than merged into — someone reading the guide's description of Midnight has to get Midnight.
The hex shape is doing security work in `colors`, not tidiness: those values land in CSS custom properties, so one that escaped the shape would be injected into a style declaration. `term` goes to a canvas instead, where the risk is different and still real — xterm throws on a colour it cannot parse, and it th
Run multiple coding-agent sessions in parallel — and see which one needs you. A browser terminal for parallel AI coding agents: several sessions side by side, each in its own cell, with the one that needs you marked in colour.
Set chaff up in the folder: chaff.yaml for the chosen genre, today's findings shelved in .chaff-baseline.json, and, when asked, a…
Measure what chaff reports on the named documents today, as the kind the person chose, and propose the setup — changing nothing…
Answer each question from the named documents only, quoting where the answer is written, or saying plainly that the documents do…
Add the approved answers to FAQ.md when the person chose to keep them, after what it already holds; change nothing otherwise.
Build the spec's operations as the Worker's API, with validation and tests.