← index2026-05-09 14:56 (Beirut)(backfill from DOCUMENTATION/)

Overall Plan — Mac Brian Control Center

Overall Plan — Mac Brian Control Center

Architecture pivot 2026-05-09 (later afternoon, Jonah): v4 — HeyBrian app becomes the host of everything. User installs HeyBrian, gets the whole system. App closed → everything down. mac.jonahtebaa.com is the same product viewed remotely.
Source-of-truth design: 02_v4_heybrian_consolidated.md (codex round-table integrated). 01_control_center_architecture.md keeps the wire protocol (HMAC, /v2/action, capability registry) that v4 inherits.
Status keys: DONE | IN PROGRESS | TO DO


Already shipped (v3 — v4 will reuse these as the wire protocol)


v4 Phases (the real plan from here)

Phase 1 — HTTP control plane in HeyBrian (smallest first ship) (NEXT)

Per codex: ship JUST the HeyBrian-hosted HTTP control plane + audit/security parity. Defer visual rewrite + remote PWA polish until executor parity is proven.

Phase 2 — Native overlays (visual rewrite)

Phase 3 — mac.jonahtebaa.com is the remote view

Phase 4 — Pull the rest of Hammerspoon into HeyBrian (later)

v3 sections that pre-dated v4 — status update


(legacy v3 section header — kept for reference)

Section 1 — Action Router + Capability Registry on the control center (NEXT)

Goal: turn the existing UI module into a true control center. Every Mac action enters through one HTTP endpoint, the router renders the UI around it, and a JSON registry decides whether it's allowed.

Section 2 — Cpanel (/cpanel)

Section 3 — Hetzner becomes a thin client

Section 4 — HeyBrian wired in

Section 5 — Voice (Gemini Live + Puck) wired in

Section 6 — CLI thin-client

Section 7 — Cleanup


What this consolidates (the "why")

Today's mess: a half-dozen scripts can paint the Mac and trigger TTS. Each is its own painter. The breathing-border rule has to be applied (or accidentally bypassed) at every one.

After v3: one painter, one auth, one toggle panel, one audit log. The breathing-border rule is in the control center's dispatch path — apply it once, it covers everything forever. HeyBrian, voice, Hetzner, and the CLI all become callers, not painters. Jonah can flip any capability on/off from the cpanel without redeploys.