English | 日本語
Paste a GitHub or Linear issue. Get a pull request.
maestro is an open-source multi-agent system that turns issues into shipped code — autonomously. An orchestrator decomposes the work into the right sub-tasks, specialist implementers write the code, and everything lands as one reviewable PR — with a full audit trail of what happened. Built on Claude Managed Agents.
Wiki · Install · Architecture · Quick Start
Coding agents are great at writing code. They're worse at owning a ticket end-to-end: scoping it well, splitting it into the right units of work, implementing in parallel, opening a clean PR, and leaving a trail you can audit later.
maestro is that missing layer.
| You do | maestro does |
|---|---|
| Open a GitHub or Linear issue | Ingest it as the parent task |
| Watch the WebUI | Optimally decompose into focused sub-issues (not too coarse, not a mess of tiny slices) |
| Review one PR | Implementers ship code; work consolidates into a single pull request |
| Ask "what did the agent do?" | Audit logs + run events preserve every phase, tool call, and decision |
No chat babysitting. No "please continue." Issue in → PR out — and a record of how you got there.
flowchart LR
Issue[GitHub / Linear issue] --> Maestro[maestro]
Maestro --> Orchestrator[orchestrator]
Orchestrator --> I1[implementer]
Orchestrator --> I2[implementer]
Orchestrator --> I3[implementer]
I1 & I2 & I3 --> PR[Single pull request]
- Ingest a parent task from GitHub Issues or Linear (identifier or URL).
- Orchestrator plans and decomposes into the smallest set of independent, implementable sub-issues — boundaries chosen for parallel work and clean review, not arbitrary chunking.
- Implementers (Claude Managed Agents) pick up each sub-issue and write real code against your repo via GitHub MCP.
- Finalize merges the work into one pull request — ready for human review.
- Audit — structured audit logs and per-run event history capture phases, agent/tool activity, and outcomes for later inspection (WebUI + logs; OpenTelemetry optional).
Trigger from the WebUI, the HTTP API, or a GitHub repo poller that watches labeled issues. Same pipeline for Linear origins.
| Start a run | Watch progress |
|---|---|
![]() |
![]() |
- GitHub Issues and Linear — same orchestrate → implement → PR path for both origins
- Optimal task decomposition — orchestrator splits work into focused, parallelizable sub-issues instead of one giant agent loop
- Audit log retention — structured audit events (HTTP, session, tools) plus durable run-event history you can replay in the WebUI
- Multi-agent by design — coordinator + implementer roster, not a single long chat
- Real PRs, not diffs in a sidebar — branches, commits, and a reviewable pull request on your GitHub
- WebUI + API — kick off runs from the browser or wire it into your own tools
- GitHub App auth — installation tokens per repo, no shared PAT sprawl
- MCP-native — GitHub MCP built in; plug in Figma, Linear MCP, or your own stdio servers via the MCP Gateway
- Self-hosted sandboxes — keep code execution on your infra with
ANTHROPIC_ENVIRONMENT_ID - Prompt & repo controls in the UI — system prompts, polled repos, MCP servers, all editable without redeploying
- OpenTelemetry-ready — traces and metrics when you want them, off by default
Bun is pinned in mise.toml. Install mise, then:
mise install
bun install
export ANTHROPIC_API_KEY=...
export GITHUB_APP_ID=...
export GITHUB_APP_PRIVATE_KEY_PATH=/path/to/github-app.pem
bun run start
# → http://127.0.0.1:3000Open the dashboard, pick a repo + issue number, hit run. Full setup (GitHub App, containers, MCP Gateway, self-hosted workers) is in the Installation wiki. Production on Google Cloud (Cloud Run + Global HTTPS LB + IAP): Terraform wiki / terraform/.
| Topic | Link |
|---|---|
| Installation | Wiki · Installation |
| GCP Terraform (Cloud Run app / MCP / worker / edge) | Wiki · Terraform |
| Architecture (orchestrator, implementer, poller, MCP Gateway, self-hosted) | Wiki · Architecture |
| Configuration | Wiki · Configuration |
| MCP servers | Wiki · MCP-Servers |
| Troubleshooting | Wiki · Troubleshooting |
Local contributor notes:
docs/DEVELOPMENT.md— dev tunnel and local workflowdocs/e2e-setup.md— live E2E setupterraform/README.md— GCP module reference (app, mcp-gateway, worker, edge)
- Runtime: Bun + TypeScript
- Agents: Anthropic Claude Managed Agents (multi-agent coordinator)
- HTTP / UI: Hono SSR dashboard
- GitHub: GitHub App + official GitHub MCP
- Extensibility: MCP Gateway (stdio → remote MCP)
Live E2E hits real APIs and writes to a disposable repo (billing applies):
E2E=1 TEST_REPO=<owner>/<repo> TEST_ISSUE=<n> bun run scripts/e2e-real.tsSee the repository for license details. Contributions welcome — open an issue or PR.
Stop pasting tickets into a chat box. Point maestro at a GitHub or Linear issue, get an optimally decomposed plan, a real PR — and an audit trail of every step.


