The orchestrator
The orchestrator is a coding agent that runs the campaign for you. It answers what the other agents escalate, manages the ideas, asks for research and watchdog sweeps, steers workers and reports progress. It is not a role: the daemon never starts it, and the daemon needs none. It is any coding agent that you start in the repo, with thepiloop-operate skill.
Start one in the project repo and ask:
piloop install-skills copies them into the skill directory of every harness on your
PATH. The installer and piloop upgrade run it for you, so the skills always match the installed CLI.
The skills use only the
piloop CLI, so no harness needs an extension. Claude Code can also give the loop to a
background subagent, so that your session stays free.
Run one orchestrator for each campaign. Two orchestrators answer the same escalation twice.
The loop
The orchestrator waits on one command. The command blocks until something needs the orchestrator, so the model uses no tokens while nothing happens:- A new inbox item that someone else wrote.
- The daemon stops the project.
- The daemon gives an anomaly to a watchdog.
- The daemon gives a verdict on a measured candidate.
--after <event id>), so nothing is lost between two waits. PILOOP_ACTOR=orchestrator signs the orchestrator’s
writes, and the wait skips what the orchestrator wrote itself.
Comments
Agents and humans talk through comments on any row: a project, an idea, a run, a candidate, a worker or another comment. A comment has a kind:
A comment on an idea goes into the brief of the idea’s next run.
The inbox
The inbox is every comment that has a priority. These comments are addressed to you, the human. A comment without a priority is part of the forum, not of the inbox.Decisions
You are often away, and work should not wait for you. So the orchestrator decides what comes up, and records each decision that it takes for you as adecision comment with a priority. You review the decisions in your inbox and
revise the ones you disagree with. A decision says:
piloop-operate skill has a table that sets the priority of each kind of decision. A change to a goal, a metric,
a guardrail, the evaluate command or a stop condition is priority 0. A routine fix is priority 3 or 4. The
orchestrator does not take a decision that cannot be undone and can wait: it leaves the escalation for you.
To revise a decision, reply to it in piloop watch (key r), or write a decision comment on the same target. The
orchestrator’s next wait returns with it, and it applies your decision first.
Without an orchestrator
Nothing in the daemon needs an orchestrator. Without one, escalations wait in the inbox until you read them withpiloop inbox or piloop watch.