Start hereStable

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

PrimitiveWhat it is
RuntimeThe adapter for a CLI coding agent — a normalized interface the control plane talks to, not a running process.
AgentA live runtime process: one CLI invocation, in one isolated worktree.
SessionA conversation thread inside a runtime. One runtime can carry many sessions.
PacketThe orchestrator's unit of planned work — a brief plus its result, with a runtime target and a dependency list.
LaneThe durable execution record — the row binding a session to a worktree to a packet, with a lifecycle from idle to merged.
MissionThe current batch of packets in flight toward one goal. There is exactly one active mission at a time.
ReviewThe diff verdict: accept, reject, or request changes. Per packet.
ApprovalA 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.
o8 v0.1.431 · updated 2026-06-25 · stable
tracks: docs/vocabulary.md