Skip to main content

Overview

Oobo integrates with 10 AI coding tools. All integrations are read-only. Oobo never writes to any tool’s data directories.
ToolSessionsTranscriptsNative TokensAgent Hooks
Cursoryesyesnoyes
Claude Codeyesyesyesyes
Gemini CLIyesyesyesyes
OpenCodeyesyesyesyes
Codex CLIyesyesyesno
Aideryesyesyes*no
GitHub Copilotyesyesnono
Windsurfyespartialnono
Zedyesyesyesno
Traeyespartialnono
*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.

Cursor

Data sources:
  • ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb: conversation history (composerData), daily stats, account info
  • ~/.cursor/ai-tracking/ai-code-tracking.db: per-commit AI code attribution (AI percentage, composer lines, tab lines, human lines)
  • Cursor Dashboard API: per-request model, tokens (auto-extracted JWT or Enterprise key)
What oobo extracts: Sessions, full conversations, AI code attribution per commit, daily accepted/suggested lines. Token counts come from the Dashboard API when available; otherwise tiktoken estimation. Hooks: Supported via MCP server config or Cursor Rules.

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: Supported via CLAUDE.md project file. 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: Supported via GEMINI.md project file.

OpenCode

Data sources:
  • ~/.local/share/opencode/opencode.db (SQLite): sessions, messages with embedded token JSON
What oobo extracts: Sessions, conversations, native per-message tokens (input, output, reasoning, cache), model, diff summaries. Hooks: Supported via AGENTS.md project file.

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.

Remote API integrations

The tools above give you session-level data from local files. For some providers, oobo can also pull organization-level usage data directly from their APIs. This gives you exact token numbers and complements the local session data.

Why use this?

Local session data tells you which conversations happened and estimates token counts. Provider API data tells you the exact numbers: how many tokens your organization used, broken down by model and day. Both feed into oobo stats and oobo sources.

Anthropic Admin API

oobo auth anthropic <sk-ant-admin-key>
Requires an Anthropic Admin API key (sk-ant-admin...). Fetches per-day, per-model token usage for the last 30 days from the Anthropic organization Usage Report API.

OpenAI Usage API

oobo auth openai <sk-admin-key>
Requires an OpenAI Admin API key. Fetches per-day, per-model completions usage for the last 30 days.

Cursor Dashboard API

oobo auth cursor <enterprise-key>
For Cursor Enterprise teams. Fetches per-request model and token data from the Cursor Enterprise admin API. For individual users, oobo automatically extracts your session JWT from Cursor’s local state.vscdb database and calls api2.cursor.sh/auth/usage to get your monthly usage breakdown. No manual key needed.

Google AI Studio

oobo auth google <key>
Key is stored for future use. Google does not currently offer a programmatic usage API, so this key is reserved for when one becomes available.

Viewing API data

After setting keys, run:
oobo sources       # shows local + API data coverage per tool
oobo stats         # includes API usage data in totals