https://github.com/evalops/maestro
Maestro — multi-model coding agent with TUI, web, IDE, Slack, and GitHub interfaces
https://github.com/evalops/maestro
evalops-product typescript
Last synced: 23 days ago
JSON representation
Maestro — multi-model coding agent with TUI, web, IDE, Slack, and GitHub interfaces
- Host: GitHub
- URL: https://github.com/evalops/maestro
- Owner: evalops
- License: other
- Created: 2026-04-15T01:54:19.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-22T05:04:39.000Z (27 days ago)
- Last Synced: 2026-05-22T12:18:06.418Z (27 days ago)
- Topics: evalops-product, typescript
- Language: TypeScript
- Size: 24.7 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 26
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Maestro by EvalOps
[](https://github.com/evalops/maestro/actions/workflows/ci.yml)
Maestro is a coding agent for real software work. It can inspect code, edit files, run shell commands, search large repos, and help across terminal, web, IDE, browser, Slack, and GitHub workflows.
This README is intentionally short. Use it to get running, then jump into the docs for the details.
## What Maestro Covers
- Terminal-first coding agent with both interactive TUI and one-shot CLI flows
- Shared runtime across the web UI, VS Code, JetBrains, browser automation, Slack, and GitHub
- Multi-provider model support, OAuth-based logins, and managed EvalOps routing
- Hooks, MCP servers, context files, and headless automation for custom workflows
- Visible tool use with approvals, sandboxing, and firewall controls
## Interfaces
| Interface | Best for | Guide |
| --- | --- | --- |
| Terminal (TUI/CLI) | Interactive coding sessions and one-shot repo tasks | [Features](docs/FEATURES.md) |
| Web UI | Browser-based Maestro sessions | [Web UI Guide](docs/WEB_UI.md) |
| Conductor | Browser automation through a local Maestro server | [Conductor Bridge](docs/CONDUCTOR_BRIDGE.md) |
| VS Code | Inline chat and IDE-native workflows | [VS Code extension](packages/vscode-extension/README.md) |
| JetBrains | IntelliJ, WebStorm, PyCharm, and related IDEs | [JetBrains plugin](packages/jetbrains-plugin/README.md) |
| Slack | Chat-driven agent workflows with sandboxing | [Slack agent](packages/slack-agent/README.md) |
| GitHub | Issue-driven automation and PR generation | [GitHub agent](packages/github-agent/README.md) |
| Ambient Agent | Long-running GitHub automation daemon | [Ambient Agent design](docs/design/AMBIENT_AGENT.md) |
| Headless | Embedding Maestro in CI, tools, and eval harnesses | [Headless protocol](docs/protocols/headless.md) |
## Install
### Bun (recommended)
```bash
bun install -g @evalops/maestro
```
### npm
```bash
npm install -g @evalops/maestro
```
### Nix
```bash
nix run github:evalops/maestro
```
## Quick Start
1. Configure a model provider. Fast path:
```bash
export ANTHROPIC_API_KEY=sk-ant-...
```
Maestro also supports OpenAI, OpenAI Codex with ChatGPT login, Google, OpenRouter, Azure OpenAI, GitHub Copilot, Groq, xAI, Cerebras, and managed EvalOps auth. See [Models](docs/MODELS.md) for provider-specific setup and overrides.
For Codex subscription models, run `maestro codex login` to Sign in with ChatGPT through the Codex app-server, then select models under the `openai-codex` provider such as `openai-codex/gpt-5.5`.
2. Launch the interface you want:
```bash
maestro
maestro "Audit this repository and suggest the next refactor"
maestro web
```
`maestro web` starts the browser UI on `http://localhost:8080`.
3. Add project-specific behavior when needed:
- Keys and config: `~/.maestro/keys.json`, `~/.maestro/config.json`
- MCP servers: `~/.maestro/mcp.json` or `.maestro/mcp.json`
- Hooks: `~/.maestro/hooks.json` or `.maestro/hooks.json`
- Skills: `maestro skill new `, `maestro skill lint .maestro/skills`
- Agent instructions: `AGENT.md`, `.maestro/APPEND_SYSTEM.md`, `~/.maestro/agent/AGENT.md`
## Safety Model
- Approval modes let you choose how much confirmation Maestro needs before acting
- Sandbox modes range from workspace containment to `danger-full-access`
- Firewall rules, trusted paths, and CI/secrets protections reduce common footguns
See [Safety](docs/SAFETY.md) and the [Threat Model](docs/THREAT_MODEL.md) for the full behavior.
## Docs
| Goal | Guide |
| --- | --- |
| Install, build, and first run | [Quickstart](docs/QUICKSTART.md) |
| Learn TUI and CLI workflows | [Features](docs/FEATURES.md) |
| Find slash commands and flags | [Tools Reference](docs/TOOLS_REFERENCE.md) |
| Configure providers and models | [Models](docs/MODELS.md) |
| Understand approvals and sandboxing | [Safety](docs/SAFETY.md) |
| Run the browser interface | [Web UI Guide](docs/WEB_UI.md) |
| Set up MCP servers | [MCP Guide](docs/MCP_GUIDE.md) |
| Package reusable skills | [Skill Cookbook](docs/cookbook/skills/README.md) |
| Work on the repo as a contributor | [Contributor Runbook](docs/CONTRIBUTOR_RUNBOOK.md) |
| Integrate Maestro headlessly | [Headless protocol](docs/protocols/headless.md) |
| Bring any coding agent into EvalOps | [Any-Agent Control Plane](docs/design/ANY_AGENT_CONTROL_PLANE.md) |
| Browse the full docs map | [Documentation index](docs/README.md) |
## Contributing
Fast path for local development:
```bash
git clone https://github.com/evalops/maestro.git
cd maestro
bun install
npx nx run maestro:build --skip-nx-cache
npm run smoke:local-e2e
npx nx run maestro:test --skip-nx-cache
npx nx run maestro:evals --skip-nx-cache
```
`npm run smoke:local-e2e` is credential-free after build: it checks help,
version, the headless protocol handshake, and deterministic mock-agent
read/write/search/edit flows through the built CLI.
For the browser UI without local API keys or Redis, use the local-only dev
profile:
```bash
make web-local
curl http://localhost:8080/api/models
```
To prove Maestro works against a local Cerebro stack, keep sibling checkouts and
run:
```bash
gh repo clone evalops/cerebro ../cerebro
make cerebro-e2e-doctor
make cerebro-e2e
```
To actually use the two repos together locally, start Cerebro from Maestro and
export the same Cerebro/MCP env into the Maestro terminal:
```bash
make cerebro-dev
# In another Maestro terminal:
eval "$(make -s cerebro-env)"
make run-ts
```
That target delegates to Cerebro's `make local-maestro-e2e` with
`LOCAL_MAESTRO_REPO` set to the current Maestro checkout. It builds and smokes
Maestro, emits Maestro's canonical Platform replay, publishes it through local
NATS, and verifies Cerebro graph projection plus MCP recall from the generated
session traffic. `make cerebro-e2e-doctor` checks the Cerebro checkout, Docker
Compose, the replay generator, and Cerebro's own local-E2E doctor before the
full smoke starts. It also checks the effective local Cerebro URL, MCP URL, and
workspace from `.env` or exported environment values, then verifies that the
configured API port is free before the self-contained smoke starts. The default
URL is `http://localhost:18080`; use `LOCAL_BASE_URL`/`MAESTRO_CEREBRO_URL` plus
matching Cerebro `LOCAL_HTTP_PORT` overrides when that port is occupied. Set
`LOCAL_CEREBRO_REPO=/path/to/cerebro` when the checkout is not a sibling
directory. If your machine cannot surface OTEL collector debug logs, run
`LOCAL_ASSERT_OTEL=false make cerebro-e2e`.
For direct local Maestro runs against an already-running Cerebro dev stack,
`make cerebro-env` prints copyable exports derived from `.env` or shell
overrides. The Makefile exports those vars to `make` targets so `make run-ts`,
`make web-local`, and local smokes all see the same configuration.
Need Redis or PostgreSQL for a specific workflow? Start from `docker-compose.yml` and use the [Contributor Runbook](docs/CONTRIBUTOR_RUNBOOK.md) for the rest of the repo workflow.
## Repository Layout
- `src/` - CLI entrypoints and shared application code
- `packages/core/` - agent loop, transport, types, and sandbox primitives
- `packages/ai/` - model registry, provider transport, and event streaming
- `packages/tui/` - TypeScript terminal UI
- `packages/tui-rs/` - native Rust TUI
- `packages/web/` - browser UI
- `packages/vscode-extension/`, `packages/jetbrains-plugin/`, `packages/slack-agent/`, `packages/github-agent/` - interface integrations
## License
Business Source License 1.1. You can use Maestro for development, testing, and production use, but not as a competing hosted or embedded product. On April 14, 2030, the license converts to Apache 2.0. See [LICENSE](LICENSE) for details.