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 — working, waiting, background — each with a live timer. 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. A notification center keeps the history. Tabs show the model and context size at a glance.
Every state has a color.
One glance at a card's pill tells you exactly what an agent is doing — and whether it needs you.
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.
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.
Type it. It's already running.
An always-on natural-language field sits at the bottom of every window. Each query dispatches a non-blocking orchestration run to a warm-pooled agent — the field is ready again the instant you hit Enter. Runs stream live status chips and report back when they finish.
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
maestro open --kind claude --child # nest an agent under this one
maestro send "api tests" "npm test"
maestro swap "api tests" --to codex # switch the agent, keep the tab
maestro settings set terminal.fontSize 14