One engine, many frontends, one protocol
Maestro
A headless Rust agent engine that delegates self-contained tasks to specialized subagents and gates every tool call by policy. Orchestrate it with deterministic flows, drive it from any frontend.
One engine, many frontends
A headless Rust engine serves a terminal, web, and desktop client over one backend-agnostic WebSocket protocol (MAP).
Deterministic orchestration
A hierarchical state machine of nodes, edges, and guards. You specify what happens at each scenario; nothing is left to model discretion.
Agents as functions
Subagents declare typed input and output schemas. A typed edge injects a handoff tool so one agent's result becomes the next agent's input.
Per-tool permissions
Every tool call is gated by an allow / ask / deny policy, with persistable always-decisions so approvals never become fatigue.
Hooks that cascade
Global hooks form a base layer for every agent; per-agent hooks layer on top, additive by default or overriding per tool.
Bring your own backend
OpenAI-compatible by default, so DeepSeek, Anthropic, or a self-hosted local LLM are all just configurable backends.