Agent Control Plane banner
coleam00 coleam00

Agent Control Plane

Development community

Description

A control plane for long-running agent loops: agents prompting agents on Pi, run history in Neon, a React dashboard, deployable with Retool.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Agent Control Plane

Long-running agent loops you can actually watch. Give it a goal; agents prompt agents until it's done; every run is recorded so you can see what they did while you stepped away.

A control plane for long-running agent loops, built on **Pi** (a provider-independent coding agent) with run history in **Neon** (serverless Postgres) and a **React** dashboard. You give it a goal; it runs a loop until the goal is met, recording every run so you can see what your agents did, not just what they are doing right now. Because it drives Pi rather than any one model API, the same loop runs on Claude, GPT, Gemini, Kimi, or a local model (see [Models and providers](#models-and-providers)).

How it works

Two loop modes:

  • orchestrated (default): agents prompting agents. Each round an LLM orchestrator agent inspects progress (with read-only tools) and decides either that the goal is done or what the next task(s) are. It writes the prompts that worker agents then execute (with full tools). Independent tasks fan out and run in parallel. The orchestrator makes the continue/done call, not a regex.
  • ralph: the classic single-agent loop. A fixed prompt re-runs one worker agent each round; a sentinel in its output (LOOP_STATUS: DONE) ends the loop.

State lives on disk (a `PROGRESS.md` per loop) and in Neon, never in a model's context, so every round starts with a fresh context. The human gate is the resume action: a loop that hits its iteration cap parks in `awaiting_approval` until you approve more rounds.

Every run (orchestrator or worker) lands in Neon with its role, output, tokens, status, and a link to the orchestrator decision that spawned it. The dashboard shows the live loop plus the full history.

orchestrated round:                         Neon                      React dashboard -> Retool
orchestrator agent decides  ──┐      loops / runs / run_events         live: orchestrator decision
   ├─ done -> stop            │  ->  (r