Radarr+
Request movies from chat and have them added to Radarr (with progress updates back in the same chat).
What it looks like (example)
Here’s an example of the single-message poster card + caption users will receive when requesting a movie (poster attachment + trailer + rating):

Example message caption:
Shutter Island (2010)
⭐ IMDb: 8.2/10
🎬 Trailer: https://www.youtube.com/watch?v=qdPw9x9h5CY
Added to Radarr ✅ (Ultra-HD, /movies). I’ll post progress + “imported ✅” here.
Setup (one-time)
- Set secrets in
~/.openclaw/.env(never commit these):
RADARR_URL=http://<host>:7878RADARR_API_KEY=...
Optional (recommended for fewer questions later):
RADARR_DEFAULT_PROFILE=HD-1080pRADARR_DEFAULT_ROOT=/data/media/movies
Optional (for the “rich” experience we’ll add next):
TMDB_API_KEY=...(poster + trailer)OMDB_API_KEY=...(IMDb rating)PLEX_URL=http://<plex-host>:32400PLEX_TOKEN=...
- Verify env + connectivity:
./skills/radarr/scripts/check_env.py
./skills/radarr/scripts/radarr.sh ping
If it fails, check:
- Radarr is reachable from the OpenClaw host
- API key is correct
- URL is correct (http vs https)
Common tasks
List available quality profiles
./skills/radarr/scripts/radarr.sh profiles
List configured root folders
./skills/radarr/scripts/radarr.sh roots
Lookup/search a movie
./skills/radarr/scripts/radarr.sh lookup --compact "inception"
./skills/radarr/scripts/radarr.sh lookup --compact "tmdb:603"
Add a movie (preferred: TMDB id)
./skills/radarr/scripts/radarr.sh add --tmdb 603 --profile "HD-1080p" --root "/data/media/movies" --monitor --search
Add a movie (by title; optionally prefer a year)
./skills/radarr/scripts/radarr.sh add --term "Dune" --year 2021 --profile "HD-1080p" --root "/data/media/movies" --monitor --search
Chat workflow (recommended)
When the user says “request/add <movie>” (DM or group):
1) Lookup
Run:
./skills/radarr/scripts/radarr.sh lookup --compact "<movie>"
If there are multiple plausible matches, ask the user to choose (year or TMDB id).
2) Resolve missing config by prompting
Resolve defaults from env (and fetch prompt options when missing):
./skills/radarr/scripts/resolve_defaults.py
If defaults are missing, prompt the user to pick one of the returned options:
options.profiles[]options.roots[]
(If defaults exist, use them silently.)
3) Optional rich “movie card” (add-ins)
If TMDB_API_KEY is set, build a movie card:
./skills/radarr/scripts/movie_card.py --tmdb <id>
- If the output includes
posterUrl, you can download it and attach it:
./skills/radarr/scripts/fetch_asset.py --url "<posterUrl>" --out "./outbound/radarr/<tmdbId>.jpg"
If OMDB_API_KEY is set and an IMDb id is known, the card will include IMDb rating.
4) Add to Radarr
Use TMDB when possible:
./skills/radarr/scripts/radarr.sh add --tmdb <id> --profile "<profile>" --root "<root>" --monitor --search
5) Track progress + notify in the same chat (Radarr-only, polling)
This skill provides a file-based tracker queue:
- Enqueue tracking for the same chat where the request came from (DM or group):
./skills/radarr/scripts/enqueue_track.py --channel telegram --target "<chatId>" --movie-id <id> --title "<title>" --year <year>
- A periodic dispatcher should run:
./skills/radarr/scripts/poll_and_queue.py
This will create outbox items under ./state/radarr/outbox/ that your OpenClaw cron runner can send.
6) Plex link (optional add-in)
If Plex is configured, try to produce a Plex web URL:
./skills/radarr/scripts/plex_link.py --title "<title>" --year <year>
References
- Onboarding:
references/onboarding.md - Setup:
references/setup.md - API notes:
references/radarr-api-notes.md