Mission Control · the steering layer of the Software Factory

Stop babysitting agents.Put one in charge.

Mission Control's steering agent runs your coding agents around the clock: it starts the work, answers their questions and reviews what they ship. You decide how much it does on its own, and the rest reaches you in Slack or on your phone, one tap to approve.

kea-bookings#214 · Retry failed payment webhooks
request changesplanHermes · Thatchimplementcoder · subscriptionvalidatecmd · tests · lintreviewgate · agentmergegate · youwaiting for the run to start…

The problem

Agents are cheap. Your attention is not.

one agent · one terminalyou: watching
$ agent> retry failed payment webhooks● Reading src/payments/… (12 files)● Editing enqueueRetry.ts● Running tests…⠋ Waiting on the model (2m 14s)you: still here. tab open. not doing your own work.
one issue · one run · five nodesyou: at lunch
  1. planHermes · Thatchqueued
  2. implementcoding agentqueued
  3. validatetests, lintqueued
  4. reviewsteering agentqueued
  5. mergeyouqueued

Nothing needs you yet.

A single agent has to be watched, because it stops the moment it needs an answer and nothing tells you. In Mission Control another agent does the watching. It answers what your docs can answer, reviews what comes back, and hands you only the decisions you kept.

You set the autonomy

You decide what it does without asking.

Pick a posture, or set it action by action.

  • AskEvery consequential action waits for you.
  • AssistKeeps the board and your notes, and answers coders from your docs.
  • AutonomousAlso starts runs and reviews the work. Still asks before anything merges.

Switch everything on and it can take an issue from brief to merged on its own. Merging sits in no preset, so that only happens if you turn it on by name.

What it keeps for you comes to find you: a Slack message with an Approve button, or a push to your phone. To send work back, reply in the thread with what needs to change.

The automation menu above the chat composer: Ask, Assist and Autonomous, with Autonomous selected

How it works

The night shift
17:40

  1. 17:40

    You hand over three issues

    A sentence each, in steering chat. The steering agent reads the Flight Manual and the code graph, files the issues, picks a workflow for each and starts them. On Ask, you approve each start first.

    Steering chat: the agent files three issues and starts a run on each without asking
  2. 21:15

    A coder gets stuck. The steering agent unsticks it.

    The coder asks whether retries belong in the webhook handler or the job queue. The architecture doc says the queue, so the steering agent answers, cites the doc, and the run carries on. Nobody pings you.

    Steering chat: woken by a blocked run, the agent answers the coder from the architecture doc
  3. 02:30

    It reviews the work, and sends one back

    Tests pass, but the diff never caps the retries, which the issue asked for. It requests changes with a note, and the second pass adds the cap.

    The run modal: the implement node shows the change review asked for, then the second pass
  4. 07:45

    The one decision it kept for you

    Three PRs wait at the merge gate, each with its tests and review attached. Approve from the notification, or from Slack.

    A merge gate on a phone, with Approve and Request changes
  5. 07:46

    Merged before your coffee

    A night of agent time. A minute of yours.

    The factory board the next morning: nothing in review, the three issues in Done

What makes it a factory

Not a smarter terminal. A different shape of work.

A foreman that never clocks off

The steering agent watches the runs it starts and is woken the moment one needs something, at 3pm or 3am. It answers coders from your docs and reviews their work before anything reaches you.

Every change down the same line

Plan, implement, validate, review, merge. A workflow fixes each step’s agent, model and instructions, so the fortieth issue gets the same care as the first.

Checks that actually run

Tests, lint and typecheck run as real commands, not as a model’s opinion of them. A red result sends the work straight back to the coder.

A backlog at a time

Hand over a backlog, not a task. Each issue runs in its own sandbox, in parallel with the rest, and none of it ties up your laptop.

It knows your codebase

Every function, route and test, and how they connect, in one graph linked to the docs that explain them. Agents look up what a change will touch before they make it.

Frugal with tokens

Each step runs on the cheapest model that can do it. Checks need no model at all, planning runs on Thatch with no per-token bill, and coders query the code graph instead of re-reading the repo.

Every run, in the open

The transcript, the metrics and the cost of every node, for the whole team.

Nothing runs in someone's terminal. Runs live on the board, transcripts are stored, and every node shows its turns, tokens, cache hits and cost. A coder node can run on a third-party subscription you already pay for, so its list price is shown, not charged. When something goes wrong, the escalation is a card with the agent's last output, not a Slack message asking who was running what.

A coder node's metrics: 60 turns, 4.68M tokens with 4.53M from cache, $4.26 at list price and not charged
Thatch

Runs on our own compute

Sovereign AI inference, distributed across Aotearoa.

Thatch is our own AI inference project: self-contained compute units at many sites across New Zealand rather than one large building, running on New Zealand renewables, under New Zealand law. The Software Factory is one of its anchor workloads.

  • Sovereign by default. A node pinned to a Thatch model never leaves the country.
  • No per-token bill. Planning, review and the long boring loops run on capacity we own.
  • Chosen per node. Thatch for the planner, a frontier model for the code, side by side in one run.
  • Honest status. In active development with anchor partners. Throughput is shared, and the factory is built to wait for it.

Serving today

Qwen3.8 27B:ttQwen3.8 27BOrnith 1.5 35B

run 114 · planner

Qwen3.8 27B:tt on Thatch

  1. readdocs/architecture.md
  2. grepretry src/payments
  3. plan4 steps, tests first
  4. ✓handed to the coder
Token traffic from Thatch nodes into a Mission Control run. Sites are illustrative.

Compared honestly

Built on the agents you already trust. Adds the layer they are missing.

The coding agents you already use are not competitors. They are harnesses a coder node runs. What a single agent cannot give you is everything around it.

Mission ControlOne coding agent
Several agents on one issue, in a workflow with gatesYesNo
Keeps running while you are awayYesPartly, one session at a timepartly
Approval gates before review and mergeYesNo
Comes to your phone when a decision needs youYesPartly, one session at a timepartly
Whole team sees every run, transcript and costYesNo
Pick the model per step, including our own on ThatchYesNo
Project context the agents read before they startYesPartly, one session at a timepartly

● yes · ◐ partly, one session at a time · ○ no

Brief it. Go home. Approve the merge.

Mission Control is by invite while we bring colleagues on. If you have an account, go in.