# CLI Reference


Process media with simple flags

The CLI processes media on Ittybit cloud by default. Add `--local` to run on your own machine using FFmpeg — same flags, same output, no code changes.

```bash
brew install ittybit/tap/ittybit
ittybit health
```

## Commands

| Command                           | What it does                                           |
| --------------------------------- | ------------------------------------------------------ |
| [`video`](/cli/video)             | Transcode, resize, trim, change codec                  |
| [`audio`](/cli/audio)             | Extract audio from video, convert formats              |
| [`image`](/cli/image)             | Convert images, extract frames from video              |
| [`animation`](/cli/animation)     | Extract animated clips (GIF/WebP) from video           |
| [`adaptive`](/cli/adaptive)       | Create HLS adaptive bitrate streams                    |
| [`task`](/cli/task)               | Run a single operation (probe, import, encode, export) |
| [`jobs`](/cli/jobs)               | Create or list jobs via the API                        |
| [`connections`](/cli/connections) | Manage S3 storage connections                          |

For the HTTP API equivalent of these commands, see the [API Reference](/api). The CLI accepts the same options as [POST /jobs](/api/create-job).

## Global flags

| Flag           | Short | Description                                                                                          |
| -------------- | ----- | ---------------------------------------------------------------------------------------------------- |
| `--input`      | `-i`  | Input file or URL                                                                                    |
| `--output`     | `-o`  | Output file or S3 URL                                                                                |
| `--local`      |       | Run locally using FFmpeg instead of cloud                                                            |
| `--async`      |       | Return immediately, don't wait for completion                                                        |
| `--json`       |       | Machine-readable JSONL output                                                                        |
| `--tty`        |       | Human-readable output                                                                                |
| `--connection` |       | S3 connection name                                                                                   |
| `--debug`      |       | Show debug output (ffmpeg commands and stderr locally; forwards debug-severity logs from cloud jobs) |

Output mode is auto-detected: terminal gets TTY, pipe gets JSON.

## Guides

- [Convert uploads for web playback](/guides/web-video)
- [Extract thumbnails from video](/guides/thumbnail)
- [Extract audio from video](/guides/extract-audio)