Skip to main content

Overview

Oobo integrates with 15 AI coding tools. All integrations are read-only for session data. Oobo never modifies any tool’s conversation history or databases. It does write hook configuration files (e.g. ~/.cursor/hooks.json, ~/.claude/settings.json) during oobo setup to register lifecycle event handlers.
ToolSessionsTranscriptsNative TokensAgent Hooks
Cursoryesyesestimatedyes
Claude Codeyesyesyesyes
Gemini CLIyesyesyesyes
OpenCodeyesyesyesyes
Codex CLIyesyesyesno
Aideryesyesyes*no
GitHub Copilotyesyesestimatedno
Zedyesyesyesno
Continueyesyesnoyes
Factory Droidyesyesnoyes
Windsurfyespartialnono
Traeyespartialnono
Ampyesyesnono
Junieyesyesnono
Kiroyesyesnoyes
*Aider native telemetry requires user configuration (see below). Native tokens means the tool stores actual token counts in its local files (accurate). When not available, oobo estimates tokens using tiktoken and marks them with is_estimated: true.
The first 10 tools (Cursor, Claude Code, Gemini, OpenCode, Codex, Aider, GitHub Copilot, Zed, Continue, Factory Droid) are enabled by default. The remaining 5 (Windsurf, Trae, Kiro, Junie, Amp) are experimental and require:
oobo settings default set tools.experimental on

Cursor

Data sources:
  • ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb: conversation history (composerData), session metadata
  • ~/.cursor/projects/: workspace state and agent session data
What oobo extracts: Sessions, full conversations, model names, session duration. Token counts are estimated via tiktoken (Cursor does not expose native token counts in local storage). Hooks: ~/.cursor/hooks.json (installed automatically by oobo setup).

Claude Code

Data sources:
  • ~/.claude/projects/{slug}/{session_id}.jsonl: full session transcripts with native usage blocks
What oobo extracts: Sessions, full conversations, native per-message token counts (input, output, cache read, cache creation), model name, tool calls with file paths. Hooks: ~/.claude/settings.json (installed automatically by oobo setup). Multi-agent teams: When Claude Code runs multiple agents in parallel (via tmux or Agent Teams), each agent is a separate CLI process with its own session UUID and .jsonl file in the same project directory. Oobo discovers all of them automatically. Every agent’s conversation and tokens appear as separate sessions. Team coordination data (task lists at ~/.claude/tasks/, mailboxes at ~/.claude/teams/) is not captured.

Gemini CLI

Data sources:
  • ~/.gemini/projects.json: project path to slug mapping
  • ~/.gemini/tmp/{slug}/chats/session-*.json: full session transcripts
What oobo extracts: Sessions, full conversations, native per-message token counts (input, output, cached, thoughts), model name, tool calls, session duration, summary. Hooks: ~/.gemini/settings.json (installed automatically by oobo setup).

OpenCode

Data sources:
  • ~/.local/share/opencode/opencode.db (SQLite, Linux) or ~/Library/Application Support/opencode/opencode.db (macOS): sessions, messages with embedded token JSON
What oobo extracts: Sessions, conversations, native per-message tokens (input, output, reasoning, cache), model, diff summaries. Hooks: ~/.config/opencode/plugins/oobo.ts (installed automatically by oobo setup).

Codex CLI (OpenAI)

Data sources:
  • ~/.codex/state_5.sqlite: session index (fast discovery)
  • ~/.codex/sessions/{YYYY}/{MM}/{DD}/rollout-*.jsonl: full transcripts with native token_count events
What oobo extracts: Sessions, conversations, native cumulative token counts (input, output, cached, reasoning), model, git context (sha, branch, origin).

Aider

Data sources:
  • {project}/.aider.chat.history.md: per-project chat history in markdown
  • ~/.oobo/aider-analytics.jsonl: native telemetry (tokens, model) when configured
What oobo extracts: Sessions (delimited by # aider chat started at headers), conversations, model name. Native tokens are only available when the user adds this to ~/.aider.conf.yml:
analytics-log: ~/.oobo/aider-analytics.jsonl
Without that config line, oobo still discovers Aider sessions and estimates tokens with tiktoken.

GitHub Copilot Chat

Data sources:
  • ~/Library/Application Support/Code/User/workspaceStorage/{hash}/chatSessions/*.json|*.jsonl: per-workspace session files
What oobo extracts: Sessions, conversations (user messages + assistant responses), model name. No native token counts available, so oobo uses tiktoken estimation. Cross-platform paths:
  • macOS: ~/Library/Application Support/Code/
  • Linux: ~/.config/Code/
  • Windows: %APPDATA%/Code/

Windsurf

Data sources:
  • ~/.codeium/windsurf/cascade/{uuid}.pb: encrypted session files (ChaCha20-Poly1305)
  • ~/Library/Application Support/Windsurf/User/workspaceStorage/: workspace associations
What oobo extracts: Session IDs, timestamps, project associations. Conversation content is encrypted and unreadable. Metadata only.

Zed

Data sources:
  • ~/Library/Logs/Zed/telemetry.log: per-request native token usage (JSONL)
  • ~/Library/Application Support/Zed/threads/threads.db: conversations (zstd-compressed JSON blobs)
What oobo extracts: Sessions, conversations, native per-request tokens (input, output, cache creation, cache read), model name, turn timing, tool calls.

Trae

Data sources:
  • ~/Library/Application Support/Trae/User/workspaceStorage/{hash}/state.vscdb: session IDs and first user message (plaintext)
  • ~/Library/Application Support/Trae/ModularData/ai-agent/database.db: encrypted (SQLCipher)
What oobo extracts: Session IDs, timestamps, first user message, project associations. The main conversation database is encrypted, so data extraction is limited.

Amp

Data sources:
  • ~/.local/share/amp/threads/<thread-id>.json: per-thread JSON files with message history
  • macOS also checks ~/Library/Application Support/amp/threads/
What oobo extracts: Sessions, conversations, model name. Token counts are estimated via tiktoken.

Continue

Data sources:
  • ~/.continue/sessions/<session-id>.jsonl: per-session JSONL files with conversation history
What oobo extracts: Sessions, conversations, model name. Token counts are estimated via tiktoken. Hooks: ~/.continue/settings.json (installed automatically by oobo setup).

Factory Droid

Data sources:
  • ~/.factory/sessions/: JSONL session files (Claude Code-compatible format)
  • ~/.factory/projects/<slug>/: per-project sessions
  • .factory/ in the repo root: project-level sessions
What oobo extracts: Sessions, conversations, model name. Token counts are estimated via tiktoken. Hooks: ~/.factory/settings.json (installed automatically by oobo setup).

Junie

Data sources:
  • ~/.junie/sessions/ or ~/.local/share/junie/sessions/: JSONL session files
What oobo extracts: Sessions, conversations, model name. Token counts are estimated via tiktoken.

Kiro

Data sources:
  • ~/.kiro/data.sqlite3 (SQLite): conversations_v2 table with session metadata and messages
What oobo extracts: Sessions, conversations, model name. Token counts are estimated via tiktoken. Hooks: ~/.kiro/agents/oobo.json (installed automatically by oobo setup).

Viewing Integration Data

oobo setup --repair          # re-detect tools and reinstall hooks
oobo                         # see enriched commit history
oobo recall "query"          # search sessions and anchors
oobo anchor show <sha>       # see which tools contributed to a commit

Token Estimation

For tools without native token counts (Cursor, Copilot, Windsurf, Trae, Amp, Continue, Droid, Junie, Kiro), oobo estimates tokens using tiktoken with the appropriate BPE encoding per model family (cl100k for Claude, o200k for GPT-4o/o1/o3). Estimated counts are marked with is_estimated: true in JSON output.