This repository has been archived on 2026-10-08. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Miguel Palhas c856333e4a
ci / rust (push) Successful in 2m40s
docs(maestro): describe the single-host architecture
Rewrites CLAUDE.md as the current-architecture reference, drops the
registry from INSTALL/PRODUCT/DESIGN and the web README, deletes the
registry Dockerfile, and marks the dated design specs superseded where
they describe the registry, JWT auth, or cross-host attach.

The installer loses its configure step — every config field now has a
default, so a daemon starts with no config file at all.
2026-08-22 10:26:49 +01:00

3.3 KiB

Product

Register

product

Users

A single technical operator (a developer) managing every interactive shell and agent — Claude Code, opencode, plain bash — running on a machine. The job-to-be-done: from any device (laptop, desktop, phone), get an accurate at-a-glance picture of all live sessions on that host, then attach to one and drive its terminal. Usage is often glance-and-go: checking on a long-running agent, killing a stray session, or hopping into a shell mid-task. Mobile-first is a hard requirement — touch targets, viewport-fit safe areas, and bottom-sheet modals already reflect this.

Product Purpose

Maestro is a terminal-session orchestrator: one place to see and attach to every interactive session running on a machine. tmux for persistence, WebSocket for transport, one daemon per host. The web UI is the browser face of that system — it renders the session catalog and provides the attach terminal (xterm.js). Success = the operator trusts the picture is accurate and current, and can get from "open the page" to "typing in the right session" in seconds, on any device.

Brand Personality

Three words: precise, calm, alive. This is infrastructure tooling — it must read as trustworthy and exact, never toy-like — but it watches living processes, so status must feel present and current, not static. Voice is terse and technical, matching the CLI and the repo's terse house style. It is a craftsman's tool: opinionated, monospace-literate, with quiet personality rather than decoration. Emotional goals: in control / confident, fast / efficient, calm / uncluttered, with earned moments of delight.

Anti-references

  • Generic Tailwind-admin / SaaS-cream dashboards.
  • Heavy gradients, glassmorphism, glass cards as decoration.
  • Playful, rounded, "friendly app" aesthetics that undercut the infrastructure-tool trust.
  • Whitespace-maximalist layouts that trade away the at-a-glance scan for "elegance."
  • Anything where you could guess the design from the category alone ("terminal tool → CRT-green-on-black novelty"): the orchestrator identity is earned through restraint, not costume.

Design Principles

  1. The scan is the product. Optimize for instant comprehension of "what's running, where, and is it healthy" across many sessions. Status legibility beats everything else.
  2. Calm under load. Stay uncluttered whether there are 3 sessions or 300; hierarchy and grouping carry the weight, not color-shouting every row.
  3. Fast and keyboard-literate. Low-friction, efficient, gets out of the way; honor keyboard navigation, don't make the operator hunt.
  4. Monospace as identity. Treat the mono/sans pairing as deliberate brand typography, not just terminal output. Ids, paths, counts, and state read as precise technical data.
  5. Earned delight. Personality lives in motion and micro-detail (live-status pulse, attach transitions, cursor cues), never in noise — always craft.

Accessibility & Inclusion

Standard good practice, applied rigorously: WCAG AA contrast for all text and status, visible keyboard focus on every interactive element, and a full prefers-reduced-motion alternative for every animation. Status must never rely on color alone (pair the dot with a label/shape). Dark and light themes are equal citizens, driven entirely by CSS custom-property tokens.