Command reference
oko sessions timeline
Shows everything that happened to one agent session in one order, so what became of an agent is read in one place: read from the stores that already hold each event, nothing reconstructed by hand.
Invocation#
oko sessions timeline ID [--since TIME] [--json]Inputs and options#
- ID is the session id, or a transcript file name ending in it. --since takes an RFC 3339 time; without it every event the stores hold is shown.
Output and state effect#
- Prints one line per event, `<time>`, its kind and the words that say it, oldest first: from the session's transcript, through the same decoder every Oko reading uses, `started` (and where), `model` for each model it ran on, `interrupted` and `provider error` for each turn an interruption or a provider's failure (a dropped stream among them) ended, with the harness's own sentence, `gate refusal` with the first line of each tool call a Tama gate refused, and `compacted`; from `oko sessions posts`, `message queued` for each post to or from it (naming the sender, or Oko's routine that handed it) and how it settled (`message delivered`, `message left in an inbox`, `message refused`, `message interrupted`); from `oko sessions inbox`, each message with its state and sender; from the defect register, each intervention on it (`<kind> on defect <id> by <sender>: <outcome>`, or `sender not recorded`).
- A store that cannot be read is printed as `unread <store>: <cause>` after the events, never shown as one that holds nothing, and so is an event a transcript records with no time, by its line number. --json prints {session, since, events [{at, kind, detail, source}], unread [{source, cause}]}. Nothing is changed.
- Oko Desktop's Sessions screen shows the same timeline under each agent (Show what happened to it), through the native API's sessions domain (timeline with session and optional since), unread stores included.
Refusals and safe exits#
- A missing ID refuses with “oko sessions timeline requires <id>”, an unknown flag is refused naming it, and a --since that is not an RFC 3339 time refuses with “oko sessions timeline --since takes an RFC 3339 time, got <given>: <cause>” (exit 2).