---
title: "sessions"
description: "Agent sessions: one conversation between a person and a coding agent\n(Claude Code, Codex, Pi, OpenCode V2), recorded by `pando sync` on the\nperson's machine after secrets are removed there, and stored as sent, in\npieces in R2. Every member reads them as they are recorded; nothing on\nthem is written by a model. The server parses on read with\nletta-ai/trajectory 0.4.3, plus a pass of its own for the model of each\nanswer.\n\n**Appending.** A piece is whole lines, at most 8,000,000 bytes, sent\nwith where it starts (`at`) and where the next starts (`next`) in the\nsender's own cursor: a byte offset in the agent's file, or the last row\nread for OpenCode. It is taken only when `at` is the session's end; any\nother start is 409 `not_at_end` with `end`, which the sender resumes\nfrom. A deleted session answers 410 `session_deleted`: send nothing more.\n"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.gitpando.com/llms.txt
> Use this file to discover all available pages before exploring further.

Path: Pando API

Agent sessions: one conversation between a person and a coding agent
(Claude Code, Codex, Pi, OpenCode V2), recorded by `pando sync` on the
person's machine after secrets are removed there, and stored as sent, in
pieces in R2. Every member reads them as they are recorded; nothing on
them is written by a model. The server parses on read with
letta-ai/trajectory 0.4.3, plus a pass of its own for the model of each
answer.

**Appending.** A piece is whole lines, at most 8,000,000 bytes, sent
with where it starts (`at`) and where the next starts (`next`) in the
sender's own cursor: a byte offset in the agent's file, or the last row
read for OpenCode. It is taken only when `at` is the session's end; any
other start is 409 `not_at_end` with `end`, which the sender resumes
from. A deleted session answers 410 `session_deleted`: send nothing more.

## Operations

- [The repositories and projects you do not record, on every machine you sign in on](/api/sessions/getSessionExclusions/)
- [Replace that list (at most 200)](/api/sessions/setSessionExclusions/)
- [This machine (the calling credential) says whether it records sessions and which stores it reads](/api/sessions/reportSessionMachine/)
- [Each of your machines, as it last reported its recording (Settings)](/api/sessions/listSessionMachines/)
- [Sessions by last activity, newest first (deleted ones are not listed)](/api/sessions/listSessions/)
- [A branch's sessions, numbered 1, 2, 3 by their earliest commit there, and each commit's session numbers](/api/sessions/getBranchSessions/)
- [One session, or the stub a deleted one leaves (who deleted it, when)](/api/sessions/getSession/)
- [Delete at once and for good (its person or an owner); its pieces leave R2 now](/api/sessions/deleteSession/)
- [Append whole lines at the session's end (the first piece makes it)](/api/sessions/appendSessionPiece/)
- [A page of the conversation, parsed on read, about 2 MB of lines at a time](/api/sessions/getSessionEntries/)
- [Remove prompt n's turn (its person or an owner); a mark keeps its number, who and when](/api/sessions/removeSessionTurn/)
- [Read every stored piece again and rebuild the session's numbers (how a parser fix reaches stored sessions)](/api/sessions/reindexSession/)


Source: https://docs.gitpando.com/api/tags/sessions/index.md
