Maestro is a free desktop app that puts a GUI around the Claude Code CLI you already have
installed and signed in. Run several Claude Code sessions at once, each in its own git
worktree, then review the diff and open a PR without leaving the app.
Claude Code in a terminal is one conversation in one checkout. Maestro keeps the CLI doing
the work and adds the pieces around it:
Parallel workspaces. Every workspace is its own git worktree on its own branch, so three Claude Code sessions can edit the same repo without touching each other's files. There is no cap on how many you open.
A diff review loop. Read each workspace's diff, leave inline comments, and send them back to Claude as the next message.
Pull requests. Open a PR for a workspace's branch from the app.
An editor and a preview. A Monaco-based editor (with Jupyter notebook support) for small fixes, a terminal per workspace, and a built-in browser preview where you can freeze a frame and annotate it for the agent.
Your phone.Maestro Web mirrors every workspace to a mobile web app: watch turns stream, send or queue messages, review diffs, and get a push notification when Claude finishes. See Claude Code from your phone.
Pick Claude Code, a model, and an effort level when you open a workspace.
Claude Code features Maestro understands
Maestro is not a generic terminal wrapper. It knows how Claude Code works and exposes the useful parts:
Model and effort pickers. Choose a Claude model per chat (Fable, Opus, Sonnet, and Haiku are in the list). Effort sets the extended-thinking budget: Low, Medium, High (the default), or Max. There is also an Ultracode level, which uses the Max budget and adds an instruction to plan, verify by running code, and self-review the diff. Effort is hidden for Haiku, which has no thinking budget.
Plan mode. A per-chat toggle runs the turn with Claude Code's own --permission-mode plan, so Claude researches and proposes a plan without changing files.
Subscription usage. If you sign in with a Claude plan, the composer shows your 5-hour and weekly usage windows, and a "send later" menu can hold a message until your limits reset.
More than one login. You can add several Claude logins. When a turn hits a usage limit, Maestro can switch to a login that still has headroom and retry (you can turn this off).
Your existing sessions. Maestro can import the Claude Code conversations already on disk under ~/.claude/projects, place them in the matching repo, and keep syncing new turns you type in a terminal. The import is read-only; your files are not modified. If a session is still open in a terminal, Maestro won't resume it at the same time.
A fix for a common sign-in trap. A token created with claude setup-token has no refresh token. When one expires, Maestro can detect it and move the dead file aside (it keeps a backup) so the CLI falls back to your normal login.
How it works
Maestro drives the official claude CLI. Each message you send runs one
non-interactive Claude Code process in that workspace's worktree, roughly:
claude -p --output-format stream-json --verbose --include-partial-messages --resume <session-id>
The streamed JSON is rendered as chat: text, thinking, and each tool call. The session id is
stored per chat, so the next message resumes the same Claude Code conversation.
Your account, your subscription. Claude Code authenticates the way it always does: a Claude Pro, Max, Team, or Enterprise plan, a Claude Console account, or a cloud provider such as Amazon Bedrock. Maestro reads that sign-in state to show it in Settings; it does not proxy your requests or bill you. If you prefer an API key, you can save one in Settings and Maestro passes it to the CLI as ANTHROPIC_API_KEY.
What gets installed. Just Maestro. It does not bundle its own copy of Claude Code; it uses the claude on your PATH, with your settings. If it's missing, Settings → Harnesses has an Install button and a Sign in button that runs claude auth login in a terminal inside the app.
Permissions. Because every workspace is an isolated worktree, Maestro runs Claude Code with full access by default so turns never stall on an approval prompt. You can switch to accept-edits, plan mode, or the CLI's default in Settings.
Remote machines. For a project on an SSH host, claude runs on that host, not on your laptop.
Set it up
1
Install Claude CodeFollow Anthropic's quickstart: curl -fsSL https://claude.ai/install.sh | bash on macOS, Linux, or WSL, or irm https://claude.ai/install.ps1 | iex in Windows PowerShell. Check it with claude --version.
2
Sign inRun claude once and follow the browser login (or /login inside a session). Use your Claude plan or Console account.
3
Add a repo in MaestroDownload Maestro, open it, and add a git repository, a plain folder, or an SSH remote as a project. Optionally import your existing Claude Code chats.
4
Pick Claude Code in the new-workspace dialogType the task, choose Claude Code with a model and effort, and start. Open more workspaces for more parallel sessions.
What about Anthropic's own desktop app?
As of September 2026, Anthropic's Claude desktop app includes Claude Code in its Code tab on
macOS and Windows, with Linux in beta. It has parallel sessions (optionally in git worktrees),
diff review, an app preview, PR monitoring, and cloud sessions, and it needs a paid Claude plan
(Anthropic's docs).
If you only use Claude and like that app, it's a solid choice.
Maestro is for a different setup:
It drives the CLI you already installed and configured, and works with any sign-in the CLI accepts, including a Console API key.
It runs Codex, Cursor, OpenCode, Kimi Code, and Grok Build next to Claude Code, one agent per workspace, in the same window.
It picks up conversations you start in a terminal, so you can keep using claude directly.
Maestro Web puts every workspace, whichever agent it runs, on your phone.
No. Maestro is an independent app and is not affiliated with or endorsed by Anthropic. It runs the official Claude Code CLI, which you install from Anthropic.
Do I need an API key, or does my Claude subscription work?
Your subscription works. Maestro uses whatever the claude CLI is signed in with: a Pro, Max, Team, or Enterprise plan, a Console account, or a cloud provider. An API key is optional.