Maestro is EvalOps' native Rust coding agent. One maestro executable owns the CLI, interactive terminal UI, headless protocol, hosted runner, and web runtime gateway. Node.js and Bun are not required to run the product.
curl -fsSL https://raw.githubusercontent.com/evalops/maestro/main/scripts/install.sh | bash
maestro --versionOpt into a preview channel when you want builds ahead of stable. Alpha tracks the newest source; beta is deliberately one source commit and one patch line behind alpha:
curl -fsSL https://raw.githubusercontent.com/evalops/maestro/main/scripts/install.sh | MAESTRO_INSTALL_CHANNEL=beta bash
curl -fsSL https://raw.githubusercontent.com/evalops/maestro/main/scripts/install.sh | MAESTRO_INSTALL_CHANNEL=alpha bash
npm install -g @evalops/maestro@beta
npm install -g @evalops/maestro@alphaThe installer verifies the release checksum manifest and Cosign signatures when the release provides them, stages binaries and web assets under a versioned data directory, and swaps only the launcher. Set MAESTRO_REQUIRE_SIGNED_INSTALL=1 to refuse legacy releases without signed metadata.
Installed interactive sessions check for updates on startup and apply newer releases before opening the TUI. The check is bounded and failures never block startup. Set MAESTRO_AUTO_UPDATE=0 to opt out, MAESTRO_AUTO_UPDATE=check to show availability without installing, or use maestro update --check for an explicit check. Use maestro update --channel beta or maestro update --channel alpha for a one-time channel update; channel installers persist that choice for startup checks. Signed-release installs require Cosign verification during automatic updates; global npm and Bun installs update through their original package manager.
Release assets are named maestro-darwin-arm64, maestro-darwin-x64, maestro-linux-arm64, and maestro-linux-x64. The npm package contains the same native binaries and a POSIX launcher; it does not execute JavaScript at runtime.
maestro # interactive TUI
maestro setup # check auth/config and show the next setup step
maestro "fix the failing test" # interactive with an initial prompt
maestro exec "summarize this repository"
maestro --headless # NDJSON protocol over stdio
maestro web --port 3000 # browser UI and HTTP runtime gateway
maestro hosted-runnerRust owns every agent/runtime path:
packages/maestro-rs— canonical executable and command dispatchpackages/tui-rs— agent core, providers, tools, TUI, and headless runtimepackages/runtime-gateway-rs— HTTP/SSE/WebSocket runtime gateway
The repository contains no TypeScript source or TypeScript build toolchain. The browser UI is a versioned static asset snapshot served by the Rust runtime gateway; agent execution, protocols, adapters, CLI, and TUI are Rust.
cargo test --workspace --locked
npm run check:rust-only-runtimeSee Architecture, Quickstart, and Web UI.