Many agents

Balanced in practice

Whole runs with Balanced, start to finish: what you set up, what you type, what Magnum does at each step, and what's left for you to decide. The names (a shop web app, a build-box server) stand for your own. For each part on its own, see Balanced.

A feature split across two machines

You want order history in shop: an API endpoint, a page that shows it, and tests for both. Your Mac and a Linux server, build-box, both have room.

  1. Open a session in shop, choose Balanced in the environment menu (the chip under the message box), and tick This Mac and build-box in its panel. Magnum copies the project to build-box the first time, and asks once to allow the project's check (in .magnum/settings.toml, under [worktree], check = "npm test"): Allow.
  2. Tell the lead: "Add order history: a GET /orders endpoint, a page that lists them, and tests. Split it across my machines."
  3. The lead asks Magnum for a plan. It comes as a message listing 3 pieces, each with where it runs and why ("build-box: fewest agents running there (0)"), and the tests piece marked "After: pieces 1 and 2 (starts once landed)". The plan also shows above the lead's message box, where you can start it yourself.
  4. The lead starts the plan. The endpoint and the page run at once, one on each machine, each in its own worktree and branch; the tests piece waits.
  5. Each worker finishes, Magnum checks its branch (its commits, nothing left uncommitted, npm test), and, passed, lands it in the lead's branch. The lead hears each: "Its check passed, so Magnum landed branch magnum/worker-orders-api in your branch". Once both have landed, the tests piece starts on its own, and the lead hears that too.
  6. With everything combined, the lead puts it to you: a row under Board › Now with its summary, what would ship ("3 commits · 9 files · +412 −20"), the check run again on its branch, and a screenshot it took of the page.
  7. The page is missing a total. Correct… and type "Show the order total in the last column": the lead gets your line, fixes it, and puts it to you again, its row now saying "Corrected once".
  8. Ship. Ship's steps show; Proceed; at Ready to push, Push. Nothing is pushed before you say so.

Overnight on a server

A long migration in shop that you'd rather run on build-box while your laptop sleeps.

  1. In a new session in shop, pick build-box in the environment menu (the chip under the message box): the session starts in shop's copy there (Environments). Turn Balanced on and tick only build-box.
  2. Tell the lead the migration, and: "Every weekday at 7, sum up what landed overnight." It schedules that (weekdays 07:00, build-box's clock), and Balanced's panel lists it.
  3. Quit Magnum. The lead and its workers keep running in build-box's node, and its engine carries on without Magnum: it starts the lead's Claude Code workers there, checks and lands their branches, tries a broken one again there (after a pause, restarted, or on a stronger model), answers a worker's question through the lead, and tells the lead each time.
  4. Anything that needs Magnum itself (a picture of a page, say) waits: the lead hears "Magnum isn't open: it keeps this … call and runs it once it opens".
  5. At 7:00 the lead gets "[Magnum] Scheduled (s1, weekdays 07:00): Every weekday at 7, sum up what landed overnight", and writes its summary.
  6. Open Magnum. Its calls that waited run, and the lead hears how they went; the Board shows the engine's workers (e1@build-box, …) with what each did, and under Board › Now whatever waits on you: the lead's review, a worker's question it passed to you.

A small budget, cheap models first

You want a dependency upgrade done for a few dollars, without eating your plan's 5-hour window.

  1. In Balanced's panel, set Plan reserve to 20%: an account whose window is past 80% takes no new workers.
  2. Pick Haiku for the lead in the model picker, and tell it: "Upgrade the date library across the app; budget $2." Its plan splits the budget among the pieces by size, and each worker starts on the lead's model (with Magnum Router on in the lead, a worker's first turn is decided from its piece instead) with its share ("Your budget: $0.40." in its instructions).
  3. One worker's turn ends with its check failing. Magnum tries it again a step up, Haiku to Sonnet ("Magnum tries a stronger model: attempt 2"), with what's left of its budget.
  4. A worker that reaches its budget stops; the lead hears so, and that one isn't tried again. If the work it finished passed its check, it lands all the same.
  5. When the 5-hour window passes 80%, a new piece doesn't start on that account: the lead hears why ("… is 84% used, past the 20% you keep, resets 14:00"), and Magnum places it on another agent with room, or the lead waits.

Hitting the 5-hour limit mid-plan

A plan is halfway through when your Claude plan's 5-hour window runs out.

  1. A worker's turn is refused for the limit. It isn't failed: Magnum pauses it until the limit resets, a minute past the time its account reported, and the lead hears "… reached its plan's usage limit. Magnum pauses it until the limit resets at 14:00".
  2. The Board shows it paused ("Paused for its plan's limit · goes on at 14:01"), with that time under Next. The pause isn't one of its three attempts.
  3. If the reset is more than 30 minutes away and another agent (Codex, say) has room on a ticked machine, the piece goes there instead, as a new worker with what the first did.
  4. At the reset it's told "Your plan's usage limit has reset. Carry on with your piece …" and goes on. A lead whose own turn was refused is told to carry on then too.

Workers ask their lead

You'd rather not be asked every small thing.

  1. In Balanced's panel, turn on The lead allows its workers' commands.
  2. A worker asks to run npm install in its worktree. Instead of you, its lead gets it as a message: "Worker … "Add the chart" asks to use Bash: npm install …". The lead allows it, and the worker goes on; its card says Asked its lead, and its row on the Board, "Allowed by its lead".
  3. Another worker shows a plan before it starts. The lead sends it back with a line ("Keep the old chart until the new one passes"), and the worker plans again.
  4. A third asks a question only you can answer (which of two designs). The lead passes it to you: it shows under Board › Now as any session's question.
  5. A question the lead leaves unanswered for 10 minutes comes to you too. You can always answer in the worker's session: the first answer counts.

Two projects under the chief

You're running shop and its mobile app, shop-ios, and want one place to talk to.

  1. ⌘P → Start the chief. A session opens in Magnum's own folder, pinned at the top of the sidebar.
  2. Tell it: "Start a lead in shop to add order history, and one in shop-ios to show it." It starts both (each a session in its project, on its machine, Balanced on, told its task); their sessions are in your sidebar, marked on the Board "Lead, started by the chief".
  3. Ask it "how are they doing?": it looks over its leads and sums up each one's workers and what waits on you.
  4. shop-ios's lead asks which screen the history goes on. It goes to the chief first, which answers from what you told it ("Your chief says: …"), and the lead goes on.
  5. Both leads put their work to you, as reviews under Board › Now. The chief has put a line under shop's ("Chief: ship this one first: shop-ios builds on it"). Four commands also wait to be allowed: press Space on each row to mark it (see The Board), then ⌘↩: "Allow 4" answers all four.
  6. The chief never allows, lands or ships: those stay with you.

A failing pull request fixed by its session

A session in shop opened a pull request; its checks fail on CI.

  1. In the pull request's pane (open it from the session, or from its row under Board › Now), turn on Its session fixes checks, reviews and conflicts. That's for the whole project.
  2. Magnum looks at the pull request every 2 minutes. When its checks fail, the session that opened it gets the fix as a message (the prompt Fix failing checks would put in its box, with a note to commit and not push), runs as a Ship for that pull request, and can't push. The row under Board › Now says "Checks failed · sent to its session".
  3. It fixes, commits, and ends with the commit to push. Ship's Ready to push shows under Board › Now: Push updates the pull request; Cancel leaves the commit where it is.
  4. Changes requested and a merge conflict go the same way. Three fixes a day at most per pull request; after that, the news comes only to you.

Mixed agents

Your lead is on Claude Code; Codex is signed in to your ChatGPT plan, and Pi runs a local model through Ollama on build-box.

  1. Tick This Mac and build-box. For each machine, Magnum checks which agents are there, and offers to install the lead's agent where it's missing.
  2. Ask the lead to put a mechanical piece (renaming a field everywhere) on Pi, and a review piece on Codex. A worker on another agent than its lead takes the permission mode that goes as far and no further (the lead's Accept edits is Codex's Auto and Pi's Auto-edit).
  3. A Codex worker asks to stage and commit: Magnum allows exactly that (git add and git commit in its worktree) without asking you. Codex's spend is reckoned from its tokens at its model's list prices, so its budget holds too.
  4. A piece Magnum places itself goes to the lead's agent where it fits, else another that does; when Claude Code's account is at its limit, to another agent, and the plan says so ("Claude can't take it: Codex instead").