Skip to content

Which coding-agent formats are supported? ​

Sessions Viewer supports the seven layouts below. Adapter review and synthetic command tests are not CLI end-to-end certification. This matrix describes the 0.6.0 implementation reviewed on 2026-10-05; it does not promise compatibility with every release.

Capability and evidence matrix ​

All seven have history browsing/search, export and terminal resume. Only Claude Code and Codex have in-app chat. Resume requires the corresponding installed/configured CLI; syntax is documented in the command comparison.

AgentFormat coveredIn-app chatValidation evidenceCLI release tested end-to-end
Claude CodeJSONL message.content strings/blocksYesSynthetic extraction + Rust parser projectionNot validated in this docs pass
Codexsession_meta, event_msg, response_itemYesSynthetic cwd/text + Rust parser projectionNot validated in this docs pass
Grok BuildACP updates in updates.jsonlNoSynthetic object/array chunksNot validated in this docs pass
Kimi CodeMain wire primary events; adapter has legacy fallbackNoSynthetic primary events onlyNot validated in this docs pass
PiSession header and message/tree entriesNoSynthetic text from all stored branchesNot validated in this docs pass
Antigravity CLIStep-based transcript*.jsonlNoSynthetic multiline XML extractionNot validated in this docs pass
opencodeSQLite session, message, partNoSynthetic read-only SQL queriesNot validated in this docs pass

OS installers are provided for macOS, Windows and Linux; the shell examples use macOS/Linux syntax. This is not a per-OS GUI certification. Antigravity's supported format has no usage fields. Older layouts, custom roots, images, tools, branches and provider behavior need the relevant reference page and troubleshooting.

Download safe, reproducible examples ​

These are intentionally minimal synthetic extraction fixtures, not real conversations or full CLI-ready sessions. Optional image/tool fields are incomplete; do not import them as real history or resume them. Paths and prompts are invented. The JSONL/SQL files and expected output manifest are the same inputs checked by npm run docs:test.

Download a sample, then replace the filename in its agent reference's text-extraction command. Expected lines are listed in order:

AgentDownloadExpected text
Claude Codeclaude-code.jsonlQuestion, Answer, Legacy string
Codexcodex.jsonlQuestion, Answer; metadata cwd is /synthetic/project
Grok Buildgrok-build.jsonlQuestion, Answer
Kimi Codekimi-code.jsonlQuestion, Answer, Legacy string
Pipi.jsonlQuestion, Answer, Other branch (not active-branch-only)
Antigravity CLIantigravity-cli.jsonlQuestion, on two lines (one multiline prompt)
opencodeopencode.sqluser and Question from the text query

For example, after downloading claude-code.jsonl:

bash
jq -r 'select(.type=="user" or .type=="assistant")
  | .message.content
  | if type=="string" then . else .[]? | select(.type=="text") | .text end' \
  claude-code.jsonl
text
Question
Answer
Legacy string

The opencode sample is SQL that creates a reduced schema. Load it into a new temporary database, never your actual opencode database:

bash
temp_dir="$(mktemp -d)"
sqlite3 "$temp_dir/synthetic.db" < opencode.sql
sqlite3 "file:$temp_dir/synthetic.db?mode=ro" \
  "SELECT json_extract(data, '$.text') FROM part WHERE json_extract(data, '$.type') = 'text';"

Expected output is Question. The regression suite also verifies that parent-only session listing excludes the sub-agent, cost aggregation includes it, and read queries leave the synthetic database unchanged. It does not validate provider billing or a real opencode migration.

What do the offline parser tests prove? ​

Keep three verification scopes separate:

  1. jq / SQL extraction — npm run docs:test runs the documented commands on the small samples above. It also checks content/SEO regressions and screenshot integrity. Command output is not the application's parser output.
  2. Actual Rust file parsers — on 2026-10-06, two isolated tests passed on macOS for the 0.6.0 Claude Code and Codex parsers and their message post-processing. They compare roles, text, Claude thinking, tool names/arguments/IDs/results and message order with a public expected projection. They also check that parsing leaves the temporary input unchanged. Codex receives an empty title index instead of loading the user's real one. No home discovery, CLI, tool execution or provider request runs.
  3. Real CLI / GUI end-to-end acceptance — still separate and not performed here. Image behavior, browsing/search/export/resume, installed CLI releases and provider behavior are not certified by those parser fixtures. No verified CLI version has been added to the matrix.
Offline parser fixtureExpected messages
claude-code-adapter.jsonlUser question → assistant thinking/text/tool call → user tool result → legacy user string
codex-adapter.jsonlUser question → assistant tool call → user tool result → assistant answer; duplicate response text and unrelated metadata are ignored

Download adapter-expected.json for exact checked fields. These richer synthetic fixtures are still not complete importable or resumable CLI sessions. Tool arguments, including echo synthetic, are data, not executed commands.

From the repository root, with Rust/Tauri build dependencies already cached:

bash
npm run docs:test
npm run docs:test:adapters

The adapter command uses cargo test --manifest-path src-tauri/Cargo.toml --lib --locked --offline docs_public_fixture. It runs only these two tests and fails rather than fetching uncached crates. The existing Rust CI job includes them; the Node documentation job does not require Rust. This is reproducible local evidence, not proof of production deployment or indexing.

How to report a compatibility change ​

Include app version, CLI version, OS, record layout, custom-root configuration and the failing operation. Share a minimal synthetic/redacted shape, not credentials or a full private database. A CLI version is added to a verified-runtime matrix only after that version and operation actually run successfully.

Evidence: adapter source revision 22fefc6. See privacy, installation and project maintenance.