支持哪些 coding agent 格式
Sessions Viewer 支持下表布局。源码核对和合成命令测试,不等于真实 CLI 端到端认证。 此表描述 2026-10-05 核对的 0.6.0 实现,不承诺每个 CLI 版本都兼容。
能力与验证矩阵
七种都有历史浏览、搜索、导出和终端恢复;内置对话只支持 Claude Code、Codex。恢复需要安装并配置对应 CLI,语法见恢复命令对照。
| Agent | 覆盖格式 | 内置对话 | 验证证据 | 本轮端到端验证的 CLI 版本 |
|---|---|---|---|---|
| Claude Code | JSONL message.content 字符串/块 | 支持 | 合成抽取 + Rust 解析投影 | 未验证 |
| Codex | session_meta、event_msg、response_item | 支持 | 合成 cwd/文本 + Rust 解析投影 | 未验证 |
| Grok Build | updates.jsonl 中 ACP 更新 | 不支持 | 合成对象/数组片段 | 未验证 |
| Kimi Code | 主 wire 事件;适配器另有旧格式回退 | 不支持 | 仅合成主事件 | 未验证 |
| Pi | 会话头及消息/树条目 | 不支持 | 合成全部存储分支的文本 | 未验证 |
| Antigravity CLI | transcript*.jsonl step 记录 | 不支持 | 合成多行 XML 提取 | 未验证 |
| opencode | SQLite session、message、part | 不支持 | 合成只读 SQL 查询 | 未验证 |
提供 macOS、Windows、Linux 安装包;Shell 示例使用 macOS/Linux 语法,不代表逐系统 GUI 认证。支持的 Antigravity 格式没有用量字段。旧布局、自定义目录、图片、工具、分支和服务商行为需结合对应参考页及排障指南判断。
下载安全、可复现的样例
这些是最小合成文本提取样例,不是实际会话或完整 CLI 可恢复文件。可选图片/工具字段不完整,不要当作真实历史导入或恢复。路径与提问均为虚构。JSONL/SQL 及预期输出清单就是 npm run docs:test 检查的输入。
下载后将对应 agent 参考页的文本提取命令文件参数改为样本名,预期行顺序如下:
| Agent | 下载 | 预期文本 |
|---|---|---|
| Claude Code | claude-code.jsonl | Question、Answer、Legacy string |
| Codex | codex.jsonl | Question、Answer;元数据 cwd 为 /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,不限当前分支 |
| Antigravity CLI | antigravity-cli.jsonl | Question、on two lines,是一条多行提问 |
| opencode | opencode.sql | 文本查询返回 user 与 Question |
例如下载 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 stringopencode 样例 SQL 会创建精简表结构,只能载入新建临时数据库,不能载入真实 opencode 库:
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';"预期输出 Question。回归还检查父会话列表不包含子 agent、成本聚合计入子 agent、只读查询后样本数据库未变化;不验证服务商账单或真实 opencode 迁移。
离线解析测试证明了什么
区分三个验证范围:
jq/SQL 抽取:npm run docs:test对上面的小样本运行文档命令,也检查内容/SEO 回归和截图完整性。命令输出不等于应用解析器输出。- 真实 Rust 文件解析器:2026-10-06 在 macOS 对 0.6.0 的 Claude Code、Codex 解析与消息后处理运行两个隔离测试并通过。与公开预期投影对照角色、文字、Claude thinking、工具名/参数/ID/结果及消息顺序,并检查临时输入未被修改。Codex 传入空标题索引,不加载用户真实索引。不扫描 home,不执行 CLI、工具或服务商请求。
- 真实 CLI/GUI 端到端验收:本轮尚未执行。样例不能认证图片行为、浏览/搜索/导出/恢复、已安装 CLI 版本或服务商行为;矩阵没有新增真实运行验证的 CLI 版本。
| 离线解析样例 | 预期消息 |
|---|---|
| claude-code-adapter.jsonl | 用户提问 → 助手 thinking/文本/工具调用 → 用户工具结果 → 旧式用户字符串 |
| codex-adapter.jsonl | 用户提问 → 助手工具调用 → 用户工具结果 → 助手回答;重复 response 文本和无关元数据被忽略 |
下载adapter-expected.json查看精确核对字段。这些较完整的合成解析样例仍不是可导入或恢复的完整 CLI 会话;包括 echo synthetic 在内的工具参数只是数据,不执行命令。
在仓库根目录运行,需预先缓存 Rust/Tauri 构建依赖:
npm run docs:test
npm run docs:test:adapters适配器命令为 cargo test --manifest-path src-tauri/Cargo.toml --lib --locked --offline docs_public_fixture,只运行这两个测试;缺少 crate 缓存时直接失败,不联网下载。已有 Rust CI 包含它们,Node 文档任务不依赖 Rust。这是可复现的本地证据,不证明生产发布或收录。
格式变化怎么反馈
提供应用版本、CLI 版本、系统、记录结构、自定义根目录与失败操作。用最小合成/脱敏结构,不公开凭据或整个私人数据库。只有实际跑通对应版本和操作后,才把 CLI 版本标成真实运行验证。
依据:适配器源码版本 22fefc6。另见隐私说明、安装和项目维护说明。
