The product's UI. Every
component below is reproduced with the Console's own design tokens, so what you see is the product, not an
impression of it.
Correction: Headbox has a design system, and this is it
An earlier version of this page claimed Headbox shipped no UI and no design system. That was wrong. It was
read from the CLI repository alone, but the Console ships from a different codebase, and it carries a disciplined system:
30 CSS custom properties, three themes (dark, medium, light), a real 6 / 10 / 14 radius scale,
Inter and JetBrains Mono, and a 4px spacing rhythm.
The most distinctive part is the accents. --c-ag#6366f1,
--c-cc#f97316, --c-cx#22c55e and
--c-cd#e879f9 are not a palette. They are an agent identity system.
Indigo means Antigravity in every theme; the wordmark is a gradient of three of them. They are deliberately
theme-invariant: medium and light override only backgrounds, borders, text and shadow, never
an accent, a radius or a font.
The other defining trait is density. Around 80% of the Console's text is 9-12px. It is reproduced at those
sizes here. If it reads small, that is the product.
62
Components
30
Tokens
3
Themes
6/10/14
Radii
0
Font files
Two things reproduced as shipped, not as designed
No icon system. In 5,274 lines there is no icon library and no SVG sprite: just 2 hand-written SVGs and 49
unique emoji, including the theme switcher. Emoji cannot take currentColor, so they ignore the theme
system entirely. Substituting a real icon set here would look more professional and be a lie.
No font files ship. Inter and JetBrains Mono load from a CDN; offline, the product silently falls back to the
system stack. This site loads them the same way for the same reason: see the CSP note in site/_headers.
App Shell & Navigation
The frame every workspace renders inside. The shell is a mode machine: Live restyles the whole grid rather than swapping one panel.
🖼️
App shell Shipped
Three-column grid: filter rail, session sidebar, main. Five state classes reshape it.
How you find one thread among hundreds. The filter rail physically relocates the live filter DOM at ≥1100px rather than duplicating it, one source of truth, two placements.
Nine conditional markers: sub-agent, archived, worktree, no-headbox, counts. Note "⬡ NO HEADBOX" is itself a Headbox governance signal surfaced in the UI.
Headbox Console · public/index.html:3224 · .badge
Assorted
subworktree⬡ NO HEADBOX3 md12 img
🚀
Live launch Shipped
Only rendered when the thread is actually readable: capability shown, not promised then failed.
The governance hub: 13 anchored sections covering settings, artifacts, automation, team, plugins and projects. This is the CLI's data given a face, and it is the part the roadmap still calls "planned".
🎯
Hero Shipped
Project identity and the path Headbox is governing.
A primitive with six contextual skins rather than a component with modifiers: .primary, -sm, -live, -icon.
Headbox Console · public/index.html:110 · .btn
Skins
🎟️
Badge Shipped
The generic marker primitive.
Headbox Console · public/index.html:110 · .badge
Default
mdimgrec
Recovery
A separate page (recovery.html) for when an agent's session store breaks. It forks the tokens rather than importing them. Noted below, because it will drift.
recovery.html redefines the tokens instead of sharing them, with a different accent set and no theme support. Shown because it is a real drift risk, not a design choice.
Headbox Console · public/recovery.html:14-39
The divergence
samebg / text / radius
differs--c-cyan: #06b6d4 · no --c-cc/--c-cx/--c-cd