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.
| Agent | Format covered | In-app chat | Validation evidence | CLI release tested end-to-end |
|---|---|---|---|---|
| Claude Code | JSONL message.content strings/blocks | Yes | Synthetic extraction + Rust parser projection | Not validated in this docs pass |
| Codex | session_meta, event_msg, response_item | Yes | Synthetic cwd/text + Rust parser projection | Not validated in this docs pass |
| Grok Build | ACP updates in updates.jsonl | No | Synthetic object/array chunks | Not validated in this docs pass |
| Kimi Code | Main wire primary events; adapter has legacy fallback | No | Synthetic primary events only | Not validated in this docs pass |
| Pi | Session header and message/tree entries | No | Synthetic text from all stored branches | Not validated in this docs pass |
| Antigravity CLI | Step-based transcript*.jsonl | No | Synthetic multiline XML extraction | Not validated in this docs pass |
| opencode | SQLite session, message, part | No | Synthetic read-only SQL queries | Not 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:
| Agent | Download | Expected text |
|---|---|---|
| Claude Code | claude-code.jsonl | Question, Answer, Legacy string |
| Codex | codex.jsonl | Question, Answer; metadata cwd is /synthetic/project |
| Grok Build | grok-build.jsonl | Question, Answer |
| Kimi Code | kimi-code.jsonl | Question, Answer, Legacy string |
| Pi | pi.jsonl | Question, Answer, Other branch (not active-branch-only) |
| Antigravity CLI | antigravity-cli.jsonl | Question, on two lines (one multiline prompt) |
| opencode | opencode.sql | user and Question from the text query |
For example, after downloading claude-code.jsonl:
jq -r 'select(.type=="user" or .type=="assistant")
| .message.content
| if type=="string" then . else .[]? | select(.type=="text") | .text end' \
claude-code.jsonlQuestion
Answer
Legacy stringThe opencode sample is SQL that creates a reduced schema. Load it into a new temporary database, never your actual opencode database:
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:
jq/ SQL extraction —npm run docs:testruns 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.- 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.
- 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 fixture | Expected messages |
|---|---|
| claude-code-adapter.jsonl | User question → assistant thinking/text/tool call → user tool result → legacy user string |
| codex-adapter.jsonl | User 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:
npm run docs:test
npm run docs:test:adaptersThe 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.
