Session format registry

This registry records observed on-disk session formats for the harnesses that deja parses. Each entry describes store discovery, file layout, message records, role and timestamp handling, and known compatibility behavior. These are observations of upstream output, not specifications published by the harness vendors.

registry.json is the machine-readable index. The files under fixtures/registry are synthetic conformance samples shaped like upstream records. internal/sources/registry_test.go checks the index against deja's loader list and runs each fixture through its parser.

Entries

HarnessFormat
Claude CodeJSONL transcript
Codex CLIrollout and history JSONL
opencodeSQLite relational store, plus a JSON diff file per session
CursorSQLite key-value store and JSONL transcript
Gemini CLIsession JSON and replayable JSONL
aiderappend-only Markdown
Ampone JSON object per thread
AntigravityJSONL transcript
Grok BuildACP update JSONL with JSON metadata
Gooselegacy JSONL and SQLite session store
Qwen CodeJSONL transcript
piJSONL transcript
omp (Oh My Pi)JSONL transcript
prime-agent (PrimeIntellect)JSONL transcript
Clinetask JSON, two store generations
Kimi Codeper-agent wire JSONL
OpenClawappend-only pi-format JSONL
Copilot CLIsession event JSONL
VS Code Copilot ChatJSON/JSONL mutation log in VS Code workspaceStorage, and the extension's own event-log transcripts
Roo Codetask JSON in VS Code globalStorage
Kilo Codetask JSON in VS Code globalStorage, plus the CLI's OpenCode-schema SQLite
Kiroone JSONL per session from the CLI, another from the IDE
Senpipi's session JSONL under its own agent directory
gajae-codepi's session JSONL, sub-agent passes one level down
Kimchi Codingpi's session JSONL, flat root
Command Codesession header + message envelopes, JSONL per session
ZCodeflat role/content JSONL per session, plus the CLI's OpenCode-schema SQLite
CodeWhaleone JSON document per session, Anthropic-shaped content blocks
CodeBuddy CodeClaude Code's project tree, OpenAI Responses-style items per line
Reasonixflat role/content JSONL per session, clock and workspace in a sidecar; 1.x keeps a zstd-framed event log per session directory
TRAE CLICodex rollouts under ~/.trae/cli, user turns from events only, tool calls in history_mutation
Muse Codeevent-sourced JSONL per session directory, sharded by day
Cherry StudioClaude Code transcripts under the desktop app's data, one snapshot per stream chunk
Continueone JSON document per session, list beside it
Crushone SQLite store per project, registry in the data home
HermesSQLite state store, and Postgres when configured
DeepSeek Harnessappend-only session log, zstd-framed JSONL
ZedSQLite thread store, zstd-compressed bodies

Reporting drift

Open an issue with the harness name and version, operating system, observed store path, and the smallest redacted record that shows the difference. State whether the change affects discovery, session metadata, roles, content, or timestamps. Do not attach a real session database or unredacted transcript.

Adding or updating a format

  1. Update the harness reference page from observed records and note the drift under Known quirks and drift.
  2. Add a synthetic fixture that contains no user data or credentials.
  3. Add or update the registry.json entry. Paths are repository-relative; store paths use environment-variable placeholders where applicable.
  4. Update the parser and its focused tests, then run the registry conformance test and the full suite.
  5. Set Last verified to the observation date, here and in registry.json — those two are compared, so a page cannot claim a check the registry does not have.

SQLite fixture sources are stored as SQL so changes remain reviewable. The conformance test materializes them in a temporary directory before parsing.


deja reads this format and thirty-seven others, and turns what it finds into memory your agents can search. See the harness matrix for what is wired where, or install it and search your own history.

Found this useful? Star deja-vu on GitHub.