Skip to main content

maestro-cli Command Reference

Generated from the CLI command tree by maestro-cli reference. Do not edit by hand - run npm run gen:cli-reference to refresh.

maestro-cli agent-run

Record and inspect agent runs

maestro-cli agent-run record

Record or update an agent run from a JSON file

maestro-cli agent-run append-event <run-id>

Append an event to an agent run

maestro-cli agent-run list

List recent agent runs

maestro-cli agent-run show <run-id>

Show an agent run and its events

maestro-cli campaign

Record and inspect agent campaigns

maestro-cli campaign record

Record or update a campaign from a JSON file

maestro-cli campaign list

List campaigns

maestro-cli campaign show <id>

Show a campaign

maestro-cli list

List resources

maestro-cli list groups

List all session groups

maestro-cli list agents

List all agents

maestro-cli list playbooks

List playbooks (optionally filter by agent)

maestro-cli list sessions <agent-id>

List agent sessions (most recent first)

maestro-cli list ssh-remotes

List all configured SSH remotes

maestro-cli list terminals

List open terminal tabs in the desktop app (all agents unless —agent is given)

maestro-cli show

Show details of a resource

maestro-cli show agent <id>

Show agent details including history and usage stats

maestro-cli show playbook <id>

Show detailed information about a playbook

maestro-cli playbook <playbook-id>

Run a playbook

maestro-cli goal-run <agent-id> <goal>

Launch a Goal-Driven Auto Run: pursue a free-text goal until done

maestro-cli run-doc <docs>

Run one or more Auto Run documents headlessly (no saved playbook required)

maestro-cli clean

Clean up orphaned resources

maestro-cli clean playbooks

Remove playbooks for deleted sessions

maestro-cli send <agent-id> <message>

Send a message to an agent and get a JSON response

maestro-cli dispatch <agent-id> <message>

Dispatch a prompt to an agent in the Maestro desktop app and return its tab/session ID

maestro-cli ask <agent-id> <question>

Ask another agent a question and print its answer (background consult - never touches the target’s open conversation) ask is a background consult: it prints an answer without touching the target agent’s open conversation. dispatch hands over work in a visible tab and returns a tab ID. Ask a self-contained question, or pass --with-context to include your transcript. The consult is recorded in the target’s history.

maestro-cli queue

Inspect and manage the desktop execution queue (from dispatch —queue)

maestro-cli queue list

List queued execution items as JSON (all agents, or one with —agent)

maestro-cli queue remove <item-id>

Remove a queued item by its id (from dispatch —queue output or queue list)

maestro-cli queue steer <item-id>

Steer a queued message into the turn already running on its tab, like the Steer button on the queued card (Claude agents on the interactive token source, or Codex agents on the app-server transport). The item leaves the queue once the agent has it and returns if the agent never takes it.

maestro-cli window

List Maestro windows, and move agents or whole groups between them

maestro-cli window list

List open windows and the agents each one holds

maestro-cli window move-agent <agent-id>

Move an agent (with its worktrees) to another window

maestro-cli window move-group <group-id>

Move every agent in a group (with subgroups when nesting is on) to another window

maestro-cli snooze

Park a tab until later, and manage what is parked

maestro-cli snooze tab <tab-id> <when>

Snooze a tab or tiled group until <when> (e.g. 2h, tomorrow, “next fri 3pm”)

maestro-cli snooze list

List snoozed tabs across every agent, soonest wake first

maestro-cli snooze wake <snooze-id>

Bring a snoozed tab back right now (accepts a unique id prefix)

maestro-cli snooze dismiss <snooze-id>

Drop a snooze and its tab - it won’t come back

maestro-cli snooze reschedule <snooze-id> <when>

Move a snooze to a new time, optionally rewriting its note or wake prompt

maestro-cli snooze history

Snoozes that have already resolved - woken, unsnoozed, or dismissed

maestro-cli unsnooze <snooze-id>

Bring a snoozed tab back right now (alias for “snooze wake”)

maestro-cli session

Inspect open desktop tabs and their conversation history

maestro-cli session list

List open desktop AI tabs and their tab/session IDs

maestro-cli session show <tab-id>

Print conversation history for a desktop tab

maestro-cli group-chat

Start, message, and inspect group chats in the desktop app

maestro-cli group-chat start <name>

Create a group chat and send its moderator the opening message

maestro-cli group-chat send <chat> [message]

Send a message to a group chat (ID, ID prefix, or name); refused while busy

maestro-cli group-chat status <chat>

Show a group chat’s state, participants, and latest messages

maestro-cli group-chat list

List group chats and whether each is busy

maestro-cli group-chat stop <chat>

Stop a group chat’s moderator and participants

maestro-cli open-file <file-path>

Open a file as a preview tab in the Maestro desktop app (audio and video play in the floating media player instead; an http(s) URL to an MP4 or audio file streams in the player)

maestro-cli open-graph [paths]

Open the Document Graph over specific markdown files or a directory

maestro-cli open-browser <url>

Open a URL as a browser tab in the Maestro desktop app

maestro-cli open [surface]

Open a Maestro modal or dashboard (use —list to see every surface)

maestro-cli image

List and save images pasted into a Maestro chat

maestro-cli image list

List images pasted into an agent’s conversation, newest first

maestro-cli image save [target]

Save a pasted image to disk (target: index, handle, or “latest”)

maestro-cli close-browser <tab-id>

Close a browser tab in the Maestro desktop app (owning agent resolved by tab ID)

maestro-cli open-terminal

Open a new terminal tab in the Maestro desktop app

maestro-cli send-terminal [command]

Run a command in an existing Maestro terminal tab

maestro-cli read-terminal

Read a Maestro terminal tab’s output

maestro-cli refresh-files

Refresh the file tree in the Maestro desktop app (never moves the view)

maestro-cli refresh-auto-run

Refresh Auto Run documents in the Maestro desktop app

maestro-cli auto-run <docs>

Configure and optionally launch an auto-run with documents

maestro-cli stop-auto-run

Stop the active Auto Run for an agent

maestro-cli resume-auto-run

Resume an Auto Run that paused on an error

maestro-cli skip-auto-run

Skip the current document of an error-paused Auto Run and continue

maestro-cli abort-auto-run

Abort an error-paused Auto Run

maestro-cli reset-auto-run-tasks <filename>

Reset all completed [x] tasks back to [ ] in an Auto Run document

maestro-cli auto-run-status

Show whether an Auto Run is active and its document/task progress

maestro-cli auto-run-folder <path>

Point an agent at a different Auto Run folder (relative paths resolve against this shell’s cwd)

maestro-cli marketplace

Browse and import Playbook Exchange playbooks (the modal: open marketplace)

maestro-cli marketplace list

List playbooks in the official + local catalog

maestro-cli marketplace show <playbook-id>

Show a playbook’s details, documents, and README

maestro-cli marketplace import <playbook-id>

Install a playbook into an agent’s Auto Run folder

maestro-cli remove-playbook <agent-id> <playbook-id>

Remove a saved playbook from an agent (find IDs via “list playbooks -a <agent>“)

maestro-cli cue

Interact with Maestro Cue automation

maestro-cli cue trigger <subscription-name>

Manually trigger a Cue subscription by name

maestro-cli cue list

List all Cue subscriptions across agents

maestro-cli cue enable <subscription>

Turn a Cue subscription on (name, or the full id from cue list --json)

maestro-cli cue disable <subscription>

Turn a Cue subscription off without deleting it

maestro-cli cue activity

Show recent Cue runs, newest first

maestro-cli cue schedule

Create a scheduled task (or —list / —cancel / —reschedule / —pause)

maestro-cli cue pipeline

Manage Cue pipeline layout entries (cue-pipeline-layout.json)

maestro-cli cue pipeline list

List all pipelines in the layout file

maestro-cli cue pipeline get <name>

Print one pipeline entry as JSON to stdout

maestro-cli cue pipeline export <name>

Alias for get: print one pipeline entry as JSON to stdout

maestro-cli cue pipeline add <name>

Add a new pipeline entry from a JSON file

maestro-cli cue pipeline replace <name>

Replace an existing pipeline entry from a JSON file

maestro-cli cue pipeline remove <name>

Remove a pipeline entry by name or id

maestro-cli cue engine

Run Maestro Cue unattended (no desktop app) and control that runner

maestro-cli cue engine start

Start the Cue engine in this process and block until Ctrl+C / stopped

maestro-cli cue engine stop

Stop a running standalone engine (refuses to signal a desktop-owned one)

maestro-cli cue engine status

Report whether an engine is running and its last known heartbeat

maestro-cli cue engine inspect

List every agent with a readable .maestro/cue.yaml and its subscription counts

maestro-cli director-notes

Director’s Notes: unified history and AI synopsis

maestro-cli director-notes history

Show unified history across all agents

maestro-cli director-notes synopsis

Generate AI synopsis of recent activity (requires running Maestro app)

maestro-cli status

Check if the Maestro desktop app is running and reachable

maestro-cli version

Show the running Maestro app’s version and build commit hash

maestro-cli doctor

Diagnose CLI connectivity, version skew, and configuration

maestro-cli completions <shell>

Print a shell completion script (bash, zsh, or fish)

maestro-cli reference

Print the full command reference (Markdown, or —format json)

maestro-cli create-agent <name>

Create a new agent in the Maestro desktop app

maestro-cli create-group <name>

Create a new group in the Maestro desktop app

maestro-cli remove-group <group-id>

Remove a group from the Maestro desktop app (agents inside are ungrouped, not deleted)

maestro-cli rename-group <group-id> <new-name>

Rename a group in the Maestro desktop app

maestro-cli update-group <group-id>

Update a group’s name, icon, color, parent, or Left Bar visibility in the Maestro desktop app

maestro-cli create-worktree

Create a new agent in a git worktree branched off an existing parent agent

maestro-cli remove-agent <agent-id>

Remove an agent from the Maestro desktop app

maestro-cli update-agent <agent-id>

Update an existing agent’s group, working directory, and per-agent settings

maestro-cli rename-agent <agent-id> <new-name>

Rename an agent in the Maestro desktop app

maestro-cli bookmark <agent-id>

Bookmark an agent (pins it to the Left Bar’s Bookmarks section)

maestro-cli unbookmark <agent-id>

Remove an agent’s bookmark

maestro-cli focus-agent <agent-id>

Focus (select) an agent in the Maestro desktop UI

maestro-cli switch-mode <agent-id> <mode>

Switch an agent between “ai” and “terminal” mode

maestro-cli tab

Manage an agent’s tabs in the desktop app

maestro-cli tab new

Open a new tab for an agent (optionally seeded with a prompt)

maestro-cli tab close <tab-id>

Close a tab (owning agent is resolved automatically)

maestro-cli tab rename <tab-id> <new-name>

Rename a tab

maestro-cli tab star <tab-id>

Star a tab

maestro-cli tab unstar <tab-id>

Unstar a tab

maestro-cli tab unread <tab-id>

Mark a tab unread (flags it for the human in the tab bar)

maestro-cli tab read <tab-id>

Clear a tab’s unread marker

maestro-cli tab save-to-history <tab-id> <bool>

Enable/disable synopsizing this tab’s completions into History (true/false)

maestro-cli tab show <tab-id>

Show one tab’s settings (model, effort, thinking, access, history)

maestro-cli tab thinking <tab-id> <mode>

Set the thinking display: off, on, sticky, or cycle

maestro-cli tab read-only <tab-id> <bool>

Put the tab in read-only/plan mode so the agent cannot modify files

maestro-cli tab model <tab-id> <model>

Override the model for this tab (“inherit” clears the override)

maestro-cli tab effort <tab-id> <level>

Override the effort/reasoning level for this tab (“inherit” clears it)

maestro-cli tab enter-to-send <tab-id> <bool>

Per-tab send key: true = Enter, false = Cmd+Enter, “inherit” = global setting

maestro-cli tab move <tab-id> <position>

Move a tab to a position in its agent’s tab bar (0-based, or “first”/“last”)

maestro-cli create-ssh-remote <name>

Create a new SSH remote configuration --ssh-option passes an option to ssh -o, overriding Maestro defaults and ~/.ssh/config. Use it for a tunnel ProxyCommand, a ProxyJump bastion, or a longer ConnectTimeout. RequestTTY is reserved because Maestro derives it per command; forcing a TTY can corrupt an agent’s stream-json output.

maestro-cli update-ssh-remote <remote-id>

Update an existing SSH remote configuration Only supplied fields change. --env and --ssh-option merge with existing values; use --clear-env or --clear-ssh-options to start from empty. --disable-* keeps a value but stops passing it to SSH; --enable-* restores it. Clearing also removes disabled entries. JSON output includes sshOptions, disabled entries, and resolvedSshOptions (the effective options including defaults).

maestro-cli remove-ssh-remote <remote-id>

Remove an SSH remote configuration

maestro-cli test-ssh-remote <remote-id>

Test an SSH remote connection and report what the remote answered test-ssh-remote uses the same connection options as agent spawning and prints the remote hostname, so tunnel and ProxyCommand errors can be caught during setup. It also works while the desktop is closed.

maestro-cli display

View and manage typography (fonts, sizes, zoom)

maestro-cli display font [surface] [value]

Get or set a surface font. Surfaces: interface, terminal, chat, filePreview, documentGraph, fileEditor. Pass “inherit” (or “inherit:terminal”) to follow a root surface. Omit the surface to list all.

maestro-cli display size <surface> [value]

Get or set a surface font size in px. Pass “inherit” to follow the interface size.

maestro-cli display zoom [level]

Get or set the global zoom applied to every surface (e.g. 125% or 1.25)

maestro-cli display preset [name]

Get the active typography preset, or reset every font and size to one (default | hacker)

maestro-cli display fonts

List the fonts bundled with Maestro (guaranteed available on any machine)

maestro-cli settings

View and manage Maestro configuration

maestro-cli settings list

List all settings with current values

maestro-cli settings get <key>

Get the value of a setting (supports dot-notation, e.g., encoreFeatures.directorNotes)

maestro-cli settings set <key> <value>

Set a setting value (auto-detects type: bool, number, JSON, string)

maestro-cli settings reset <key>

Reset a setting to its default value

maestro-cli settings media-status

Report media tools available to this CLI process and allowed models as JSON

maestro-cli settings agent

View and manage per-agent configuration

maestro-cli settings agent list [agent-id]

List agent configurations (all agents or a specific one)

maestro-cli settings agent get <agent-id> <key>

Get a single agent config value

maestro-cli settings agent set <agent-id> <key> <value>

Set an agent config value (auto-detects type)

maestro-cli settings agent reset <agent-id> <key>

Remove an agent config key

maestro-cli set-theme [name-or-id]

Switch the active Maestro theme (applies live). Use —list to see options.

maestro-cli gloss [level]

Set the surface gloss level: off, sheen, strong or max (applies live). Omit the level to see the current one.

maestro-cli theme

Manage the custom theme palette

maestro-cli theme show

Print the current custom theme palette and base (reads from disk)

maestro-cli theme export

Export the custom theme as portable JSON (stdout, or —file <path>)

maestro-cli theme import <file>

Import a theme JSON file, apply it live, and activate it

maestro-cli theme set [assignments]

Set custom theme colors (key=value, e.g. accent=#ff0000) and/or re-base

maestro-cli encore

List and toggle experimental Encore features

maestro-cli encore list

List Encore features and whether each is enabled

maestro-cli encore enable <feature>

Enable an Encore feature (directorNotes, usageStats, symphony, maestroCue, pianola, computerHistory, quickChat, maestroRun)

maestro-cli encore disable <feature>

Disable an Encore feature

maestro-cli computer-history

Computer History: query what the user saw and typed across apps (local, untrusted content)

maestro-cli computer-history status

Show whether recording is on, permission state, and store size

maestro-cli computer-history list

List recorded 15-minute segments in a time range

maestro-cli computer-history query

Search recorded events (text, selections, snapshots, app and window changes)

maestro-cli computer-history apps

Apps used in a time range, by foreground time and event count

maestro-cli computer-history digests

List 15-minute digests and 6-hour roll-ups (agent-written, untrusted content)

maestro-cli computer-history pause

Pause recording (until resumed, or for a duration)

maestro-cli computer-history resume

Resume recording

maestro-cli computer-history rules

Which apps are recorded (exclude or include mode) and domains never recorded

maestro-cli computer-history rules list

Show the app mode and user rules (built-in exclusions always apply)

maestro-cli computer-history rules mode [mode]

Show or set the app mode: exclude (record every app except ignored ones) or include (record only the record-only list)

maestro-cli computer-history rules add

Never record an app or a domain (and its subdomains); with —include, add an app to the record-only list

maestro-cli computer-history rules remove <id>

Remove a rule by id (or by its app id / domain)

maestro-cli computer-history clear

Delete recorded history: everything since a time, or all of it

maestro-cli computer-history enable-accessibility

macOS: show the Accessibility prompt. Linux: turn on the desktop accessibility bus. Windows: not needed

maestro-cli computer-history config

Show settings, or change them with the flags below

maestro-cli pianola

Pianola manager agent: watch tabs, auto-answer or escalate per your rules

maestro-cli pianola watch <tab-id>

Watch a desktop tab and act on awaiting-input prompts per your rules

maestro-cli pianola rules

List the configured Pianola rules

maestro-cli pianola add-rule

Add a Pianola rule (how the manager agent turns a conversation into a durable rule)

maestro-cli pianola learn

Crawl installed CLI transcripts into a labeled decision corpus (Claude Code + Codex)

maestro-cli pianola profile

Read a learned decision profile (per-project with —project, else global)

maestro-cli pianola set-profile

Save a learned decision profile from —file or stdin (per-project or global)

maestro-cli pianola log

Show recent Pianola decisions from the audit log

maestro-cli pianola plan

Author and inspect Pianola task plans (DAGs)

maestro-cli pianola plan set

Save a plan from —file or piped stdin (validated before write)

maestro-cli pianola plan list

List saved plans with a progress summary

maestro-cli pianola plan show <planId>

Show one plan: its tasks, statuses, and dependencies

maestro-cli pianola orchestrate <planId>

Run a saved plan to completion, dispatching tasks as their dependencies finish

maestro-cli pianola supervise

Register desktop-supervised watchers and orchestrations (survive crashes/restarts)

maestro-cli pianola supervise watch <tabId>

Register a supervised tab watcher the desktop keeps alive

maestro-cli pianola supervise orchestrate <planId>

Register a supervised plan orchestration the desktop keeps alive

maestro-cli pianola supervise list

List registered supervised targets

maestro-cli pianola supervise remove <id>

Unregister a supervised target by id (the desktop stops its child)

maestro-cli pianola supervise enable <id>

Enable a supervised target by id

maestro-cli pianola supervise disable <id>

Disable a supervised target by id (the desktop stops its child)

maestro-cli prompts

Read Maestro system prompts

maestro-cli prompts list

List all known prompt ids with descriptions

maestro-cli prompts get <id>

Print a prompt by id (honors user customizations from Settings → Maestro Prompts)

maestro-cli gist

Publish session context to GitHub gists

maestro-cli gist create <agent-id>

Publish an agent’s session transcript as a GitHub gist (requires running Maestro app)

maestro-cli notify

Show notifications in the Maestro desktop app

maestro-cli notify toast <title> <message>

Show a toast notification (queued, click X or icon to dismiss)

maestro-cli notify flash <message>

Show a center-screen flash (momentary, exclusive - replaces any active flash)

maestro-cli profiling

Start/stop a Chromium performance capture in the desktop app (for perf iteration)

maestro-cli profiling start

Begin a performance capture (no-ops if one is already recording)

maestro-cli profiling stop

Stop the capture and write the compressed .zip bundle to —output

maestro-cli profiling status

Report whether a capture is currently recording

maestro-cli maestro-run

MaestroRun (macOS): install the launcher and grant it Full Disk Access for scheduled scripts

maestro-cli maestro-run status

Re-check the launcher: installed version, signature, and Full Disk Access

maestro-cli maestro-run install

Download, verify, and install the newest MaestroRun release for this Mac (or update it)

maestro-cli maestro-run grant

Open System Settings on the Full Disk Access list and watch for the switch (the user flips it)

maestro-cli quick-chat

Drive the Quick Chat window: a floating chat with one agent, summoned by a hotkey

maestro-cli quick-chat show

Open the Quick Chat window (same as the hotkey when it is closed)

maestro-cli quick-chat hide

Close the Quick Chat window; the conversation is kept

maestro-cli quick-chat toggle

Open the window, focus it, or close it (exactly what the hotkey does)

maestro-cli quick-chat status

Show the window state, the agent, the mode, and the current conversation

maestro-cli quick-chat send <message>

Send a message in the current Quick Chat (starts a chat if none is open)

maestro-cli quick-chat new

Start a new chat (an ephemeral previous chat is deleted)

maestro-cli quick-chat keep [state]

Keep the current chat as a visible tab on its agent (“off” makes it ephemeral)

maestro-cli quick-chat pin [state]

Float the window above other windows (“off” lets it fall behind them)

maestro-cli quick-chat font [size]

Text size of the conversation: in, out, reset, or a size such as 120% (no size prints it)

maestro-cli quick-chat agent <agent-id>

Switch Quick Chat to another agent and start a new chat there

maestro-cli quick-chat reveal [message-id]

Open a tab of the chat in the main Maestro window: the tab a message went to, or the latest

maestro-cli quick-chat new-tab [message-id]

Send a message that is queued behind a busy tab to a new tab instead (default: the latest queued one)

maestro-cli quick-chat stop

Stop the replies in progress and withdraw the messages still queued

maestro-cli quick-chat bounds

Move or resize the window, as dragging it does, and remember it (—height is the conversation height)

maestro-cli cadenza

Open small cadenza views to display or track work in the Maestro desktop app

maestro-cli cadenza open <id>

Open (or replace by id) a cadenza view

maestro-cli cadenza update <id>

Update fields of an open cadenza in place (the living view)

maestro-cli cadenza close <id>

Close a cadenza view by id

maestro-cli movement

Compose the agent-driven movement (free-placed data views) in the Maestro main window

maestro-cli movement begin <id>

Immediately show a host-rendered Concerto shell before its HTML is ready

maestro-cli movement add <id>

Add (or replace by id) a native data view or interactive HTML mockup

maestro-cli movement update <id>

Update fields of an existing movement item in place

maestro-cli movement move <id>

Reposition a movement item

maestro-cli movement remove <id>

Remove a movement item by id

maestro-cli movement clear

Remove all movement items

maestro-cli movement progress <id>

Report one Concerto track’s current design phase and subdivision

maestro-cli movement state

Read the current movement layout (items + size) to compose around it

maestro-cli movement inspect <id>

Capture a live HTML Movement preview and report its runtime diagnostics

maestro-cli movement interact <id>

Interact with a live HTML Movement by CSS selector

maestro-cli support-package

Write a sanitized support (debug) package zip, as Create Debug Package does, without a save dialog

maestro-cli feedback

Send Feedback from the CLI: check gh, find duplicates, +1 an issue, or file a new one (open the modal with open feedback)

maestro-cli feedback auth

Check that the GitHub CLI (gh) is installed, logged in, and allowed to file on the feedback repo (required to file); names the gh account, and prints the login command when signing in can fix it

maestro-cli feedback login

Sign the GitHub CLI in for feedback (gh auth login, device code + browser), as the modal’s “Log in to GitHub” does

maestro-cli feedback accounts

List the provider accounts the Feedback chat can run as, in the order it tries them (first usable one wins)

maestro-cli feedback diagnose

Read the live app state the Feedback chat starts from: agents that are busy, errored, limit-paused, retrying, or running Auto Run, plus recent warnings and errors (redacted, read-only)

maestro-cli feedback search <query>

Search RunMaestro/Maestro for issues matching a description

maestro-cli feedback submit

File a GitHub issue exactly as the Feedback modal does. Stops on likely duplicates unless —force

maestro-cli feedback subscribe <issue>

Add a +1 to an existing issue instead of filing a duplicate

maestro-cli stats

Show aggregated Usage Dashboard metrics for a time range

maestro-cli stats-query <sql>

Run a read-only SQL query against the stats database (SELECT / read PRAGMA only)

maestro-cli plugin

Author, validate, sign, and package Maestro plugins

maestro-cli plugin list

Read installed plugin versions, load status, and enable state from the desktop

maestro-cli plugin update <dir>

Update an installed plugin from a local package directory, preserving data

maestro-cli plugin init [dir]

Scaffold a new plugin in <dir> (defaults to the current directory)

maestro-cli plugin validate [dir]

Validate <dir>/plugin.json and, when present, its signature.json

maestro-cli plugin sign <dir>

Sign <dir> with ed25519 and write signature.json

maestro-cli plugin pack <dir>

Package <dir> into a distributable archive (excludes node_modules/.git/keys)

maestro-cli mcp

Model Context Protocol bridge for Maestro plugin tools

maestro-cli mcp serve

Run an MCP stdio server exposing registered plugin tools (spawned by an agent via its MCP config)