arr-cli — Radarr + Sonarr Media Library Management
Two CLIs, one skill wrapper. radarr-cli for movies, sonarr-cli for TV series.
Quick Setup
# Radarr
export ARR_SERVER_RADARR="http://localhost:7878"
export ARR_KEY_RADARR="your-radarr-api-key"
# Sonarr
export ARR_SERVER_SONARR="http://localhost:8989"
export ARR_KEY_SONARR="your-sonarr-api-key"
--help and --dry-run work without credentials.
When to Use Which
| User says... |
Load... |
| "list my movies", "what's in Radarr", "show me the library" |
radarr-cli movies [--limit N] [--status released|inCinemas|announced] |
| "add this movie", "is this in Radarr", "search for a movie" |
radarr-cli lookup --term "title" then radarr-cli add --tmdb-id N --root /movies |
| "what's coming up", "upcoming releases" |
radarr-cli calendar or sonarr-cli calendar |
| "what's in the queue", "download progress" |
radarr-cli queue or sonarr-cli queue |
| "show me history", "what was downloaded" |
radarr-cli history or sonarr-cli history |
| "list my series", "what's on Sonarr" |
sonarr-cli series [--limit N] [--status continuing|ended|upcoming] |
| "add this series", "find a TV show" |
sonarr-cli lookup --term "title" then sonarr-cli add --tvdb-id N --root /tv |
| "what's missing", "wanted episodes" |
sonarr-cli wanted |
| "check quality profiles", "what profiles exist" |
radarr-cli quality-profile or sonarr-cli quality-profile |
| "search for a movie/series" (already added) |
radarr-cli search --movie-id N or sonarr-cli search --series-id N |
| "where are my root folders", "storage paths" |
radarr-cli root-folder or sonarr-cli root-folder |
| "what episodes are downloaded", "episode files" |
sonarr-cli episode-file --series-id N |
Quick Reference
Global flags (work anywhere in arg list): --json, --dry-run, --force, --quiet, --verbose
# System info
radarr-cli status
sonarr-cli status
# List with filters and JSON output (pipe to jq for scripting)
radarr-cli movies --limit 5 --status released --json | jq '.movies[].title'
sonarr-cli series --limit 5 --status continuing --json | jq '.series[].title'
# Discover and add a movie (always use TMDb ID, not title)
radarr-cli lookup --term "Dune"
radarr-cli add --tmdb-id 12345 --root /movies --quality-profile 4 --search
# Add with specific availability (for unreleased films)
radarr-cli add --tmdb-id 99999 --root /movies --quality-profile 5 --availability announced
# Discover and add a series (always use TVDb ID)
sonarr-cli lookup --term "Severance"
sonarr-cli add --tvdb-id 77526 --root /tv --quality-profile 4 --series-type Standard --search
# Add an anime series (flat episode storage, absolute numbering)
sonarr-cli add --tvdb-id 12345 --root /tv --quality-profile 4 --series-type Anime --no-season-folder --search
# Preview before adding (no side effects)
radarr-cli --dry-run add --tmdb-id 550 --root /movies --quality-profile 4
# Trigger a search for something already in your library
radarr-cli search --movie-id 5
sonarr-cli search --series-id 5
# Queue and history
radarr-cli queue --limit 10
radarr-cli history --limit 5 --event-type grabbed
# Discover root folder paths before adding
radarr-cli root-folder
sonarr-cli root-folder
# Quality profiles
radarr-cli quality-profile # list all
radarr-cli quality-profile 4 # inspect HD-1080p details with tier checkmarks
IMPORTANT — lookup side effect: radarr-cli lookup --tmdb-id N silently adds an unmonitored record. For pure existence checks, use radarr-cli --json movies | jq '.[] | select(.tmdbId == N)' instead.
Default quality profile: HD-1080p (id: 4). Override with --quality-profile N.
Reference Files
| File |
Contents |
references/radarr-commands.md |
Full Radarr command reference with all flags and examples |
references/sonarr-commands.md |
Full Sonarr command reference with all flags and examples |
references/media-discovery.md |
Cross-referencing TMDb/Trakt discovery results against your library |
references/troubleshooting.md |
Pitfalls, FAQs, and when NOT to use |
When NOT to Use
- Media playback — use Jellyfin for watching content. This CLI only manages the library.
- *First-time arr setup — this skill assumes Radarr/Sonarr are already installed and configured. See
radarr.video or sonarr.tv for installation guides.
- Bulk imports — for large-scale library migrations, prefer Radarr/Sonarr's built-in import features or manual disk operations.
First-Time Loading
- Set the env vars above (API keys from each app's Settings → General)
- Test with
radarr-cli status — you should see version and OS info
- Browse your library:
radarr-cli movies --limit 5
- For cross-reference workflows (discovering new content via TMDb/Trakt), see
references/media-discovery.md
1---2name: arr-cli3description: Manage your Radarr (movies) and Sonarr (TV series) media library from the terminal. Search and browse movies/series, add new content, check calendars, view queue and download history, inspect quality profiles, and trigger searches. Use when the user mentions Radarr, Sonarr, the *arr stack, adding a movie or series, checking the library, finding something to watch, what's in the queue, download history, upcoming releases, media server setup, or movie/TV automation.4license: MIT5---67# arr-cli — Radarr + Sonarr Media Library Management89Two CLIs, one skill wrapper. `radarr-cli` for movies, `sonarr-cli` for TV series.1011## Quick Setup1213```bash14# Radarr15export ARR_SERVER_RADARR="http://localhost:7878"16export ARR_KEY_RADARR="your-radarr-api-key"1718# Sonarr19export ARR_SERVER_SONARR="http://localhost:8989"20export ARR_KEY_SONARR="your-sonarr-api-key"21```2223`--help` and `--dry-run` work without credentials.2425## When to Use Which2627| User says... | Load... |28|---|---|29| "list my movies", "what's in Radarr", "show me the library" | `radarr-cli movies [--limit N] [--status released\|inCinemas\|announced]` |30| "add this movie", "is this in Radarr", "search for a movie" | `radarr-cli lookup --term "title"` then `radarr-cli add --tmdb-id N --root /movies` |31| "what's coming up", "upcoming releases" | `radarr-cli calendar` or `sonarr-cli calendar` |32| "what's in the queue", "download progress" | `radarr-cli queue` or `sonarr-cli queue` |33| "show me history", "what was downloaded" | `radarr-cli history` or `sonarr-cli history` |34| "list my series", "what's on Sonarr" | `sonarr-cli series [--limit N] [--status continuing\|ended\|upcoming]` |35| "add this series", "find a TV show" | `sonarr-cli lookup --term "title"` then `sonarr-cli add --tvdb-id N --root /tv` |36| "what's missing", "wanted episodes" | `sonarr-cli wanted` |37| "check quality profiles", "what profiles exist" | `radarr-cli quality-profile` or `sonarr-cli quality-profile` |38| "search for a movie/series" (already added) | `radarr-cli search --movie-id N` or `sonarr-cli search --series-id N` |39| "where are my root folders", "storage paths" | `radarr-cli root-folder` or `sonarr-cli root-folder` |40| "what episodes are downloaded", "episode files" | `sonarr-cli episode-file --series-id N` |4142## Quick Reference4344**Global flags** (work anywhere in arg list): `--json`, `--dry-run`, `--force`, `--quiet`, `--verbose`4546```bash47# System info48radarr-cli status49sonarr-cli status5051# List with filters and JSON output (pipe to jq for scripting)52radarr-cli movies --limit 5 --status released --json | jq '.movies[].title'53sonarr-cli series --limit 5 --status continuing --json | jq '.series[].title'5455# Discover and add a movie (always use TMDb ID, not title)56radarr-cli lookup --term "Dune"57radarr-cli add --tmdb-id 12345 --root /movies --quality-profile 4 --search5859# Add with specific availability (for unreleased films)60radarr-cli add --tmdb-id 99999 --root /movies --quality-profile 5 --availability announced6162# Discover and add a series (always use TVDb ID)63sonarr-cli lookup --term "Severance"64sonarr-cli add --tvdb-id 77526 --root /tv --quality-profile 4 --series-type Standard --search6566# Add an anime series (flat episode storage, absolute numbering)67sonarr-cli add --tvdb-id 12345 --root /tv --quality-profile 4 --series-type Anime --no-season-folder --search6869# Preview before adding (no side effects)70radarr-cli --dry-run add --tmdb-id 550 --root /movies --quality-profile 47172# Trigger a search for something already in your library73radarr-cli search --movie-id 574sonarr-cli search --series-id 57576# Queue and history77radarr-cli queue --limit 1078radarr-cli history --limit 5 --event-type grabbed7980# Discover root folder paths before adding81radarr-cli root-folder82sonarr-cli root-folder8384# Quality profiles85radarr-cli quality-profile # list all86radarr-cli quality-profile 4 # inspect HD-1080p details with tier checkmarks87```8889**IMPORTANT — lookup side effect:** `radarr-cli lookup --tmdb-id N` silently adds an unmonitored record. For pure existence checks, use `radarr-cli --json movies | jq '.[] | select(.tmdbId == N)'` instead.9091**Default quality profile:** HD-1080p (id: 4). Override with `--quality-profile N`.9293## Reference Files9495| File | Contents |96|------|----------|97| `references/radarr-commands.md` | Full Radarr command reference with all flags and examples |98| `references/sonarr-commands.md` | Full Sonarr command reference with all flags and examples |99| `references/media-discovery.md` | Cross-referencing TMDb/Trakt discovery results against your library |100| `references/troubleshooting.md` | Pitfalls, FAQs, and when NOT to use |101102## When NOT to Use103104- **Media playback** — use Jellyfin for watching content. This CLI only manages the library.105- **First-time *arr setup** — this skill assumes Radarr/Sonarr are already installed and configured. See `radarr.video` or `sonarr.tv` for installation guides.106- **Bulk imports** — for large-scale library migrations, prefer Radarr/Sonarr's built-in import features or manual disk operations.107108## First-Time Loading1091101. Set the env vars above (API keys from each app's Settings → General)1112. Test with `radarr-cli status` — you should see version and OS info1123. Browse your library: `radarr-cli movies --limit 5`1134. For cross-reference workflows (discovering new content via TMDb/Trakt), see `references/media-discovery.md`