Expand description
Pi session schema (format version 3).
Pi is a terminal coding agent that stores sessions as JSONL files. The first
line is a SessionHeader; every subsequent line is an Entry, forming
a tree via id / parentId.
All structs carry an extra catch-all to preserve unknown fields for
forward compatibility.
Structs§
- Cost
Breakdown - Dollar cost breakdown accompanying
Usage. - Entry
Base - Shared fields on every non-header entry.
- Session
Header - Pi session file header (first line of a
.jsonlfile). - Tool
Call - A tool-use request inside an assistant content block.
- Usage
- Per-turn token accounting.
Enums§
- Agent
Message - A message inside a
messageentry. Role-tagged union. - Content
Block - One element of a message’s
contentarray. - Entry
- A single entry in a Pi session JSONL.
- Known
Stop Reason - Enumerated stop reasons defined by Pi. Kept inside
StopReasonso that unknown strings (e.g. from future Pi versions) still deserialize. - Message
Content - Content field for user / custom-role messages: either a bare string or a list of content blocks.
- Stop
Reason - Assistant stop reason. Unknown values round-trip through
StopReason::Other. - Tool
Result Content - Restricted content block set for
toolResultmessages. Per the Pi schema, tool results may only carry text or image content.