Skip to content

Repository files navigation

Agent Maestro

Agent Maestro

Agent Maestro is a desktop application (Electron, macOS / Windows) for visually composing AI agent teams. Draw a hierarchy of agents, assign each one a role, a mission, documents and its own LLM — then watch them delegate, loop until reviewed, and wake up on their own. Everything runs local-first on your machine: no account, no cloud, no telemetry. Compatible with Ollama, LM Studio, OpenRouter, OpenAI, Mistral, Groq, and any OpenAI-compatible endpoint.

License: Copyright Platform Electron Local first UI

English · Version française · Changelog

The Agent Maestro canvas: a team lead delegating to three specialists, with a loop running

What's new in 1.11

Three releases since the first public one, driven by using the app for real:

  • 📐 The Architect — a built-in agent that designs your team from a conversation. Hand it a specification or a manual and it builds from that document, then passes it on to the agents that need it. (1.9 → 1.11)
  • 🗂️ Workspaces — several sealed universes, each with its own agents, documents, memories and routines, switched from a visual bar. (1.9)
  • Contextual help — an (i) on every tab and field, in the interface language, hideable once you know your way around. (1.9)
  • ⌨️ Copy and paste fixed — the app shipped without an application menu, so macOS never bound ⌘C / ⌘V. It now has a full bilingual menu and a right-click menu in text fields. (1.9)
  • 📎 Documents up to 2M characters, replaceable in place; unlimited mission and guidelines with a full-screen editor; an eye toggle on API keys. (1.9 → 1.10)

Full history in the changelog.


Why

Chat with one model and you get one opinion. Real work needs a researcher, a writer and a reviewer who disagree with each other — and someone to conduct them.

Agent Maestro is a desktop studio where you draw that team, give each agent a role and a model, and let them work: delegating, looping until a reviewer approves, reading the documents you attached, remembering what matters, and waking up on their own when you are not there.

Everything runs on your machine. No account, no cloud service of ours, no telemetry — just your own LLM engines.


Highlights

🧑‍🚀 Draw the team, the hierarchy does the rest

Each node is an agent: role, mission, guidelines, temperature. Drag a link from the bottom of one node to the top of another and the first becomes the supervisor of the second — it can then delegate sub-tasks to it, recursively, and synthesise the answers.

Agent inspector: identity, mission, guidelines, engine and temperature

📐 Describe it, the Architect builds it

You do not have to draw anything to start. Tell the built-in Architect what the team has to achieve and it proposes a full structure — agents with their roles, missions and guidelines, the hierarchy between them, and the loops that keep them honest. Review the proposal, apply it in one click, and the canvas fills up.

It works just as well on a team that already exists: ask for a reviewer, tighten someone's guidelines, add a whole branch. The Architect amends what is there instead of starting over, and says which mode it is in before you apply anything.

You can hand it documents too. Drop a specification, a manual, a procedure or meeting notes into its Documents tab and it designs from the real text instead of from what you managed to summarise — reusing the vocabulary, the constraints and the steps it finds there. A short or pinned document is read in full; a long one is searched by keyword against your request, so a big PDF never floods its context window, and any truncation is stated rather than silent. These documents belong to the workspace, like everything else there.

And it can pass those documents on. When it judges an agent genuinely needs one to do its job, the plan hands it over: the document is copied into that agent's own base — pinned if the Architect thinks it should stay permanently in context — so the team starts work already equipped. The plan card shows which agent receives what before you apply anything, and a document the Architect names but cannot find is reported rather than silently dropped.

It is a built-in agent, not editable — its own guidelines ship with the app. You only choose which engine it runs on, and a powerful model is strongly recommended here: designing a coherent hierarchy takes more reasoning than carrying out a single task.

The Architect proposing a full team structure, with the documents it hands to each agent

🗂️ Several workspaces, sealed from each other

A workspace is a complete universe: its own agents, loops, documents, memories, skills, routines and journal. A smart-home workspace and a property-research workspace share nothing — no crossed memories, no stray document. Only your LLM providers are shared, so you declare them once.

The bar under the toolbar shows them side by side, each with its colour, icon and content, so one glance tells you where you are and one click changes world. ⇧⌘E creates one; the command palette switches between them.

🧩 One LLM per agent

Declare as many providers as you like: a local engine (Ollama, LM Studio), a self-hosted gateway, or a remote service (OpenRouter, OpenAI, Mistral, Groq…). Any OpenAI-compatible endpoint works. Test the connection and the model list is fetched for you.

Then each agent picks its own engine — a small local model can draft while a stronger one reviews, inside the same loop.

LLM providers panel with Ollama, OpenRouter and a self-hosted gateway

♾️ Loops that keep working until it is right

A loop is a node of its own, wired to the agents taking part in it. Five kinds:

Kind How it works
♻️ Producer ↔ Reviewer One produces, another reviews, the first revises — until approved.
🎯 Until goal reached The worker works (and delegates); a judge decides each round whether the goal is truly met.
📋 Over a list Processes N items (parallelism configurable), list given or generated, then a synthesis.
🛰️ Permanently autonomous Wakes up on its own, acts if needed, otherwise answers "NOTHING TO DO" and goes back to sleep.
🧬 Self-improvement The agent re-reads its journal, memory and skills, writes new skills and better guidelines — a reviewer approves before anything is applied.

Every loop is bounded: max iterations, token budget, max duration, plus a Stop button that is always live and a global emergency stop. You watch each iteration, each verdict and each score in real time.

Loop control panel: a producer/reviewer loop running at iteration 2 with its verdict history

📎 Give an agent its own documents

Drop pdf, docx, txt, md, csv, json, yaml onto an agent. The text is extracted and indexed locally — no embedding service, no upload. The agent searches passages by keyword when it answers, or reads a whole document when it needs to. Pin a short one and it stays in its context permanently. A test button shows exactly what the agent would retrieve.

Documents attached to an agent, with a live search preview of the passages it would retrieve

💬 Watch the team work

Send a mission to the conductor and follow the delegations, memory writes and skills created live, then read the synthesis.

Chat panel: a mission sent to the team lead and its synthesised answer

📜 Nothing happens silently

Every delegation, verdict, memory write, document lookup and loop step is journalled.

Activity journal listing delegations, verdicts, skills and loop steps

⌨️ Built for the keyboard

⌘K opens the command palette — create an agent, start a loop, switch workspace, call the Architect, stop everything. ⌘N agent, ⇧⌘N loop, ⇧⌘A Architect, ⇧⌘E new workspace, ⌘L auto-arrange, ⌘B full screen.

Command palette opened over the canvas

🌙 Always on, even with the window closed

Closing the window moves the app to the background: loops and routines keep running, a menu-bar icon shows how many are active, and the machine is kept awake while work is pending. Optionally launches at login, hidden.

❓ Help where you need it, in your language

Every tab, every field that deserves it carries a small (i). Click it and you get a plain explanation of what that thing does — in the interface language, French or English. Once you know the app by heart, one switch in the settings (or the Help menu) hides them all.

A contextual help bubble opened over the workspaces bar

🧠 Memory and self-learned skills

Each agent owns a MEMORY.md it writes to by itself, plus a shared USER.md. After a successful task it can save a skill — a Markdown playbook, versioned automatically — and reuse it later.

⏰ Proactive routines

Cron-scheduled missions handed to an agent or to a loop: morning brief, hourly watch, weekly report — with system notifications.

🌐 English / French

One switch in Settings → General changes the interface and the language the agents answer in — general rules, tool descriptions, loop prompts and verdict formats all follow. Verdict parsing stays bilingual, so a model answering VALIDE or VALID is understood either way.


Requirements

  • Node.js 20 or newer (LTS recommended)
  • At least one reachable OpenAI-compatible engine — Ollama or LM Studio locally, a self-hosted gateway, or a remote API

Quick start

git clone https://github.com/p3x2007-ops/agent-maestro.git
cd agent-maestro
npm install
npm start

Then open Settings → LLM providers, add an engine, hit Test — and start from one of the built-in team templates.

npm test    # 10 suites: engine, loops, documents, multi-LLM, i18n, background,
            # workspaces, architect, help & menus, metadata

Building an executable

macOSnpm run dist:macrelease/Agent Maestro-1.11.0.dmg. The app is not signed with an Apple developer account, so on first launch: right-click → Open.

Windowsnpm run dist:win on a Windows machine, or use the bundled GitHub Actions workflow (Actions → Build executables → Run workflow) which produces both the .dmg and the .exe.

Where your data lives

  • macOS: ~/Library/Application Support/agent-maestro/maestro/
  • Windows: %APPDATA%/agent-maestro/maestro/
maestro/
├── settings.json            # language, background mode, engine limits, active workspace
├── providers.json           # LLM providers (URL, key, detected models) — shared
├── USER.md                  # shared global context
├── espaces.json             # the list of workspaces
└── espaces/<workspaceId>/
    ├── team.json            # agents, loops, links and positions
    ├── routines.json        # scheduled tasks
    ├── journal.jsonl        # full activity journal
    └── agents/<id>/         # plus __architecte__/ for the Architect's own documents
        ├── SOUL.md          # generated identity
        ├── MEMORY.md        # the agent's persistent memory
        ├── skills/*.md      # versioned Markdown skills
        └── docs/            # attached documents (originals + extracted text)

The folder tree is created on first launch, and Settings → General shows you where it is with a button to open it. Data from a version before workspaces is moved into the first workspace automatically, without losing anything.

None of this is in the repository: your keys, documents and memories stay on your machine.

Good to know

  • Loops and routines run as long as the app is alive, window open or not.
  • API keys are stored in clear text in providers.json — do not share that file.
  • A remote provider receives whatever your agents send it, document excerpts included. To stay within your own perimeter, prefer a local engine or a self-hosted gateway.
  • The engine uses OpenAI function calling, with an automatic fallback to a text protocol for gateways that do not support tools.
  • There is no length limit on an agent's mission or guidelines — write a full page if the task deserves it, and use the ⤢ button to edit it full screen.
  • A document is indexed up to 2 million characters (~1000 pages). Any document can be removed or replaced by another file at any time, keeping its name and its pinned status.
  • Screenshots above show the app with a sample team; equipe-exemple.json gets you a similar one through the Import button.

Credits

Borrows the concepts of Hermes Agent (Nous Research) — SOUL, MEMORY.md, Markdown skills, cron — and adds the visual canvas, the agent hierarchy, the loops and the per-agent document base.

Built with Electron, React and React Flow.


Star history

Star History Chart


Licence and author

Agent Maestro — Copyright © 2026 Jean-Michel Saint-Supery. All Rights Reserved.

This software is proprietary. No part of this software may be reproduced, distributed, or used without the prior written permission of the copyright holder — see LICENSE for the full terms. Questions and licensing inquiries: please open an issue.

Releases

Packages

Contributors

Languages