What is a Session?
Each session contains:Unique identifier (usually a UUID)
Session title or first message preview
Chat mode:
chat, agent, composer, edit, etc.Tool identifier:
cursor, claude, gemini, opencode, etc.Unix timestamp (milliseconds) when session started
Unix timestamp (milliseconds) of last activity
Absolute path to the project directory
Oobo is read-only — it never writes to AI tool directories. All session data is discovered from existing local storage.
How Sessions are Discovered
Oobo implements theTool trait for each supported AI tool:
- Where sessions are stored (SQLite, JSON files, etc.)
- How to parse conversation history
- How to extract token usage and model info
Supported Tools
| Tool | Sessions | Transcripts | Token Stats | Agent Hooks |
|---|---|---|---|---|
| Cursor | ✓ | ✓ | ✓ | ✓ |
| Claude Code | ✓ | ✓ | ✓ | ✓ |
| Gemini CLI | ✓ | ✓ | ✓ | ✓ |
| OpenCode | ✓ | ✓ | ✓ | ✓ |
| Codex CLI | ✓ | ✓ | ✓ | — |
| Aider | ✓ | ✓ | ✓ | — |
| GitHub Copilot Chat | ✓ | ✓ | ✓ | — |
| Windsurf | ✓ | ✓ | partial | — |
| Zed | ✓ | ✓ | ✓ | — |
| Trae | ✓ | ✓ | partial | — |
Agent Hooks enable real-time session tracking. Tools without hooks rely on time-window correlation.
Linking Sessions to Commits
Oobo uses two strategies to link sessions to commits:1. Explicit Linking (Preferred)
For tools that support lifecycle hooks (Cursor, Claude Code, Gemini CLI, OpenCode), oobo installs hooks that track when agent sessions start and end. When a commit happens:- Check if any session is actively running
- If yes, link that session to the commit with
link_type: explicit - Capture which files the agent touched during the session
Explicit links are certain — oobo knows for sure the session contributed to the commit.
2. Inferred Linking (Fallback)
For tools without hooks, oobo uses time-window correlation:- Find all sessions active during commit time ± buffer (5 minutes)
- Match session’s
project_pathto commit’s repo - Link session with
link_type: inferred
Session Metadata Captured
When a session is linked to a commit, oobo captures:Token Usage
Token Usage
Activity Metrics
Activity Metrics
Browsing Sessions
Interactive TUI
- Session source and mode
- AI model used
- Token usage (input/output/cache)
- Duration and tool calls
- First message preview
Searching
- Session names
- First message content
- File paths in transcript
Agent Mode (JSON)
For automation and scripting:Session Export
Export conversations to various formats:Session Sharing
Share a session with collaborators:- Are redacted before upload
- Expire after configurable TTL
- Require endpoint configuration (
~/.oobo/config.toml)
Privacy
- Read-only: Oobo never writes to AI tool directories
- Local by default: Sessions stay in
~/.oobo/oobo.dbunless you share or configure an endpoint - Secret redaction: All exports and uploads are scrubbed with gitleaks patterns
- No telemetry: Oobo does not phone home
Related Concepts
- Anchors — How sessions are attached to commits
- Attribution — How session data drives code attribution
- Transparency — When transcripts go on the orphan branch
