Skip to content

Cockpit & MOTHER

Phase 14 design. Most sub-phases shipped 2026-05-05 (Sessions tab, terminal lock-in, mobile PWA polish); MOTHER bridge landed 2026-05-07 (4869422); TOPO renderer + planet detail + NOW lane landed 2026-05-09 (75cf5aa, 12b44b2, 2ab5b91). This page synthesizes the 1036-line design at ~/.optimalos/transfers/fabric-design/04-cockpit-and-mother-design.md against current code.

Sub-phase status

Sub-phaseTitleStatusCode
14-1Sessions tab — list-then-form, SSE-readyShipped 85d8226 then redesigned 68cf6db (Item G)client/sessions/index.ts, client/sessions/sse-parser.ts, GET /api/sessions/devices, GET /api/activity
14-2TOPO renderer (starmap)Partially shipped — home + planet-detail landed (merge 098381e, commits 75cf5aa + 12b44b2); BOARD-wrapped variant still pendingclient/topo/{index,sculpture,stack,state,planet-detail,today-lane,mother-chat,mission-clock,activity-drawer}.ts
14-3Terminal lock-in / two-pane derived/rawShipped ee414b6 (+ replay wire-up 0eed264, replay endpoint 8931546)client/terminal-lockin/
14-4Fuel meter chrome (THROUGHPUT/MISSION/YIELD)Retired 2026-05-09 (c5cc6c1, Phase A1-A4 chrome retirement) — was shipped a4807bagone
14-5Mobile PWA polishShipped b815e17client/styles/sessions.css mobile breakpoints + manifest + service worker

Aesthetic

  • Bloomberg Terminal × Project Hail Mary × Alien × Interstellar
  • Amber-on-black palette (CRT pretense, not retro affectation)
  • Panels-not-streams: every surface is a static panel that snapshots state, not a chat scroll. Logs go to a separate raw-stream pane.
  • Mobile-first iPhone Safari with Web Speech API + Web Push + passkeys. iPad and desktop are progressive enhancements.
  • JetBrains Mono for monospace; Inter only for chrome.

TOPO home — what the cockpit boots into

Fabric origins (fabric.optimal.miami) render TOPO instead of the legacy widget dashboard. Entry at client/topo/index.ts mounts:

SurfaceWhat it showsSource
Sculpture / Stack (≥768px / <768px)Devices as planets, sessions as ships, MOTHER bubble centered. Click a planet → planet-detail.client/topo/{sculpture,stack}.ts, polls /api/devices via state.ts
NOW laneTop 3 priority-triage briefs from GET /api/morning (lane caps: ≤3 NOW, ≤7 NEXT, ≤30 LATER per src/triage/prompt-builder.ts). Replaces the legacy today widget.client/topo/today-lane.ts (mounted by index.ts:98)
MOTHER chatClick the MOTHER bubble → modal (desktop) / bottom-sheet (mobile) with model picker (qwen2.5-coder:7b default, gemma2:9b, qwen2.5:14b, free-text). Cmd/Ctrl+Enter sends; STOP cancels via DELETE /api/sessions/:id.client/topo/mother-chat.ts
Activity drawerUnified bottom-sheet of fabric/tmux/loom rows from GET /api/activity. Per-row drill-downs route through client/activity/row-drilldown.ts.client/topo/activity-drawer.ts
Mission clockTop-right (desktop) / header strip (mobile); layout-independent.client/topo/mission-clock.ts
Vault statusPer-recipient revoke + access log live in the planet-detail "Vault" section per device, plus the legacy /vault/dashboard SPA route.planet-detail §6

A separate Sessions tab (unified list-then-form, 68cf6db) lives off the tab bar — it lists running/recent fabric + tmux + loom sessions across all paired devices, with a "Start new" form below. See sessions.md.

Planet detail — per-device drill-down

Phase A3 + E1, commit 12b44b2. Click any planet on TOPO to open a modal (desktop) / bottom-sheet (mobile) reading GET /api/devices/:id. Sections render top-to-bottom in "anxiety order":

  1. Identity — label · hostname · tailscale IP · age pubkey · paired-at
  2. Runtime — status pill · RAM free · connected duration
  3. Active sessions — sessions targeting THIS device only
  4. Capabilities — pill grid (mother-llm, gpu-cuda, harness:claude-code, ram:31g, etc.)
  5. Harnesses — installed harnesses list
  6. Vault — the device's own age recipient row, with revoke
  7. Variant — capability-driven extra section (MOTHER STATUS, WORKHORSE STATUS, CLOUD STATUS, 🦞 OPENCLAW STATUS)
  8. Actions — Ping · Refresh caps · Open MOTHER · Open OpenClaw

Replaces five legacy widgets in one drill-down: system, gateway, openclaw-access, openclaw-visibility, cron. Design doc: ~/.optimalos/transfers/planet-drilldown-design-2026-05-08.md.

Chrome retirement (2026-05-09)

Eight legacy dashboard widgets were deleted in cc3e2ba (chore(legacy/cleanup): delete 8 widgets superseded by Phase A fabric ports) after TOPO ports landed:

  • today → ported to TOPO NOW lane (75cf5aa)
  • alerts → ported to chrome alerts pill (d008452)
  • endpoints → ported to chrome services + sites slide-over (2ab5b91)
  • system, gateway, openclaw-access, openclaw-visibility, cron → all rolled into per-device planet-detail (12b44b2)

Additionally, the fuel meter chrome (THROUGHPUT / MISSION / YIELD readings, Phase 14-4) was retired in c5cc6c1 along with the standalone "Pair Device" nav, as part of the chrome slot consolidation (c5cc6c1 — feat(fabric/chrome): retire fuel meter + Pair Device nav + chrome slots). The proof-of-burn ambitions deferred indefinitely; tokens are tracked in Phoenix traces instead.

MOTHER

Parent AI; named after the ship's mainframe in Alien and the AI in Project Hail Mary. Now wired end-to-end as of commit 4869422 (feat(fabric): MOTHER bridge — local LLM adapter + cockpit chat panel).

Locked decisions

  • Local model only — Ollama only. Never cloud LLM. Privacy (MOTHER sees plaintext), cost ($0 marginal), latency (no roundtrip).
  • Authority v1 = narrate + suggest only. MOTHER cannot act. v2 (Phase 16) gates auto-act behind phone-push approval.
  • Quantized model in the 7B–14B range. Default qwen2.5-coder:7b; cockpit picker also offers gemma2:9b, qwen2.5:14b, and a free-text override.
  • Context source: Phoenix traces + active session stdout + Loom kanban state + recent vault access log. MOTHER never sees decrypted credential content.

How the bridge works (commit 4869422)

  1. Cockpit click on the MOTHER bubble (TOPO sculpture or stack) → mother-chat.ts opens the modal/bottom-sheet.
  2. User types a prompt, hits Cmd/Ctrl+Enter → POST /api/sessions with harness: "mother-llm", deviceTarget: "auto".
  3. Cloud's capability-aware scheduler (src/server/device-router.ts, Phase 12-1 commit c125cfa) injects the implied mother-llm capability requirement via HARNESS_REQUIRES_CAPABILITY (src/fabric/types.ts:42), hard-filters to devices that both expose the capability tag AND list mother-llm in installedHarnesses, then soft-scores by ramHeadroom * 0.5 + inverseLoad * 0.3 + heartbeatFreshness * 0.2.
  4. Today's only mother-qualified device: pop-os (i7-12700, 32 GB RAM, RTX 3060 12 GB), paired with --capabilities mother-llm,gpu-cuda,ollama. Pi 5 (16 GB, no GPU) is not in the candidate set.
  5. Daemon spawns ollama run [--format json] <model> <prompt> via the mother-llm adapter (src/daemon/adapters/mother-llm.ts). Empty cred-allowlist — no provider keys. Inherits HOME, PATH, OLLAMA_HOST, OLLAMA_MODELS, CUDA_VISIBLE_DEVICES.
  6. stdout streams back as session.stdout envelopes; cockpit renders into the chat panel; STOP fires DELETE /api/sessions/:id.

The scheduler now accepts pop-os correctly per commit a290d7a (fix(triage/mother): scheduler accepts pop-os now + default to coder model) — the capability detector in src/daemon/capabilities.ts was extended to map mother-llmollama binary so the daemon advertises both harness:mother-llm AND installedHarnesses: ["mother-llm", ...].

MOTHER's device.installedHarnesses contract

Pair-time --capabilities mother-llm,... declares operator intent; runtime heartbeats publish actual binary detection. As of 6fccb61, pair-time tags are durable: WSMultiplex.absorbHeartbeat MERGES the runtime set into the pair-time set rather than replacing it, so the mother-llm tag from pairing survives heartbeat updates that don't re-list it.

What MOTHER will narrate (v1 surface)

  • "You opened a Claude session on pop-os 4 minutes ago, no output yet. CPU is at 8% — not blocked on compute. Check the harness logs."
  • "Three vault recipients are revoked but their device JWTs haven't expired." (Note: T4 cross-check + 13b-1 revocation cascade now close that gap automatically.)
  • "Last two optimal board view calls were 1.2s and 4.5s. Latency drift detected; Loom poller is at 87% of its budget."

Per-session JSONL logs land in ~/.optimalos/mother-sessions/ (override via OPTIMALOS_MOTHER_SESSIONS_DIR) — see src/daemon/handlers/session-start.ts §MOTHER log writer.

Two-pane terminal redesign (14-3, shipped)

Replaces the previous single-stream terminal. Code at client/terminal-lockin/.

PaneContentPersistence
Left (derived state)Status snapshots updated every render: file diff, env vars set, exit codes per command, MOTHER's running summaryRefreshed on every change
Right (raw stream)Stdout/stderr lines exactly as emittedAppend-only; copy-friendly

Resizable splitter; left pane defaults to 40% on desktop, slides into a tab on iPhone. Both panes addressable via keyboard. Replay endpoint GET /api/sessions/:id/stream wired in 0eed264 so old sessions can be re-rendered into both panes.

iPhone PWA (14-5, shipped)

Mobile-first means the Tier-1 surface is iPhone Safari, not desktop. Code at client/styles/sessions.css mobile breakpoints + manifest + service worker.

  • Web Push for MOTHER suggestions and approval gates (Phase 16)
  • Web Speech for voice input on TOPO ("show me pop-os") and dictation in the terminal
  • Passkeys via WebAuthn (already wired in Phase 10a)
  • Service worker for offline read of dashboard + cached cockpit assets
  • App-icon adds; no App Store presence

iPad and desktop reuse the same code with breakpoints; no native apps.

What's NOT in MOTHER v1

  • No auto-act. MOTHER cannot run commands, edit files, push code, send messages, or modify state. v1 narrates and suggests, full stop. Phase 16 gates auto-act behind phone-push approval per session.
  • No multi-turn context. Ollama CLI is one-shot per invocation; HTTP /api/chat switch is the v2 path (per commit 4869422 "NOT in this scaffold" note).
  • No memory beyond the current Loom run window. MOTHER doesn't persist a model of you.
  • No cloud fallback. If the local model is down, MOTHER is silent. We never bounce to Anthropic / OpenAI for commentary on plaintext data.

Source

  • Full design doc (1036 lines): ~/.optimalos/transfers/fabric-design/04-cockpit-and-mother-design.md
  • TOPO charter (2026-05-09 cleanup): planet-drilldown design at ~/.optimalos/transfers/planet-drilldown-design-2026-05-08.md
  • MOTHER bridge commit: 4869422
  • MOTHER scheduler fix: a290d7a
  • Chrome retirement: cc3e2ba, c5cc6c1
  • Cockpit decision amendments: 03-decision-ledger.md #18 (fuel meter unit), #25 (TOPO default screen)
  • Hermes harness drop: Decision #24 — catalog locked at CC + Kimi + Codex + OpenClaw + OpenCode + MOTHER

Built by Carlos Lenis in Miami