# alineod
URL: /docs/alineod

A swarm control daemon — start, fork, steer, pause, and collect results from trees of sandboxed agents over HTTP + SSE.



alineod is a long-running daemon that exposes an HTTP + Server-Sent Events API for orchestrating **swarms** of
agents. Every agent in a swarm is an `alineo` agent running in its own OpenSandbox container; alineod drives them
in-process through the [Agent SDK](/docs/agent) and keeps a durable, append-only record of the whole swarm.

```
client ── HTTP + SSE ──▶ alineod ── in-process ──▶ alineo SDK ──▶ OpenSandbox + Pi
```

It is a separate package from the SDK on purpose: the SDK is the library for driving **one** agent; alineod is
the control plane for a **tree** of them — and because its interface is a wire protocol (an OpenAPI document plus
an event schema), any language can drive a swarm without an SDK of its own.

## What it does [#what-it-does]

* **Runs and spawn trees** — create a run with a root agent, then fork children from any live agent's sandbox.
* **Fan-out / gather** — a child can `waitFor` other agents; their results are written into its sandbox before it starts.
* **Budgets** — `spawnDepth` and `maxAgents` limits, enforced per lineage, refused with a `budget_denied` event.
* **Live control** — `steer` a running turn, `pause`/`resume` an agent's container, `stop` an agent or delete a whole run.
* **One event stream per run** — lifecycle events plus every agent's forwarded harness events, resumable with `Last-Event-ID`.
* **Crash-only recovery** — agents run in containers, not as child processes; restart alineod and it reconnects to the swarm without interrupting in-flight turns.

<Cards>
  <Card href="/docs/alineod/getting-started" title="Getting Started" description="Run the daemon, start a run, and fan work out across child agents." />

  <Card href="/docs/alineod/guides" title="Guides" description="How runs, budgets, fan-out/gather, steering, pausing, and crash recovery work." />

  <Card href="/docs/alineod/api-reference" title="API Reference" description="Every HTTP route and every event on the run stream." />
</Cards>
