Concepts
The eight primitives o8 is built on — runtime, agent, session, packet, lane, mission, review, approval — and how they fit together.
o8 is built on eight primitives. They have different lifetimes and different jobs, so it's worth holding them apart — these names show up everywhere in the app.
The mental model
You describe an outcome. The orchestrator breaks it into packets — units of planned work — and groups the active batch into a mission, ordered as a dependency graph so independent packets run at the same time. To execute a packet, o8 opens a lane: a durable record binding the packet to an isolated git worktree and to a session running inside a runtime (the adapter for a CLI coding tool). The live process doing the work is an agent. When its diff is ready, review renders a verdict, and approval gates the actions that need a permission check.
Plan and execution stay separate on purpose: a failed attempt is retried as a fresh lane without losing the plan.
The eight primitives
| Primitive | What it is |
|---|---|
| Runtime | The adapter for a CLI coding agent — a normalized interface the control plane talks to, not a running process. |
| Agent | A live runtime process: one CLI invocation, in one isolated worktree. |
| Session | A conversation thread inside a runtime. One runtime can carry many sessions. |
| Packet | The orchestrator's unit of planned work — a brief plus its result, with a runtime target and a dependency list. |
| Lane | The durable execution record — the row binding a session to a worktree to a packet, with a lifecycle from idle to merged. |
| Mission | The current batch of packets in flight toward one goal. There is exactly one active mission at a time. |
| Review | The diff verdict: accept, reject, or request changes. Per packet. |
| Approval | A permission gate on a tool call or lane action. Per call — not the same as review. |
Four distinctions worth keeping
- Runtime ≠ agent ≠ session — the adapter, the process, and the thread inside the process.
- Packet ≠ lane — the plan versus the execution. One packet can spawn several lanes; each retry is a new lane.
- Mission ≠ packet — a mission is the active batch; a packet is one item in it.
- Review ≠ approval — a per-packet diff verdict versus a per-call permission gate.