Skip to content

About

Nine phosphor themes for terminals and agents. One hue each. Hierarchy from brightness.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Moved

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.


Random Access Themes

CI License: MIT Release

Nine keepers. One phosphor each. Hierarchy from brightness, never from a second hue.

nine keepers, contract green

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

The nine

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

reckoner-exect

random-access-theme

mediodia — the only light theme

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.


Install

install nine keepers

One line, no clone

curl -fsSL https://raw.githubusercontent.com/sainzs/random-access-themes/main/scripts/get.sh | bash -s -- pi

Targets: 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.

From a clone

bash scripts/install.sh --dry-run
bash scripts/install.sh --theme reckoner-exect

Links 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-exect

pi 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/.

Terminals

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.


Why it looks like this

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.


Development

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 --strict

Map of what is source and what is derived: docs/manifest.md.


Integrations

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.


License

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.

About

Nine phosphor themes for terminals and agents. One hue each. Hierarchy from brightness.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages