Commits and Anchors
A git commit stores a diff, a message, an author, and a timestamp. It tells you what changed but says nothing about how the change was produced. An anchor extends a commit with AI context. It records which AI sessions were active, how many tokens were spent, and which lines came from AI vs. the developer.Author Types
Where Anchors Are Stored
Anchors are stored on the git orphan branchoobo/anchors/v2. This branch:
- Travels with the repo (pushed alongside your code)
- Is invisible to normal git operations (
git log,git diff, working tree) - Is created automatically on the first tracked commit
- Is pushed via the pre-push hook
Sessions
A session represents a single AI coding conversation. Oobo discovers sessions through agent lifecycle hooks (for tools that support them) and by reading the local storage of each supported tool (Cursor’s workspace state, Claude Code’s JSONL files, Gemini’s JSON files, etc.).
When a session is linked to an anchor, additional data is stored in the SessionLink (on the orphan branch):
See the full schema reference for all SessionLink fields including tool usage breakdown, bash commands, thinking time, and subagent details.
Token Sources
Some tools store exact token counts (Claude Code, Gemini CLI, OpenCode, Codex CLI, Zed). For tools that don’t (Cursor, Copilot), oobo estimates tokens using tiktoken and marks them withis_estimated: true.
Transparency
Transparency controls whether redacted session transcripts are written to the orphan branch alongside anchor metadata.
Set via config:
on, session transcripts are redacted (secrets removed via gitleaks patterns) before being written to the orphan branch.
Transparency has a global default in ~/.oobo/config and can be overridden per-project in .oobo/config.
Turns
A turn is a single exchange within a session - one user prompt and the agent’s response. Oobo captures per-turn state through agent lifecycle hooks, recording tool calls, hook events, file edits, and workspace tree hashes. Turn snapshots are stored on git refs (refs/oobo/turns/v1/...) and enable oobo goto to restore exact workspace state at any point in a session.
Turn Snapshots
Each turn snapshot records:- Files changed during the turn (with pre/post blob hashes)
- Tool calls and hook events observed
- Model and token usage
- Cross-repo file edits (when an agent modifies files outside the home repo)
- Transcript path (when transparency is on)
Projects
A project is any git repository where oobo is enabled. Projects are found duringoobo setup or normal command use.
Run bare oobo outside a repo to see a project picker.