# ox import (/docs/cli/commands/import)



ox 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 [#usage]

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

Examples [#examples]

Import a document [#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 [#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 [#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 [#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 [#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 [#supported-video-platforms]

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

How file imports work [#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 [#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 [#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 [#related-commands]

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