Orchestrating a team of agents with OpenVibe

A goal, a plan, one branch and worktree per agent, time budgets and a merge into a mission branch. Here is what the orchestrator does, step by step, and when to do without it.

IN SHORT
  • A manager, not a coder. The orchestrator is a Claude Code session that splits, assigns and keeps time; it is denied Edit, Write, NotebookEdit and Bash.
  • Each agent on its own branch. One branch and worktree per agent, merged into openvibe/<mission>; nothing is pushed, nothing lands on your branch.
  • Time is watched, not enforced. At the budget, the orchestrator is told; at twice the budget, so are you. Nobody is stopped automatically.

Starting four agents on the same task is easy. Getting them to work together without stepping on each other is another matter: who does what, on which branch, in how long, and who puts it all together at the end. In OpenVibe, that is the orchestrator’s job.

This article follows a mission from start to finish: linking a group, the plan, the go-ahead, the branches, the time budgets and the merge. It also says when an orchestrator adds nothing.

What the orchestrator is

The orchestrator is a Claude Code session that acts as a team manager. It does not write code: it reads the repository, splits the goal, hands out sub-tasks and puts the results together. Its writing tools are taken away: Edit, Write, NotebookEdit and Bash are denied in its session, and it only gets OpenVibe’s own tools. If those settings cannot be given to it, it does not start, and its node says why.

It talks to OpenVibe through a local MCP server, which listens on 127.0.0.1 only and needs a token of its own for each session. The main tools:

Tool What it is for
mission, team Read the state of the mission and of each agent: sub-task, steps, time spent, report
propose_plan Propose the plan, which waits for your go-ahead
add_tasks, queue Queue tasks beyond the number of agents
read_output, write Read the end of an agent’s terminal, send it a clarification
extend, interrupt, reassign Extend a budget, interrupt a turn, hand a sub-task to someone else
merge, finish Merge the finished branches, close the mission
remote_control Turn on Claude Code’s Remote Control for the team

On the agents’ side, three tools are enough: declare_steps, step and report.

Before you start

You need a git repository with at least one commit, since a mission works on branches. If the repository has none yet, OpenVibe says so instead of showing git’s error.

Then link an orchestrator to a group, from the group’s menu: Link an orchestrator. A mission’s agents are Claude Code agents: those of the linked group, or new ones the orchestrator creates for the job. If you have several groups, give each one a speciality, a single line from its menu (for example “API and database”). The orchestrator is told each agent’s group and speciality, and uses them to hand each sub-task to the right group.

The mission panel, under the orchestrator, has three settings:

  • Global budget: real time from the go-ahead, shared by the agents working in parallel.
  • Max agents: 4 by default, 8 at most.
  • Model router: picks each agent’s model, see below.

Finally, describe the goal in the orchestrator’s terminal, in plain words. You can also start from a Kanban board: Plan with the orchestrator, in a column’s menu, sends it the column’s cards.

The plan and the go-ahead

The orchestrator proposes a plan with propose_plan. Each sub-task has a title, a brief, an owner (a linked agent, or a new one), a budget in minutes and, optionally, a difficulty level. One sub-task per agent; anything beyond the number of agents can go into a queue, which agents pick up as they finish.

The plan shows in the mission panel, with the total of agent minutes. Nothing starts until you click Launch the mission. If you do not like the plan, tell the orchestrator in its terminal: it proposes another one, which replaces the first.

On the go-ahead, OpenVibe forms the team and gives each agent its sub-task as soon as its terminal is ready. If an agent’s Claude session has not opened after a minute, its sub-task is not sent, and the orchestrator is told.

One branch and worktree per agent

At launch, OpenVibe creates the mission branch openvibe/<mission> from your current commit, then a branch and a worktree for each agent, from the mission branch. The worktrees go into a folder next to your repository:

projects/
├── shop/                      your repository and branch, untouched
└── shop.worktrees/
    ├── auth/                  openvibe/auth (mission branch)
    ├── auth-athena/           openvibe/auth-athena
    └── auth-hermes/           openvibe/auth-hermes

Each agent works and commits in its own folder, so two agents never edit the same copy of a file. A fresh worktree has no dependencies installed, and the agent’s brief says so (node_modules and the like are missing).

This is also the only case where OpenVibe answers a Claude Code prompt for you: the folder-trust question, and only in the worktrees it created itself.

Steps, reports and budgets

Each Claude agent declares its steps, which appear as a timeline under its terminal, and marks them as it goes. It can hand parts of its work to its own sub-agents. When it is done, it reports with report: a summary, a status (done, blocked or failed) and, if needed, what you will have to check by hand.

For time, the rule is simple:

When What happens
Budget reached The orchestrator is told and decides: write to the agent, extend, interrupt or reassign
Twice the budget You get a notification, and the agent’s bar turns red
Global budget spent The queue gives out no new task, and the orchestrator is asked to finish with what is done

Nobody is stopped automatically. An agent running over may be about to finish; that is for the orchestrator, or you, to judge. extend adds minutes, within the global budget. interrupt stops the current turn, like a pause. reassign hands the sub-task to another agent, which gets the previous agent’s report and branch.

Merging into the mission branch

When agents have reported “done”, the orchestrator calls merge. OpenVibe merges their branches into the mission branch, inside the mission’s worktree. Anything left uncommitted in an agent’s worktree is not merged, and that is reported. On a conflict, the merge is aborted and the files involved are listed: the orchestrator decides what comes next, or you do.

Two things never happen in a mission’s own steps: a push, and a merge into your own branch. When the orchestrator calls finish, its summary shows in the panel and the mission branch is waiting for you. You review it (each agent’s diff button opens the change review), then merge it yourself, for example:

git switch main
git merge openvibe/auth

Clean up the mission then removes the worktrees whose branch is merged. Nothing is forced: a worktree that still holds changes stays, and the branches stay.

One limit to keep in mind: OpenVibe’s git window only pushes when you click, but an agent running commands in a terminal is limited only by its permissions.

The model router

Turn on Model router in the panel, and every sub-task must carry a level. The level picks the agent’s model:

Level Model
low Claude Haiku 5.5
medium Claude Sonnet 5.5
high Claude Opus 5.5
extreme Claude Fable 5.1

The orchestrator sets the levels when it proposes the plan; you see them before the go-ahead, and you can ask it to change them. With the router off, OpenVibe picks no model: your usual Claude Code setting applies.

When not to use an orchestrator

  • A short or tightly knit task. If the work fits in one session, a single agent will be faster than a plan, several worktrees and a merge.
  • Sub-tasks that touch the same files. Worktrees prevent collisions while the agents work, not at merge time: you end up with conflicts to resolve.
  • No git repository. A mission needs one, with at least one commit.
  • Agents other than Claude Code. Missions, the step timeline and the router rely on Claude Code. For a group of Codex or Aider agents, the instruction box and the review are the right tools.
  • You are exploring, not shipping. To compare ideas, asking @all the same question and reading the answers side by side is often enough.
  • Your plan is nearly used up. Every agent on the team draws on your Claude subscription; the meter in the title bar tells you where you stand.

Try OpenVibe on your own agents

Free, open source, no account. It launches the agents already installed on your machine.

Download for Windows