Skip to content

ports · Multiplexers

SP Night for herdr

The agent sidebar, panes, tabs and toasts — including the four colours that say what each agent is doing.

Preview

herdr themed with SP Night Noite Paulistaherdr themed with SP Night Garoaherdr themed with SP Night Pico do Jaraguá

All three are dark, by decision. The previews below are synthetic — drawn from the palette itself, so they can never drift from what you install.

Install

the file goes here
~/.config/herdr/config.toml
the file goes here
~/.config/herdr/config.toml
the file goes here
~/.config/herdr/config.toml

Those are the paths for the flavour selected in the header — switch it and they follow.

herdr keeps everything in one file, ~/.config/herdr/config.toml, and a custom theme is a [theme.custom] table inside it. There is no theme file to drop in and no include to point at one.

Open the flavour you want and paste its [theme.custom] block at the end of your config:

sh
curl -L https://raw.githubusercontent.com/sp-night/herdr/main/themes/sp_night_noite.toml

Then apply it without restarting anything:

sh
herdr server reload-config

What gets themed

`theme.custom` token role what it is
text / subtext0 ui.fg / ui.fg_dim primary and secondary labels
overlay1 / overlay0 ui.fg_dim / ui.fg_muted the two quiet steps — overlay0 also marks an agent whose state is unknown
sidebar_bg ui.panel the sidebar is permanent furniture, so it sits on exposed concrete
panel_bg ui.float modals and overlays drop to the vão, separating by depth rather than by a border
surface0 / surface1 ui.selection / ui.line the selected row in vidro, the merely active one a step below
surface_dim ui.border fiação, the wiring between panes
accent ui.accent the focused border, in sódio — the lamp this whole palette is named for
red / yellow diagnostic.error / diagnostic.warn an agent Blocked, an agent Working — the two you look for first
teal / green diagnostic.hint / diagnostic.ok finished and not yet seen, then finished and acknowledged. herdr distinguishes the two, so the theme does
blue diagnostic.info the toast that says a run finished
mauve syntax.type branch names and the special labels beside them
peach ui.accent set for completeness. herdr defines it in every built-in theme and accepts an override, but nothing in the interface paints with it today

herdr.toml.tmpl is the full record of which theme.custom token means which role — the table above in complete form. The files in themes/ are what it resolves to, one per flavour.

You never need it to use the theme: the shipped files are plain text and final. It is here so the mapping survives, and so a retuned palette can be rolled through this port without anyone re-deciding what the four agent-state colours mean.

What each role means →

Where the colours come from

No hex in this repo was picked by hand. Every value comes from the SP Night palette through its role layer, both published as data: palette.json and roles.json. The contrast floors those colours have to clear are written down in the spec and enforced in CI.