--agent, --json, and --interactive output-mode flags.
Filter flags (-n, --since, --tool) are also global.
Output Modes
Every command has three mutually exclusive output modes:| Mode | Flag | Description |
|---|---|---|
| Pretty | (default) | Rich TTY output with color, alignment, and interactive TUIs |
| Agent | --agent | Token-efficient plain text. Auto-activates when stdout is not a TTY or an agent env var is set |
| JSON | --json | Full-fidelity structured JSON (jq-parseable) |
CURSOR_AGENT, CLAUDECODE, AIDER, CONTINUE_SESSION, CONTINUE_IDE, AICOMMITS is set.
Global Options
| Flag | Description |
|---|---|
-n, --limit <N> | Max items to list (default 50) |
--since <WHEN> | Time filter (e.g. 24h, 7d, ISO-8601 timestamp) |
--tool <NAME> | Filter by tool name (case-insensitive) |
--agent | Minimal plain-text output (token-efficient) |
--json | Full structured JSON output |
--interactive | Force TUI even when auto-detection would pick agent mode |
-V, --version | Print version |
Memory Feed (bare oobo or oobo anchors)
oobo anchors. Shows a scrollable TUI in interactive mode, or a flat list in agent/JSON mode.
TUI Keybindings
| Key | Action |
|---|---|
↑/k ↓/j | Move selection |
g / G | Jump to top / bottom |
enter | Open transcript (session picker if >1) |
d | View commit diff inline |
b | Blame (file picker) |
L | Goto selected anchor (time-travel) |
/ | Live filter (local substring match) |
s | Remote recall - semantic memory + full-text (requires API key) |
t | Cycle time window (all / 24h / 7d / 30d) |
e | Toggle tracking on/off |
r | Reload |
? | Help overlay |
q | Quit |
s) opens a full-screen view where you type a natural-language question (e.g. “why did we build the auth middleware?”). Results include both full-text and semantic memory hits from the remote server, with a synthesized answer displayed above the results when available.
Anchor Show - drill into a commit
Goto / Back - time travel
goto auto-stashes dirty changes, loads the target tree, and records a return point.
Multiple goto calls stack - each back pops one level, like a browser back button.
Blame - git blame + AI attribution
oobo blame is a strict superset of git blame. It traces every line back to its originating commit (via git blame --porcelain), loads that commit’s anchor from the orphan branch, and resolves per-line AI/human attribution. This gives historically accurate attribution across the full file history - not just the latest commit.
Every git blame flag (-L, -w, --porcelain, etc.) is forwarded. Machine-output formats (--porcelain, --line-porcelain, --incremental) bypass the AI column automatically.
Output modes
| Mode | Description |
|---|---|
| Pretty (default) | Color-coded git blame overlay: magenta = AI, yellow = mixed, green = human, dim = unknown |
Agent (--agent) | Compact columns: <sha> <attribution> <line> <content> |
JSON (--json) | Rich per-line data including session IDs, token counts, and commit metadata |
JSON output
Each line in the--json output includes:
| Field | Type | Description |
|---|---|---|
line | number | Line number in the current file |
content | string | Line content |
origin_sha | string | Short SHA of the commit that introduced this line |
ai | string | null | Attribution: tool name (e.g. “cursor”), “human”, “mixed”, or null if unknown |
agent | string? | Agent/tool name (when AI-authored) |
session_ids | string[]? | Chat session IDs that produced this code |
tokens | number? | Total tokens (input + output) consumed |
committed_at | number? | Unix timestamp of the originating commit |
message | string? | Commit message of the originating commit |
oobo anchor blame.
Search
| Flag | Description |
|---|---|
-p, --path <PATH> | Scope search to a file or directory path |
--git-ref <REF> | Search a specific git ref (branch, tag, or SHA) |
-k, --top-k <N> | Number of results to return (default 5) |
-m, --mode <MODE> | Search mode: hybrid (default), semantic, or bm25 |
--content <TYPE> | Content filter: code, docs, config, or all (default) |
Recall
--local, --remote, or --both to force a source.
When memory hits are available, the response may include a synthesized answer - a 1-3 sentence summary answering the query, displayed above the individual hits.
| Flag | Description |
|---|---|
--global | Search across all projects (default is current project when in a repo) |
--local | Local only (default when no API key) |
--remote | Remote server only (requires API key) |
--both | Local + remote merged (default when API key configured) |
--project <name> | Scope to a specific project by name |
--tool <name> | Scope to a specific tool |
--since <when> | Time window filter |
--limit <n> | Max results (default 20) |
Result Sources
Results are tagged by source:| Source | Description |
|---|---|
local | Matched locally from the orphan branch |
fts | Full-text search from the remote server |
memory | Semantic memory hit - organizational knowledge synthesized from past sessions |
memory_id, session_ids, and author.
Delta - compare two anchors
| Flag | Description |
|---|---|
anchor_sha | Commit SHA to inspect (defaults to HEAD) |
previous_sha | Commit SHA to compare against (auto-found if omitted) |
--full | Include detailed sessions, decisions, and techniques |
oobo settings set key <...>).
Settings - declarative per-scope config
Grammar
default (implicit) or project
Verbs: get (default), set, unset
Valid keys: key, api_url, remote, transparency, tools.experimental, setup.scan_roots
Project Tracking
.oobo/config with [project].enabled = false.
Setup & Maintenance
Update
Help - built-in documentation
Hooks (internal plumbing)
These commands are called by tool integrations and git hooks, not typed by users:Agent Hook Events
| Event | Description |
|---|---|
session-start | AI session begins |
session-end | AI session ends |
before-submit-prompt | User prompt about to be submitted |
pre-tool-use | Agent is about to invoke a tool |
after-tool-use | Agent used a tool (Read, Edit, Bash, etc.) |
after-file-edit | Agent modified a file |
subagent-start | A subagent was spawned |
after-agent-thought | Agent reasoning/thinking completed |
after-agent-response | Agent response delivered |
stop | Agent stopped (session complete) |
subagent-stop | A subagent finished |