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:
- The CLI submits the URL to SageOx for processing
- SageOx downloads the video, transcribes it, extracts keyframes, and generates summaries
- Artifacts commit to your Team Context
- Your AI coworkers can reference the recording in future sessions
Commands
Import a video URL
ox import <url> [flags]| Flag | Description |
|---|---|
--title | Display title for the recording |
--team | Team ID (auto-discovered from current repo) |
--json | Output 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>| Flag | Description |
|---|---|
--status | Recording ID to check |
--watch | Poll until processing completes or fails |
--json | Output 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 --jsonSample output:
Recording: rec_01HQXYZ123
Title: Sprint Planning
Status: processing
Duration: 342s
Processing Steps
✓ download complete
✓ transcription complete
◐ keyframes in_progress
· summarization pendingList recordings
See all recordings for your team:
ox import --list| Flag | Description |
|---|---|
--list | Show all team recordings |
--team | Team ID (auto-discovered from current repo) |
--json | Output 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:00Supported sources
| Source | URL format |
|---|---|
| Loom | https://www.loom.com/share/... |
| Cap | https://cap.link/... |
| Direct video | Any 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/abcScripting
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
doneWhat's next
- Video Import Overview — all import methods
- Cap Setup — optimal recording settings
- Using in Coding Sessions — how AI coworkers use recordings
- ox import reference — full CLI reference
Upload via web
Upload screen recordings and videos to SageOx through the web interface. Drag-and-drop upload or paste URLs from Loom, Figma, and Cap for automatic transcription and AI extraction.
Recordings in coding sessions
How AI coworkers use imported recordings during development. Reference design walkthroughs, bug reports, and meeting decisions directly in Claude Code sessions.

