Enabling Concerto
Open Settings -> Extensions, find Concerto, and enable it. (Equivalently, toggle the Concerto Encore Feature.) While it is off, any view an agent tries to open is dropped rather than queued, so enabling it later never floods you with stale cards.The two surfaces
Concerto has two surfaces, named for where a concerto puts its focus:Movement - in-app panels
A Movement is a floating panel that lives inside the Maestro main window, above your workspace. Movements are:- Free-placed - the agent positions them; you can drag them by the header and resize from the corner.
- Live - the agent updates a panel in place by its id (a coverage number ticks, a table row changes) rather than posting a new message.
- Stashable - hide every panel with one click and restore them later; the agent can also close its own stale panels.
Cadenza - always-on-top HUD cards
A Cadenza is a small card that floats above every application, not just Maestro - a heads-up display you can glance at while working in your editor, browser, or terminal. Cadenzas are click-through by default (they never steal your cursor) and light up only where a card actually is. A Cadenza can also carry a decision prompt: buttons that send your choice straight back to the agent. Use Cadenzas for the one number or the one question you want in view while your attention is elsewhere.Pointing from chat
When an agent composes a view, its chat message should point at the view rather than repeat it. Agents do this with a chip: a link likemaestro://concerto/movement/deploy-status renders as a clickable chip in the transcript that jumps to (or flashes) the referenced Movement or Cadenza. The view carries the data; the chat carries the takeaway and the pointer.
How agents drive it
Concerto is driven over the Maestro CLI bridge, so anything that can runmaestro-cli - an agent mid-session, a playbook, or you at a shell - can compose views. Each view is a JSON block spec; the app renders it natively.
Movement commands
add also accepts --x, --y, --width, and --height. state returns the current panels and the viewport size, so an agent can place a new Movement without overlapping the others.
Cadenza commands
The block vocabulary
A block spec is{ "blocks": [ ... ] }. Blocks cover layout (row, column, grid, group, section) and content (heading, text, code, table, keyValue, stat, stats, badge, callout, progress, bars, donut, sparkline, successFailure, divider). Colors and spacing use semantic tokens (success, warning, error, accent, neutral) so views stay on-theme. For the full authoring reference an agent sees, view Settings -> Maestro Prompts -> Interface Primitives.
Notes
- Cadenza is a separate window. The always-on-top HUD is its own transparent window layered over your whole screen. On multi-monitor setups with mixed display scaling, positioning can be imperfect; Movements (in-app) are unaffected.
- Nothing runs when Concerto is off. Both surfaces and the CLI bridge are gated by the Concerto flag, so a disabled plugin means
movement/cadenzacommands no-op.