| Gemini CLI |
$GEMINI_CLI_HOME else ~/.gemini |
tmp/*/chats/*.json |
JS |
sessions/gemini.rs (1.4k lines) |
project dir under tmp/ |
| Antigravity CLI |
same Gemini home |
antigravity-cli/conversations/*.db |
DB |
sessions/antigravity_cli.rs |
read directly |
| GitHub Copilot CLI |
~/.copilot |
session-store.db (usage events), otel/*.jsonl (+COPILOT_OTEL_FILE_EXPORTER_PATH), data.db |
DB + J |
sessions/copilot.rs (2.2k) |
session-store.db needs no OTEL setup |
| VS Code Copilot Chat |
VS Code globalStorage / workspaceStorage/*/chatSessions |
chatSessions v3 with kind-1 incremental updates |
JS |
sessions/copilot_desktop.rs (1.6k) |
see scanner.rs:1754 discover_copilot_vscode_sessions |
| Qwen Code |
~/.qwen/projects |
**/*.jsonl |
J |
sessions/qwen.rs |
Claude-Code-like layout |
| Kiro |
~/.kiro/sessions/cli/*.json(l); ~/.local/share/kiro-cli/data.sqlite3 (macOS ~/Library/Application Support/kiro-cli/); IDE Kiro/User/globalStorage/kiro.kiroagent |
JS + DB |
sessions/kiro.rs (6k) |
three sources |
|
| Kimi CLI / Kimi Code |
~/.kimi/sessions (wire.jsonl); ~/.kimi-code/sessions ($KIMI_CODE_HOME); desktop app-data |
J |
sessions/kimi.rs (1.3k) |
|
|
| Hermes Agent |
$HERMES_HOME else ~/.hermes |
state.db, profiles/*/state.db |
DB |
sessions/hermes.rs |
scanner.rs:1061 |
| OpenClaw |
~/.openclaw/agents (+ legacy .clawdbot, .moltbot, .moldbot) |
*/agent/openclaw-agent.sqlite (live), */sessions/*.jsonl (legacy) + .jsonl.deleted.*, .jsonl.reset.*, .zst, checkpoint files to exclude |
DB + J |
sessions/openclaw.rs (2.2k) |
scanner.rs:399-432, 506-530 for the suffix rules; Codex-driven threads carry originator: "openclaw" in Codex rollouts |
| Droid (Factory) |
~/.factory/sessions |
*.settings.json + transcript |
JS |
sessions/droid.rs (1.2k) |
|
| Pi |
~/.pi/agent/sessions |
*.jsonl |
J |
sessions/pi.rs (1.3k) |
|
| Oh My Pi |
~/.omp/agent/sessions |
**/*.jsonl |
J |
sessions/omp.rs |
Pi fork |
| Amp |
$XDG_DATA_HOME/amp/threads |
T-*.json |
JS |
sessions/amp.rs |
|
| Roo Code |
~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/tasks (+ ~/.vscode-server/data/...) |
ui_messages.json, api_conversation_history.json |
JS |
sessions/roocode.rs |
macOS ~/Library/Application Support/Code/..., Windows %APPDATA%\Code\... |
| Kilo Code (VS Code) |
.../globalStorage/kilocode.kilo-code/tasks |
same as Roo |
JS |
sessions/kilocode.rs |
|
| Kilo CLI |
$XDG_DATA_HOME/kilo/kilo.db |
|
DB |
sessions/kilo.rs |
OpenCode schema (opencode_schema.rs) |
| Cline |
same globalStorage pattern, saoudrizwan.claude-dev/tasks; CLI: $CLINE_SESSION_DATA_DIR, $CLINE_DATA_DIR/sessions, $CLINE_DIR/data/sessions |
ui_messages.json, api_conversation_history.json |
JS |
sessions/cline.rs |
scanner.rs:1433-1480 |
| Mux |
~/.mux/sessions |
session-usage.json |
JS |
sessions/mux.rs |
|
| Crush |
$XDG_DATA_HOME/crush/projects.json registry → per-project data dir DB |
DB |
sessions/crush.rs |
scanner.rs:1345-1430 |
|
| Goose |
$XDG_DATA_HOME/goose/sessions/sessions.db (macOS App Support, GOOSE_PATH_ROOT) |
|
DB |
sessions/goose.rs |
|
| Zed Agent |
$XDG_DATA_HOME/zed/threads/threads.db (macOS ~/Library/Application Support/Zed/threads/, Win %LOCALAPPDATA%/Zed/threads/) |
|
DB |
sessions/zed.rs |
hosted models only |
| Octofriend |
~/.local/share/octofriend/sqlite.db |
|
DB |
via synthetic reattribution |
|
| Codebuff / Freebuff |
$CODEBUFF_DATA_DIR else ~/.config/manicode (+-dev, -staging) |
chat-messages.json |
JS |
sessions/codebuff.rs |
|
| Devin CLI / Desktop |
$XDG_DATA_HOME/devin/cli/sessions.db; desktop ~/Library/Application Support/Devin/User/acp-events/*.ndjson (Linux ~/.config/Devin/...) |
DB + NDJSON |
sessions/devin.rs |
ACP event stream |
|
| Junie |
~/.junie/sessions/*/events.jsonl |
J |
sessions/junie.rs |
|
|
| Augment (Auggie) |
~/.augment/sessions/*.json |
JS |
sessions/augment.rs |
chat_history array per session |
|
| Cherry Studio |
%APPDATA%\CherryStudio\Data\Agents\.claude\projects (macOS/Linux equivalents) |
Claude Code JSONL |
J |
reuses claudecode.rs |
a Claude Code host; PathRoot::AppData |
| Command Code |
~/.commandcode/projects/**/*.jsonl |
J |
sessions/commandcode.rs |
Claude-Code-like, v3 has per-request usage |
|
| ZCode |
~/.zcode/cli/db/db.sqlite, legacy ~/.zcode/projects/**/*.jsonl |
DB + J |
sessions/zcode.rs |
|
|
| CodeBuddy / WorkBuddy |
~/.codebuddy/projects/**/*.jsonl; ~/.workbuddy(-ai)/projects/**/*.jsonl + workbuddy.db |
J / DB |
sessions/codebuddy.rs, workbuddy.rs |
|
|
| MiMo Code |
$XDG_DATA_HOME/mimocode/mimocode(-<channel>).db |
DB |
sessions/micode.rs |
OpenCode-style channel DBs |
|
| Jcode |
$JCODE_HOME else ~/.jcode/sessions/session_*.json + session_*.journal.jsonl |
JS + J |
sessions/jcode.rs |
|
|
| DeepSeek Harness |
$DSH_HOME else ~/.dsh/sessions/**/session[.vN].jsonl[.zstd] |
J (zstd) |
sessions/dsh.rs |
|
|
| Prime Agent |
$PRIME_AGENT_CODING_AGENT_DIR else ~/.prime/agent/sessions, session-artifacts/ (RLM children) |
J |
sessions/prime_agent.rs (2.6k) |
|
|
| Senpi / Kimchi / gajae-code / Reasonix / Hindsight / LM Studio / Unsloth / fx |
see README table |
mixed |
one module each |
niche |
|
| Cursor IDE |
~/.cursor/projects/*/agent-transcripts/<id>/<id>.jsonl (relayhistory) |
J |
none |
tokscale does not parse ~/.cursor; it pulls the dashboard API with a token from state.vscdb (tokscale-cli/src/cursor.rs:337-460). Nothing to borrow for #166 |
|
| Antigravity IDE, Trae, Warp |
X |
|
|
vendor API sync caches only |
|
Summary
#177 item 4 asks for one
collectorissue per harness in burn's backlog (Gemini CLI, Copilot CLI, VS Code Copilot Chat, Qwen, Kiro, Kimi, Hermes, OpenClaw, Every Code, Droid, Pi, Amp, Roo/Kilo, Mux, Crush, OpenHands, iFlow, Cortex, Octofriend). tokscale (MIT, commitd8fd670, 2026-09-18) ships parsers for most of these and its registry (crates/tokscale-core/src/clients.rs,define_clients!) plusscanner.rsis the most complete public map of where they store transcripts. This issue records that map so each collector issue can start from a known path and format instead of re-discovering it. tokscale extracts only usage fields, so its parsers tell us where and what shape, not how to get text, tool calls and edits; each collector still needs its own characterization.Format legend: J = JSONL transcript, JS = JSON per session/message, DB = SQLite, X = only reachable through a vendor API or a tokscale-specific sync cache (not a local transcript; not a relayhistory candidate).
$GEMINI_CLI_HOMEelse~/.geminitmp/*/chats/*.jsonsessions/gemini.rs(1.4k lines)tmp/antigravity-cli/conversations/*.dbsessions/antigravity_cli.rs~/.copilotsession-store.db(usage events),otel/*.jsonl(+COPILOT_OTEL_FILE_EXPORTER_PATH),data.dbsessions/copilot.rs(2.2k)session-store.dbneeds no OTEL setupworkspaceStorage/*/chatSessionschatSessionsv3 with kind-1 incremental updatessessions/copilot_desktop.rs(1.6k)scanner.rs:1754 discover_copilot_vscode_sessions~/.qwen/projects**/*.jsonlsessions/qwen.rs~/.kiro/sessions/cli/*.json(l);~/.local/share/kiro-cli/data.sqlite3(macOS~/Library/Application Support/kiro-cli/); IDEKiro/User/globalStorage/kiro.kiroagentsessions/kiro.rs(6k)~/.kimi/sessions(wire.jsonl);~/.kimi-code/sessions($KIMI_CODE_HOME); desktop app-datasessions/kimi.rs(1.3k)$HERMES_HOMEelse~/.hermesstate.db,profiles/*/state.dbsessions/hermes.rsscanner.rs:1061~/.openclaw/agents(+ legacy.clawdbot,.moltbot,.moldbot)*/agent/openclaw-agent.sqlite(live),*/sessions/*.jsonl(legacy) +.jsonl.deleted.*,.jsonl.reset.*,.zst, checkpoint files to excludesessions/openclaw.rs(2.2k)scanner.rs:399-432, 506-530for the suffix rules; Codex-driven threads carryoriginator: "openclaw"in Codex rollouts~/.factory/sessions*.settings.json+ transcriptsessions/droid.rs(1.2k)~/.pi/agent/sessions*.jsonlsessions/pi.rs(1.3k)~/.omp/agent/sessions**/*.jsonlsessions/omp.rs$XDG_DATA_HOME/amp/threadsT-*.jsonsessions/amp.rs~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/tasks(+~/.vscode-server/data/...)ui_messages.json,api_conversation_history.jsonsessions/roocode.rs~/Library/Application Support/Code/..., Windows%APPDATA%\Code\....../globalStorage/kilocode.kilo-code/taskssessions/kilocode.rs$XDG_DATA_HOME/kilo/kilo.dbsessions/kilo.rsopencode_schema.rs)saoudrizwan.claude-dev/tasks; CLI:$CLINE_SESSION_DATA_DIR,$CLINE_DATA_DIR/sessions,$CLINE_DIR/data/sessionsui_messages.json,api_conversation_history.jsonsessions/cline.rsscanner.rs:1433-1480~/.mux/sessionssession-usage.jsonsessions/mux.rs$XDG_DATA_HOME/crush/projects.jsonregistry → per-project data dir DBsessions/crush.rsscanner.rs:1345-1430$XDG_DATA_HOME/goose/sessions/sessions.db(macOS App Support,GOOSE_PATH_ROOT)sessions/goose.rs$XDG_DATA_HOME/zed/threads/threads.db(macOS~/Library/Application Support/Zed/threads/, Win%LOCALAPPDATA%/Zed/threads/)sessions/zed.rs~/.local/share/octofriend/sqlite.dbsyntheticreattribution$CODEBUFF_DATA_DIRelse~/.config/manicode(+-dev,-staging)chat-messages.jsonsessions/codebuff.rs$XDG_DATA_HOME/devin/cli/sessions.db; desktop~/Library/Application Support/Devin/User/acp-events/*.ndjson(Linux~/.config/Devin/...)sessions/devin.rs~/.junie/sessions/*/events.jsonlsessions/junie.rs~/.augment/sessions/*.jsonsessions/augment.rschat_historyarray per session%APPDATA%\CherryStudio\Data\Agents\.claude\projects(macOS/Linux equivalents)claudecode.rsPathRoot::AppData~/.commandcode/projects/**/*.jsonlsessions/commandcode.rs~/.zcode/cli/db/db.sqlite, legacy~/.zcode/projects/**/*.jsonlsessions/zcode.rs~/.codebuddy/projects/**/*.jsonl;~/.workbuddy(-ai)/projects/**/*.jsonl+workbuddy.dbsessions/codebuddy.rs,workbuddy.rs$XDG_DATA_HOME/mimocode/mimocode(-<channel>).dbsessions/micode.rs$JCODE_HOMEelse~/.jcode/sessions/session_*.json+session_*.journal.jsonlsessions/jcode.rs$DSH_HOMEelse~/.dsh/sessions/**/session[.vN].jsonl[.zstd]sessions/dsh.rs$PRIME_AGENT_CODING_AGENT_DIRelse~/.prime/agent/sessions,session-artifacts/(RLM children)sessions/prime_agent.rs(2.6k)~/.cursor/projects/*/agent-transcripts/<id>/<id>.jsonl(relayhistory)~/.cursor; it pulls the dashboard API with a token fromstate.vscdb(tokscale-cli/src/cursor.rs:337-460). Nothing to borrow for #166Not in tokscale: Every Code, OpenHands, iFlow, Cortex (from burn's list) — those still need first-hand research.
Cross-cutting rules worth copying when the registry (#177) is designed:
PathRoot::{Home, XdgData, Config, AppData, EnvVar{var, fallback_relative}}resolved once, with ause_env_rootsswitch for explicit--homeruns (clients.rs:1-18, 100-170).~/.vscode-server/data/User/globalStorage(scanner.rs:1433-1480).sessions/opencode_schema.rs: Kilo CLI, MiMo Code, and others), so one driver with a config struct serves them all — the same shape [G1] OpenCode: event-level parity across both storage layouts (SQLite opencode.db and legacy JSON storage/), with tokens, model/provider, parts, step-finish, compaction, parentID #168's "common normalizer" proposes..jsonl.deleted.<ts>,.jsonl.reset.<ts>,.checkpoint.<uuid>.jsonl,.bak) exist for OpenClaw and must be excluded or deduplicated explicitly (scanner.rs:399-432, 506-530).Proposed use
collectorissue [G1] One-entry harness registry and out-of-tree local source plugins (absorb burn's collector backlog) #177 opens; copy the row into the issue body as the starting point.