Sessions, history & transcripts
A Nori session is a conversation with an agent plus everything that happened in it — messages, tool calls, patches, and approvals. Nori records it all on the host side, independent of whatever the agent stores for itself.
On-disk layout
Section titled “On-disk layout”Everything lives under the Nori home directory: $NORI_HOME if set,
otherwise ~/.nori/cli. Transcripts are organized by project:
~/.nori/cli/transcripts/by-project/{project-id}/ ├── project.json # project metadata └── sessions/ └── {session-id}.jsonl # one file per sessionMessage history — every prompt you’ve typed, recallable from the composer in
any session — is a separate global file, ~/.nori/cli/history.jsonl.
Transcripts are what make sessions durable: nori resume (or /resume in
the TUI) brings one back, and /fork, /compact, and /undo rewind and
reshape it — see the sessions guide.
The transcript format
Section titled “The transcript format”Each session file is JSONL: one JSON object per line, each carrying a
timestamp, a schema version (currently 2), and one of seven entry types —
session_meta, user, assistant, tool_call, tool_result,
patch_apply, and client_event. The format is documented as a stable
contract, so external tools — analysis scripts, other hosts, other ACP
implementations — can read and write Nori transcripts without depending on
Nori’s internals.
Next steps
Section titled “Next steps”- Sessions guide — resume, fork, compact, and undo in practice
- Architecture — where transcripts sit in the
nori-harnessruntime layer
this page as markdown: /cli/concepts/sessions-and-transcripts.md· index for agents: /llms.txt