Rensei docs

Time-ordered conversation projection for one execution shell.

One projection for every shell kind: session activities (agent text, tool entries, system errors), user steers with delivery state, approval asks and decisions, system lifecycle entries with the dispatch receipt last on terminal shells, and inline peer (a2a) entries with their text preview - never the full body. Peer entries are on by default; `peers=0` hides them. Interactive shells with no activities carry the live PTY tail in the top-level `tail` field (observe-fenced, never paged). The shell’s organization is resolved from the shell, not from the caller’s active workspace. A caller who cannot see the shell receives 404.

GET
/api/execution-shells/{id}/conversation

Authorization

headerAuthorizationBearer <WorkOS user access token>

WorkOS user access token created by the Rensei CLI. The authenticated organization is resolved from membership and may be narrowed with X-Rensei-Org.

Path Parameters

id*string

Shell id: session:<sessionId>, instance:<instanceId> or interactive:<sessionId>.

Length1 <= length

Query Parameters

after?string

Opaque cursor: the nextCursor of a previous page, passed back unchanged. An entry id is not a cursor (400).

Length1 <= length
limit?integer
Range1 <= value <= 500
peers?string
Value in"0""1""true""false"
context?string
Value in"0""1""true""false"

Response Body

Conversation entries in time order, with the agent-turn count and the next cursor.

application/json
  1. response
id*string
entries*array<>
turns*integer

Count of agent entries that end a turn.

Range-9007199254740991 <= value <= 9007199254740991
nextCursor*|

Opaque cursor for the last entry when more follow; pass back as after. Null at the end.

tail*|

Live PTY tail for an interactive shell with no activities, when the viewer passes the observe fence. Beside the page, never in it — it has no stable timestamp and can never be an after cursor. Null otherwise.

Example Request
curl -X GET 'https://app.rensei.ai/api/execution-shells/string/conversation'
Example Response
{  "id": "string",  "entries": [    {      "id": "string",      "occurredAt": "string",      "actor": "agent",      "kind": "text",      "text": "string",      "toolName": "string",      "toolInputSummary": "string",      "delivery": "queued",      "direction": "in",      "handle": "string",      "taskId": "string",      "tier": "durable",      "toYou": true,      "monospace": true,      "askKind": "approval",      "preview": "string",      "mailboxStatus": "string"    }  ],  "turns": -9007199254740991,  "nextCursor": "string",  "tail": "string"}