SageOx

The hivemind for agentic engineering

Features

Video import via CLI

Import recordings directly from your terminal with ox import. Paste a Loom or Cap URL, submit it for processing, and track status without leaving your editor.

Quick start

# Import a Loom recording
ox import https://www.loom.com/share/abc123def456 --title "Sprint Planning"

# Import a Cap recording
ox import https://cap.link/abc123 --title "Bug Walkthrough"

# Import any direct video URL
ox import https://example.com/meeting.mp4 --title "Team Standup"

How it works

When you run ox import with a URL:

  1. The CLI submits the URL to SageOx for processing
  2. SageOx downloads the video, transcribes it, extracts keyframes, and generates summaries
  3. Artifacts commit to your Team Context
  4. Your AI coworkers can reference the recording in future sessions
Loading diagram...
Mermaid diagram

Commands

Import a video URL

ox import <url> [flags]
FlagDescription
--titleDisplay title for the recording
--teamTeam ID (auto-discovered from current repo)
--jsonOutput as JSON

Examples:

# Loom share link
ox import https://www.loom.com/share/abc123 --title "Architecture Review"

# Cap share link
ox import https://cap.link/xyz789 --title "Design Walkthrough"

# Direct video URL
ox import https://storage.example.com/recording.mp4 --title "Customer Call"

Check processing status

Track a recording's progress through the pipeline:

ox import --status <recording_id>
FlagDescription
--statusRecording ID to check
--watchPoll until processing completes or fails
--jsonOutput as JSON (JSONL in watch mode)

Examples:

# Check status once
ox import --status rec_01HQXYZ123

# Watch until complete
ox import --status rec_01HQXYZ123 --watch

# JSON output for scripting
ox import --status rec_01HQXYZ123 --json

Sample output:

Recording: rec_01HQXYZ123
Title:     Sprint Planning
Status:    processing
Duration:  342s

Processing Steps
  ✓ download             complete
  ✓ transcription        complete
  ◐ keyframes            in_progress
  · summarization        pending

List recordings

See all recordings for your team:

ox import --list
FlagDescription
--listShow all team recordings
--teamTeam ID (auto-discovered from current repo)
--jsonOutput as JSON

Sample output:

ID                                       TITLE                          STATUS       CREATED
---------------------------------------- ------------------------------ ------------ --------------------
rec_01HQXYZ123                           Sprint Planning                ready        2026-03-20 14:30
rec_01HQABC456                           Bug Repro: Cart Total          processing   2026-03-20 15:45
rec_01HQDEF789                           Architecture Overview          ready        2026-03-19 10:00

Supported sources

SourceURL format
Loomhttps://www.loom.com/share/...
Caphttps://cap.link/...
Direct videoAny URL ending in .mp4, .webm, .mov

Team discovery

The CLI auto-discovers your team from the current repo. If you're outside a SageOx project or want to import to a different team:

# Specify team explicitly
ox import https://loom.com/share/abc --team team_01HQ123

# Or run from inside an initialized repo
cd ~/projects/my-app
ox import https://loom.com/share/abc

Scripting

Use --json for machine-readable output:

# Import and capture recording ID
RECORDING_ID=$(ox import https://loom.com/share/abc --title "Demo" --json | jq -r '.recording_id')

# Wait for processing to complete
ox import --status "$RECORDING_ID" --watch --json | while read -r line; do
  STATUS=$(echo "$line" | jq -r '.status')
  echo "Status: $STATUS"
  if [ "$STATUS" = "ready" ]; then
    echo "Processing complete!"
    break
  fi
done

What's next