What is oobo?
Oobo is git for agents. It decorates git transparently and enriches every commit with the AI context that produced it. Humans typeoobo commit (or alias git=oobo) and everything works like normal git. Agents use the --agent flag on any command to get structured JSON. Both get the same thing: every commit linked to the AI sessions, tokens, and code attribution behind it.
The problem
A git commit stores a diff and a message. That is all. It tells you what changed, but nothing about how it was written. Today, most code is written alongside AI conversations. You spend 14,000 tokens debugging a race condition in Claude Code, accept three Cursor completions, then rungit commit. The commit captures the ten lines you changed. The conversation, the tokens, which lines the AI wrote vs. which you wrote by hand: gone.
Close the tab, and that context disappears.
Multiply that across a team of engineers, each using a different tool, and you have a codebase full of commits with no record of the AI work behind them.
Why decorate git?
Git is the one tool every developer and agent already runs. By decorating it, oobo captures AI context at the exact moment code enters the repository, without requiring plugins, editor extensions, or workflow changes. For agents, this is critical: agents commit code constantly, across tools, often in parallel. Oobo gives each commit a paper trail linking it back to the session, model, and tokens that produced it.How it works
status, log, diff) pass straight through to git with zero overhead. Only write operations (commit, push, merge, rebase) trigger context capture.
The anchor
An anchor is oobo’s core primitive. It extends a git commit with AI context:- Which AI sessions contributed to the commit
- Token counts (input, output, cache)
- Code attribution (which lines came from AI, which from the developer)
- Model used
- Session duration
- Author type:
agent,assisted,human, orautomated
oobo/anchors/v1) that travels with the repo. The orphan branch is always created on the first intercepted commit, so when a teammate clones, they get the full AI context history.
The —agent flag
Every oobo command supports--agent for structured JSON output. This is the single entry point for machine-readable output, and it works on every command:
--agent is a global flag. Put it anywhere: oobo sessions list --agent, oobo stats --tool cursor --agent, oobo sessions show abc12 --agent. It always forces JSON output.
Agents discover oobo through a skill file installed at ~/.agents/skills/oobo/SKILL.md. The skill file lists every command, JSON field, and configuration option so agents can invoke oobo without guessing. See AI Agent Integration for the full agent workflow.
Installation
For humans:Key capabilities
- Transparent git decorator: use
ooboexactly likegit, or aliasgit=oobo - Agent-native: every command supports
--agentfor structured JSON; ships with a SKILL.md agents can read - 10 AI tool integrations: Cursor, Claude Code, Gemini CLI, Codex CLI, OpenCode, Copilot, Windsurf, Aider, Zed, Trae
- Local-first: all data stays in
~/.oobo/db/oobo.dbunless you explicitly push or share - Privacy by design: read-only access to tool data, secret redaction, no telemetry sent without opt-in
Architecture
Oobo operates in two layers: Layer 1: Git Decorator. Decorates git to intercept write operations (commit, push, merge, rebase), enrich them with anchor metadata (linked sessions, agent/human attribution, diff stats), and sync metadata via theoobo/anchors/v1 orphan branch.
Layer 2: Local Memory Engine. Maintains a local SQLite database with session history, token counts, analytics, and time-series data across all AI tools. This powers commands like oobo sessions, oobo stats, and oobo card.