Skip to main content

Module types

Module types 

Source
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§

CostBreakdown
Dollar cost breakdown accompanying Usage.
EntryBase
Shared fields on every non-header entry.
SessionHeader
Pi session file header (first line of a .jsonl file).
ToolCall
A tool-use request inside an assistant content block.
Usage
Per-turn token accounting.

Enums§

AgentMessage
A message inside a message entry. Role-tagged union.
ContentBlock
One element of a message’s content array.
Entry
A single entry in a Pi session JSONL.
KnownStopReason
Enumerated stop reasons defined by Pi. Kept inside StopReason so that unknown strings (e.g. from future Pi versions) still deserialize.
MessageContent
Content field for user / custom-role messages: either a bare string or a list of content blocks.
StopReason
Assistant stop reason. Unknown values round-trip through StopReason::Other.
ToolResultContent
Restricted content block set for toolResult messages. Per the Pi schema, tool results may only carry text or image content.