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 | Import Recordings to SageOx
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.
Using Recordings in Coding Sessions | AI Coworker Context
How AI coworkers use imported recordings during development. Reference design walkthroughs, bug reports, and meeting decisions directly in Claude Code sessions.

