Quit without fear. It keeps going.
Relaunch and everything is back: windows, the session tree, scrollback, and true Claude/Codex resume. Better still, agents carry on by themselves — with auto-continue, an interrupted session resumes and keeps working after a restart, no prompt needed. Even usage limits don't stop you: Maestro flags a rate-limited agent, counts down to its reset, and continues the instant your quota is back — so long-running work finishes while you're away. ⌘⇧T reopens closed tabs, and the terminal keeps up with WebGL rendering, ⌘F find, ⌘P palette, font zoom, split panes, and light/dark themes — signed, notarized, and self-updating.
Put work aside — bring it right back.
Not every session needs to be in your face. Stash the ones you're pausing onto a visible shelf; archive the finished ones into closed history to clear the sidebar. Bring any of them back — with the agent, resumed — in one click or a single CLI verb. Closing a tab archives it by default behind an undo countdown, and fuzzy search finds anything you've shelved.
Every agent, one glance.
Projects group sessions into a lineage tree of status cards, each with a live timer — and every state has a color, so one glance at a card's pill tells you exactly what an agent is doing and whether it needs you. When an agent needs an answer (prompt) or has work ready to check (review), the card flips state, an unread dot lights up, a live terminal popup appears, and a native macOS notification takes you straight to the right tab. Cards show the model and context size at a glance, plus job and state badges you name yourself — call the work whatever it actually is, and each name keeps its own stable color — and any links you pin to a card, like a branch, a ticket, or a preview URL. Lost track of one? Quick-open finds a session by name, model, account, status, job, state, link, or agent kind.
All your agent accounts, one fleet.
Claude, Codex, and Kimi all run side by side — sign in to every account you have, work, personal, the spare Max plan, each with isolated credentials and a live usage meter. New sessions pick an account by strategy: spread work evenly, grab the most headroom, rotate, or always ask. When an account hits its usage limit mid-run, the session fails over to a fresh one and keeps going — and you can swap any session's account mid-conversation from the card, the context menu, or maestro swap --account. When a login goes stale the row flags revoked or expired — click the badge to re-authenticate in place, no session lost — and each row shows its plan's renewal date. Even a claude you hand-type into a shell binds to an account automatically.
Adding an agent doesn't mean waiting on us, either: Kimi ships as a built-in extension, so a provider brings its own accounts, credentials, and models to the same fleet.
The ones that need you come find you.
The instant an agent wants your input or finishes, Maestro fires a native macOS notification — click it and you land on the exact tab. A live terminal popup mirrors the session so you can answer without hunting for it. Nothing slips through: a built-in notification center keeps the full history with one-click restore and mark-as-read, unread tabs light up in the sidebar, and ⌘U jumps to the next thing waiting on you. Choose exactly which states notify you in settings.
Read and edit right beside the agent.
Every session carries a side panel with its own tabs, so you can open a file in a built-in editor without leaving Maestro. Click a path in the terminal or hit ⌘P to jump straight to it. It reads like an editor should: ⌘-click a symbol or an import to jump to its definition, and ⌘[ / ⌘] walk back and forward through everywhere you've been. A dirty-diff gutter marks exactly what changed since the last commit — click any hunk to peek the original — and the same edit markers ride along in the scrollbar overview ruler and the minimap, so every change an agent made is one glance (and one click) away. Markdown opens with a live reading preview and ⌘F find; images and editable SVGs get a zoom/pan viewer; extensions can even contribute editors of their own. ⌘⇧T reopens the last tab you closed, panel tabs included.
Watch the whole week play back.
Every session becomes a block on a real time axis, colored second by second by what it was doing — working, waiting on you, blocked at a usage limit, idle. Blocks survive quits and restarts, so a run that spanned three days reads as one bar. The strip along the top marks when you were actually at the keyboard, which is what makes the rest honest: tell Maestro which states count as being away and it trims those stretches out of every number below. Scrub Day, Week, Month, or Year, watch the playhead track live as agents work, and hit Analyze my usage with an agent to open a session that reads the whole picture and tells you what to fix.
See how much your fleet actually ships.
Maestro logs every session's activity, so you get real numbers instead of a hunch. A GitHub-style heatmap shows a rolling year of work at a glance, and per-day and per-range dashboards break down agent work time, tokens, model split, and how many agents ran at once. A leverage ratio weighs agent work against your own active time, and a self-priced cost estimate puts a dollar figure on the run. A bottleneck view shows where the time actually went — waiting on you, blocked on usage limits, or grinding on the machine — with median and p90 figures for how long each agent sat waiting before you got to it.
Say it in plain English. It just happens.
An always-on natural-language field sits at the bottom of every window — and it drives everything. Ask for it however you'd say it, and the orchestrator carries it out: spin up sessions, dispatch a task to any tab, type a command into a shell, change a setting, even swap this session's agent for a different AI. Anything you could do by hand — and anything the CLI can do — you can just say. Each query fires a non-blocking run to a warm-pooled agent, so the field is ready again the instant you hit Enter; runs stream live status chips and report back when they finish.
And a dispatched message never lands on top of you. If you're halfway through typing a prompt when one arrives, it parks instead of merging into your text, then goes out the moment you submit — or release it yourself from the card. Force one through and Maestro banks your half-written draft in the agent's own kill ring and hands it straight back.
Big tasks become trees, not tab soup.
Every session can have children: spawn a child agent for a subtask, a sibling for parallel work — ⌘T and ⌥⌘T from the keyboard, or --child and --sibling from the CLI. The explorer shows the whole lineage per project, and closing a parent can cascade through its finished subtree in one stroke. Agents structure their own work the same way: a session fans its subtasks out into child sessions and reports back up the tree.
The UI, the CLI, and the agents share one language.
A single maestro binary over a unix socket drives everything from the terminal — open, focus, move, split, stash, and close sessions, swap an agent's model, even read and change settings. No reaching for the mouse. Everything the app can do, a script can do — and the agents can too: they spawn siblings, fan out subtasks, and manage their own sessions.
maestro list # every session as JSON
SID=$(maestro open --kind claude --child) # nest an agent under this one
maestro send "$SID" "npm test" # type it and submit
maestro wait "$SID" --until idle # block until it's done
maestro swap "$SID" --to codex # switch the agent, keep the tab