# ox import (https://sageox.ai/docs/cli/import)

# ox import

Import documents or video URLs into team context for onboarding and knowledge sharing. File imports are stored with LFS-backed content. URL imports submit videos for cloud processing (transcription, summarization).

## Usage

```bash
ox import <file|url> [flags]
```

## Examples

### Import a document

```bash
# Import a PDF
ox import report.pdf

# Import with pre-extracted text for better indexing
ox import report.pdf --text extracted.md

# Import with a specific date
ox import notes.md --date 2026-01-15

# Import to a specific team
ox import design-doc.md --team acme-design
```

### Import a video URL

```bash
# Import a Loom video
ox import https://www.loom.com/share/abc123 --title "Architecture Review"

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

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

### Check import status

```bash
# List all imports
ox import --list

# Check processing status
ox import --status rec_01234567

# Watch until processing completes
ox import --status rec_01234567 --watch
```

## Flags

| Flag | Description |
|------|-------------|
| `--text <file>` | Path to pre-extracted text/markdown for indexing |
| `--date <YYYY-MM-DD>` | Date for filing (default: auto-detect from metadata) |
| `--title <text>` | Display title for URL imports |
| `--team <id>` | Team ID or slug (default: auto-discovered from repo) |
| `--force` | Re-import even if content hash already exists |
| `--status <id>` | Check processing status of a URL import |
| `--watch` | Poll `--status` until processing completes or fails |
| `--list` | List imports and their processing status |

## Supported file types

| Type | Extensions |
|------|------------|
| Documents | `.pdf`, `.docx`, `.md`, `.txt`, `.html` |
| Data | `.json`, `.yaml`, `.csv` |
| Images | `.png`, `.jpg`, `.jpeg` |
| Audio | `.m4a`, `.mp3`, `.wav`, `.ogg`, `.opus`, `.flac` |
| Video | `.mp4`, `.mov`, `.mkv`, `.avi` |

## Supported video platforms

- **Loom** — `https://www.loom.com/share/...`
- **Cap** — `https://cap.link/...`
- **Direct URLs** — Any accessible `.mp4`, `.webm`, etc.

## How file imports work

1. **Upload** — Content is uploaded to LFS (Git Large File Storage)
2. **Pointer** — A small pointer file is committed to team context
3. **Metadata** — `metadata.json` tracks title, content type, date, sidecars
4. **Push** — Changes are pushed to the team context repo

Files are stored at:
```
data/docs/YYYY/MM/DD/<slug>/
├── metadata.json      # Document metadata
├── original.pdf       # LFS pointer to original
└── extracted.md       # LFS pointer to extracted text (if provided)
```

## How URL imports work

1. **Submit** — URL is sent to SageOx cloud for processing
2. **Download** — Cloud downloads the video
3. **Transcribe** — Audio is transcribed
4. **Summarize** — AI generates summary and key points
5. **Store** — Results are stored in team context

Track progress with `--status` and `--watch`.

## Deduplication

Imports are deduplicated by content hash. If you try to import a file that's already been imported, ox will skip it:

```bash
ox import report.pdf
# Already imported (id: architecture-review). Use --force to reimport.
```

Use `--force` to reimport anyway.

## Related commands

- [ox query](/docs/cli/query) — Search imported documents
- [ox sync](/docs/cli/sync) — Sync team context
