This repository moved to https://github.com/sainzs/agent-workbench/tree/main/themes. History was preserved via subtree, and this repository is frozen at its last version. The existing curl one-liner still works (scripts/get.sh now fetches from the monorepo). Preferred install: curl -fsSL https://raw.githubusercontent.com/sainzs/agent-workbench/main/themes/scripts/get.sh | bash -s -- pi.
Nine keepers. One phosphor each. Hierarchy from brightness, never from a second hue.
At a glance
- 6 phosphor tubes — amber, green, teal, blue, violet, orange
- 1 flagship — electric mint on true OLED black
- 2 hours — Rosé Pine dawn, Catppuccin noon (the only light theme)
- Ports: Ghostty, WezTerm, iTerm2, Alacritty, kitty, Windows Terminal, Pi, Prime
- Contract:
python3 themes/pi/validate_themes.py --strict
| Theme | Glow | Ground |
|---|---|---|
reckoner-exect |
amber 39° | #16100a — VT520 gold standard |
reckoner-factory |
orange 20° | #000000 — safety orange on true black |
reckoner-scope |
green 138° | #0a120c — P1 phosphor, DEC VT640 |
random-access-theme |
mint 162° | #000000 — flagship, Daft Punk |
reckoner-darkspace |
teal 174° | #020b0c — dark.spaceAMP wireframe |
reckoner-wopr |
blue 205° | #0b1d3a — the WOPR console |
reckoner-dusk |
violet 261° | #1c1b29 — lavender twilight |
amanecer |
rose 2° | #191724 — Rosé Pine, dawn |
mediodia |
paper 266° | #e6e9ef — Catppuccin Latte, noon |
The other six cards live in assets/pi/. Seven hue-duplicates
(amnesiac, anochecer, atardecer, madrugada, ocaso, veridis, voyager) sit in
archive/themes/pi/ — not gone, just off the picker.
curl -fsSL https://raw.githubusercontent.com/sainzs/random-access-themes/main/scripts/get.sh | bash -s -- piTargets: alacritty · wezterm · ghostty · kitty · iterm2 · windows-terminal · pi · all.
The pi target installs the nine keepers. Pin a release with RAT_REF=v0.1.2.
Add --dry-run to preview.
bash scripts/install.sh --dry-run
bash scripts/install.sh --theme reckoner-exectLinks every keeper into ~/.pi/agent/themes/ (and ~/.prime/agent/themes/
with the prime target), writes Ghostty from the generated export, backs up
what it replaces. Then /reload in the agent.
/theme reckoner-exectpi resolves a theme by the name inside the JSON, not the filename, and falls
back to built-in dark silently. After install, the name in
~/.pi/agent/settings.json must appear in ls ~/.pi/agent/themes/.
| exect | scope | wopr | darkspace | dusk | factory | random-access | |
|---|---|---|---|---|---|---|---|
| Ghostty | conf | conf | conf | conf | conf | conf | conf |
| WezTerm | toml | toml | toml | toml | toml | toml | toml |
| iTerm2 | itermcolors | itermcolors | itermcolors | itermcolors | itermcolors | itermcolors | itermcolors |
| Alacritty | toml | toml | toml | toml | toml | toml | toml |
| kitty | conf | conf | conf | conf | conf | conf | conf |
| Windows Terminal | json | json | json | json | json | json | json |
amanecer and mediodia are pi-only (upstream already ships the terminals). Veridis, voyager and amnesiac still have terminal and editor ports; they are no longer in the pi picker.
A real CRT could not show many hues, so it built hierarchy out of luminance — dim for what is resting, bright for what matters, a hot peak for what is happening now. The six reckoners spend a single phosphor the same way. The flagship compresses the same idea onto OLED black with a mint family and 17.44:1 text contrast.
The thinking ramp is chroma, not lightness. Driven harder, a phosphor gets
more vivid, never more white. make validate enforces it across all nine.
Full philosophy: docs/phosphor-themes.md · docs/design.md · contract: themes/pi/THEMES.md.
Python 3.9+, pyyaml. Two pipelines, opposite directions: flavors generate
from palette/*.yaml; phosphors generate terminal exports from
themes/pi/reckoner-*.json. Never run one over the other's source.
| Command | What it does |
|---|---|
make generate |
Terminal themes from palette YAML |
make phosphor-exports |
Phosphor terminals from the pi JSON |
make validate |
Structure, freshness, ramps, no drift |
make contrast |
Full WCAG report |
make check |
generate + phosphor-exports + validate + contrast + tokens |
python3 themes/pi/validate_themes.py --strictMap of what is source and what is derived: docs/manifest.md.
| Tool | File |
|---|---|
| tmux | integrations/tmux.conf |
| fzf | integrations/fzf-export.sh |
| bat | integrations/bat-config |
| delta | integrations/gitconfig-delta |
| Starship | integrations/starship.toml |
| eza | integrations/eza-export.sh |
| shell extras (optional) | integrations/shell-extras.sh — eza aliases, fzf previews, man via bat |
| Terminals as a set | integrations/terminal-theme/ — one theme.toml → Ghostty, kitty, iTerm2 (dynamic profile), Warp, shell palette; glass + motion; WCAG + ΔE gates |
The integrations are written against ANSI slots, not hex: blue/colour4 is
whatever accent the terminal theme puts in slot 4, so one starship/tmux/fzf/eza/
bat/delta config serves every flavor and tube. terminal-theme puts a different
tube's green in slot 4 per terminal (scope in Ghostty, aerodynamic mint in
kitty, darkspace teal in iTerm2, exect phosGreen in Warp), read straight from
themes/pi/*.json.
Design tokens for web work live in tokens/. make tokens rebuilds them.
MIT for everything original here.
amanecer is a Rosé Pine port (MIT). mediodia is Catppuccin Latte (MIT).
The archived day-cycle ports keep their upstream licences in NOTICE.




