Skip to main content
The command is node bin/maestro from the repository root, after npm run build. The examples below write maestro for short.

maestro run

Runs a workflow script.
The script’s return value goes to stdout as JSON. Progress goes to stderr. Ctrl-C stops the run and prints the command that resumes it.

maestro runs

Lists the runs stored in a directory, newest first. maestro ls is the same command.
Each line shows the run id, its status (done, failed or running), the workflow name, the duration, agent counts and token usage.

maestro show

Without a label, lists the run’s agents and its outcome. With a label, or the start of an agent’s key, prints that agent’s trace: tool calls, final text, result and error.

maestro viz

Opens a run’s timeline in the browser and follows it while it runs. See Runs, resume and budget.

maestro gc

Lists the worktrees and wf/* branches that writing agents left behind. --delete removes clean worktrees and merged branches. --force also removes worktrees with uncommitted work and unmerged branches.

maestro mcp

Serves Maestro as an MCP server over stdio. See Claude Code. Here --budget is one pool for the whole session: every run the server starts spends from it. The server exits when its client disconnects or is gone. Runs in progress are stopped, and their journals stay for resume.

Environment

Exit status

maestro run exits with 0 when the script returns, and with a non-zero status when the script fails, the run is stopped or the arguments are wrong.