Cereal docs
HTTP API

Session events

Durable events, live previews, and the events used by application UIs.

The durable session log is available through sessions.events. The SSE route publishes a client-safe projection of that log plus ephemeral previews; it is not the raw log. System messages and internal model request data are not browser transcript events. See streaming protocol for formats, tokens, and cursors, and sessions for lifecycle.

Event catalogue

This table covers commonly used events. Some are visible only through authorized server reads. Use each schema for exact fields and streaming protocol for browser events.

EventWhen
user.messageA message you sent. Carries the delivery mode, any attachments and any message metadata.
agent.messageWhat the model said. Durable; this is the one to render and to store.
agent.text_deltaEphemeral typing preview. Never persisted: a client that reconnects sees the agent.message instead.
agent.reasoning_delta, tool.call.input_deltaThe same, for reasoning and for tool arguments being composed.
tool.call.started / .completedEvery tool call, whoever runs it, with its input and its result.
tool.call.pending / .decisionA call waiting on a person, and the answer.
model.request.started / .completed / .failed / .retriedOne per model call, per fallback rung. Tokens, cache counters and cost land on .completed.
session.statusEvery transition, with a stopReason on an idle.
session.usageThe turn's meter, written immediately before the terminal status.
session.errorSomething degraded and the turn continued: an unreachable connection, a failed summariser.
session.metadata, message.metadataA change to session metadata, or an annotation of one message.
subagent.spawned / .status / .message / .completedThe four things a child session reports to its parent.
connection.authorization_required / .authorizedA tool needs an OAuth grant this identity does not have yet.
sandbox.attached / .released / .idle / .snapshotted / .resumedThe lifecycle of the machine.
session.artifactSomething the agent published, such as a preview URL.
compaction, cache.prefixThe transcript was compacted; the cached prefix was pinned or re-pinned.
hook.dead_letterA hook delivery gave up.

On this page