Skip to main content
Agents should install oobo silently with JSON output, verify the installation, and detect if oobo is already installed before attempting installation.

Silent Install

The install script accepts an --agent flag for silent, non-interactive installation:
curl -fsSL https://oobo.ai/install.sh | bash -s -- --agent

JSON Response Format

On success, the installer outputs a single JSON line:
{
  "status": "ok",
  "version": "0.1.0",
  "binary": "/usr/local/bin/oobo",
  "platform": "macos-aarch64"
}
Response fields:
  • status: "ok" on success, "error" on failure
  • version: Installed oobo version
  • binary: Path to oobo executable
  • platform: Detected platform (macos-aarch64, linux-x86_64, etc.)
On failure:
{
  "status": "error",
  "error": "unsupported platform: windows"
}

Supported Platforms

  • macOS: Apple Silicon (aarch64), Intel (x86_64)
  • Linux: x86_64, ARM64 (glibc and musl)
The installer automatically detects the platform and downloads the appropriate binary from GitHub Releases.

Detecting Existing Installation

Before installing, check if oobo is already installed:
command -v oobo
If oobo is installed, this returns the path to the binary (exit code 0):
/usr/local/bin/oobo
If not installed, it returns nothing (exit code 1).
import subprocess
import json

def is_oobo_installed():
    """Check if oobo is installed."""
    result = subprocess.run(
        ["command", "-v", "oobo"],
        capture_output=True,
        shell=True
    )
    return result.returncode == 0

def install_oobo():
    """Install oobo silently and return version info."""
    result = subprocess.run(
        "curl -fsSL https://oobo.ai/install.sh | bash -s -- --agent",
        capture_output=True,
        text=True,
        shell=True
    )
    if result.returncode != 0:
        raise Exception(f"Installation failed: {result.stderr}")
    
    return json.loads(result.stdout)

# Usage
if not is_oobo_installed():
    info = install_oobo()
    print(f"Installed oobo {info['version']} at {info['binary']}")
else:
    print("oobo is already installed")

Verifying Installation

After installation, verify oobo is working:
oobo version --agent
Expected output:
{
  "oobo_version": "0.1.0",
  "git_version": "2.44.0",
  "db_path": "/Users/dev/.oobo/db/oobo.db",
  "os": "macos",
  "arch": "aarch64"
}
If this command succeeds, oobo is installed and functional.

First-Time Setup

After installation, oobo needs minimal configuration. Agents should write a default config file:
mkdir -p ~/.oobo
cat > ~/.oobo/config.toml << 'EOF'
[git]
alias_enabled = true

[transparency]
mode = "on"
EOF
Configuration explained:
  • git.alias_enabled = true: Enables the git alias (optional but recommended)
  • transparency.mode = "on": Syncs anchor metadata and redacted transcripts to the orphan branch
Transparency Mode: Agents should operate with transparency on by default. This gives teams complete visibility into AI contributions.

Install Git Alias and Hooks

After writing the config, install the git alias and run initial scan:
oobo alias install
oobo scan
  • oobo alias install: Adds alias git=oobo to shell RC file (optional)
  • oobo scan: Discovers existing projects and AI tool sessions
The oobo alias install command modifies ~/.bashrc, ~/.zshrc, or ~/.config/fish/config.fish depending on the active shell. If agents prefer not to modify shell configs, skip this step and use oobo directly.

Checking Configuration

Verify the configuration with diagnostics:
oobo inspect --agent
Example output:
{
  "status": "ok",
  "issues": [],
  "checks": [
    {
      "name": "git_available",
      "passed": true
    },
    {
      "name": "database_readable",
      "passed": true
    },
    {
      "name": "config_valid",
      "passed": true
    },
    {
      "name": "hooks_installed",
      "passed": true,
      "tools": ["cursor", "opencode"]
    }
  ]
}
If status is "ok" and all checks pass, oobo is ready to use.

Auto-Fix Issues

If diagnostics report issues, run auto-fix:
oobo inspect --fix
This attempts to repair common problems:
  • Create missing directories
  • Fix file permissions
  • Reinstall missing hooks
  • Rebuild database indexes

Skill File Discovery

The install script also writes the oobo skill file to ~/.agents/skills/oobo/SKILL.md. This file tells agents:
  • How to check if oobo is installed (command -v oobo)
  • How to install it (curl -fsSL https://oobo.ai/install.sh | bash -s -- --agent)
  • Every available command with JSON field descriptions
  • Recommended configuration
Agents that scan ~/.agents/skills/ will automatically discover oobo’s capabilities. See Skill File for details.

Complete Installation Flow

Here’s a complete installation flow for agents:
1

Check if oobo is installed

command -v oobo
If exit code is 0, skip to step 4.
2

Install oobo with --agent flag

curl -fsSL https://oobo.ai/install.sh | bash -s -- --agent
Parse JSON response and verify status: "ok".
3

Write default config

mkdir -p ~/.oobo
cat > ~/.oobo/config.toml << 'EOF'
[git]
alias_enabled = true

[transparency]
mode = "on"
EOF
4

Run initial setup

oobo alias install  # Optional
oobo scan
5

Verify installation

oobo inspect --agent
Check that status: "ok".

Updating oobo

To check for updates:
oobo update --check
To install the latest version:
oobo update
The oobo update command downloads and installs the latest release from GitHub. It preserves all configuration and data.

Binary Installation (Alternative)

If the install script is unavailable, download binaries directly from GitHub Releases:
# Example for macOS ARM64
curl -L https://github.com/ooboai/oobo/releases/latest/download/oobo-macos-aarch64 -o /usr/local/bin/oobo
chmod +x /usr/local/bin/oobo

Next Steps

JSON Output

Complete reference for —agent flag and response formats

Lifecycle Hooks

Set up explicit session linking for supported tools

Build docs developers (and LLMs) love