Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Comprehensive management for self-hosted media stacks (Sonarr, Radarr, Lidarr, Readarr, Prowlarr, Bazarr, Overseerr, Plex, Tautulli, SABnzbd, Recyclarr, Unpa...
Comprehensive management for self-hosted media stacks (Sonarr, Radarr, Lidarr, Readarr, Prowlarr, Bazarr, Overseerr, Plex, Tautulli, SABnzbd, Recyclarr, Unpa...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Unified deep-integration control for self-hosted media automation stacks. This skill provides comprehensive agent-executable operations across the entire *arr ecosystem with rich analytics, dashboard generation, and advanced library exploration.
Local-first operations: all API calls target user-provided local hosts (typically LAN/NAS). No embedded secrets: API keys/tokens are sourced from environment variables or user-owned config files. No telemetry/exfiltration paths: scripts do not transmit credentials or library data to third-party endpoints. Destructive behavior is opt-in: delete/remove actions require explicit command invocation by the user/agent. Setup logic avoids dynamic eval and uses explicit variable mapping for scanner-friendly shell behavior.
First time setup (recommended): scripts/setup.sh <host-ip-or-hostname> Discovers services, grabs API keys, verifies connections, and outputs your config. Common operations: scripts/status.sh # Health check all services scripts/library.sh stats all # Library statistics scripts/analytics.sh activity # Current Plex streams scripts/dashboard.sh # Generate HTML dashboard scripts/manage.sh wanted all # Show missing content scripts/requests.sh list # Overseerr requests
setup.sh โ Guided setup wizard with auto-discovery discover.sh โ Scan host for *arr services status.sh โ Health check all configured services diagnose.sh โ Automated troubleshooting
Deep statistics and exploration for Radarr/Sonarr/Lidarr: library.sh stats [app] # Overall library stats library.sh quality [app] # Quality profile breakdown library.sh missing [app] # Missing/wanted content library.sh unmonitored [app] # Unmonitored items library.sh recent [app] [days] # Recently added (default: 7) library.sh genres [app] # Genre distribution library.sh years [app] # Year distribution library.sh studios [app] # Studio/network breakdown library.sh nofiles [app] # Monitored but no files library.sh disk [app] # Disk usage by root folder
Rich viewing analytics from Tautulli/Plex: analytics.sh activity # Currently watching analytics.sh history [count] # Watch history analytics.sh most-watched [period] # Most watched (week/month/year) analytics.sh popular-genres [period] # Popular genres analytics.sh peak-hours # Peak watching hours analytics.sh user-stats [user] # User activity analytics.sh library-stats # Plex library stats analytics.sh recent-added [count] # Recently added to Plex analytics.sh play-totals # Total play statistics
Add, remove, and manage content: manage.sh add-movie "<title>" [quality] [root] manage.sh add-series "<title>" [quality] [root] manage.sh remove <app> <id> manage.sh wanted [app] manage.sh calendar [app] [days] manage.sh history [app] [count] manage.sh rename <app> <id> manage.sh refresh <app> [id]
Overseerr request handling: requests.sh list [pending|approved|available|all] requests.sh approve <id> requests.sh deny <id> [reason] requests.sh info <id> requests.sh stats
Bazarr operations: subtitles.sh wanted subtitles.sh history [count] subtitles.sh search <series|movie> <id> subtitles.sh languages
Prowlarr operations: indexers.sh list indexers.sh test [id] indexers.sh stats
SABnzbd operations: downloads.sh active downloads.sh speed downloads.sh history [count] downloads.sh pause downloads.sh resume downloads.sh queue
Generate self-contained HTML dashboard: dashboard.sh [output_file] Creates beautiful dark-themed dashboard with: System health Download activity Library statistics Recent activity Viewing analytics Disk usage Output defaults to clawarr-dashboard.html (open in any browser).
Track and sync what you watch across services like Trakt.tv, Letterboxd, Simkl, and more. Unified Interface (trackers.sh): trackers.sh setup # Interactive setup wizard trackers.sh status # Show configured trackers trackers.sh sync plex trakt # Sync Plex โ Trakt trackers.sh export trakt json # Export watch history trackers.sh import letterboxd file.csv trackers.sh compare trakt simkl Trakt.tv Integration (trakt.sh): Authentication: trakt.sh auth # Device code OAuth flow trakt.sh auth-status # Check authentication Profile & Stats: trakt.sh profile [username] # Show profile trakt.sh stats [username] # Detailed statistics Watching & History: trakt.sh watching # Currently watching trakt.sh history [movies|shows|episodes] [limit] trakt.sh sync-history export file.json trakt.sh sync-history import file.json Scrobbling: trakt.sh scrobble start movie 12345 trakt.sh scrobble stop movie 12345 100 trakt.sh checkin movie "Inception" Lists & Collections: trakt.sh watchlist [movies|shows] trakt.sh watchlist-add movie "Dune Part Two" trakt.sh collection movies trakt.sh collection-add movie 12345 trakt.sh lists # Custom lists trakt.sh list-items my-favorites Ratings: trakt.sh ratings movies 8 # Movies rated 8+ trakt.sh rate movie "Inception" 10 Discovery: trakt.sh recommendations movies trakt.sh trending shows trakt.sh popular movies trakt.sh calendar all 7 # Next 7 days Search: trakt.sh search "Breaking Bad" show Sync: trakt.sh sync-plex # Sync Plex watch history to Trakt Letterboxd Integration (letterboxd.sh): letterboxd.sh export # Export from Plex as Letterboxd CSV letterboxd.sh import diary.csv # Import Letterboxd diary letterboxd.sh profile username # View public profile letterboxd.sh diary username 2024 Simkl Integration (simkl.sh): simkl.sh auth # OAuth authentication simkl.sh profile # Show profile simkl.sh stats # Viewing statistics simkl.sh history movies # Watch history simkl.sh watchlist all # View watchlist simkl.sh sync # Sync with Plex
Automate content discovery and library syncing with Trakt lists. Traktarr (Trakt โ Radarr/Sonarr): # Status and configuration trakt.sh traktarr-status # Check if installed trakt.sh traktarr-config # Configure Traktarr # Add content from Trakt lists trakt.sh traktarr-add movies trending 10 trakt.sh traktarr-add movies anticipated 15 trakt.sh traktarr-add movies popular 5 trakt.sh traktarr-add shows trending 5 trakt.sh traktarr-add movies watchlist 50 Retraktarr (Radarr/Sonarr โ Trakt): # Status and configuration trakt.sh retraktarr-status # Check if installed trakt.sh retraktarr-config # Configure Retraktarr # Sync library to Trakt lists trakt.sh retraktarr-sync all # Sync movies and shows trakt.sh retraktarr-sync movies trakt.sh retraktarr-sync shows Installation via Setup Wizard: trackers.sh setup # Choose option 5 for Traktarr # Choose option 6 for Retraktarr # Offers to install via pip if not found What They Do: Traktarr: Automatically adds content from Trakt lists (trending, anticipated, watchlist, custom) to Radarr/Sonarr for download Retraktarr: Syncs your Radarr/Sonarr library back to Trakt as public/private lists See references/traktarr-retraktarr.md for complete setup, cron scheduling, and usage patterns.
Centralized indexer management across all *arr apps: prowlarr.sh indexers # List all indexers prowlarr.sh test [id] # Test indexer(s) prowlarr.sh stats # Indexer & app sync statistics prowlarr.sh search <query> [type] # Search across all indexers (type: movie|tv|audio|book) prowlarr.sh apps # List sync targets (Sonarr/Radarr/etc) prowlarr.sh add-app <type> <url> <key> # Add app sync target prowlarr.sh sync # Trigger sync to all apps prowlarr.sh status # Health check prowlarr.sh logs [count] # Recent logs
Sync TRaSH Guides quality profiles to Sonarr/Radarr: recyclarr.sh status # Check status & config recyclarr.sh sync [instance] # Sync profiles (all or specific) recyclarr.sh diff [instance] # Preview changes without applying recyclarr.sh profiles # List available TRaSH profiles recyclarr.sh qualities [app] # List quality definitions recyclarr.sh config # Show current config recyclarr.sh create-config # Generate config template recyclarr.sh logs [count] # View recent logs
Automated library cleanup based on rules: maintainerr.sh status # Check status maintainerr.sh rules # List cleanup rules maintainerr.sh collections # List managed collections maintainerr.sh run [rule_id] # Trigger rules (all or specific) maintainerr.sh media <rule_id> # Show media matched by a rule maintainerr.sh exclude <media_id> <rule_id> # Exclude media from rule maintainerr.sh logs # View activity log
Unified notification management across *arr services: notifiarr.sh status # Check status & integrations notifiarr.sh triggers # List notification triggers notifiarr.sh services # Show connected services notifiarr.sh test [channel] # Send test notification notifiarr.sh config # Configuration summary notifiarr.sh logs # Recent notification log
Plex collection, overlay, and metadata automation: kometa.sh status # Check container status kometa.sh run [library] # Run Kometa (all or specific library) kometa.sh collections # Show Plex collections kometa.sh overlays # Check overlay config kometa.sh config # Show Kometa config kometa.sh templates # List available default collections/overlays kometa.sh logs [count] # View recent logs
Automatic archive extraction for download clients: unpackerr.sh status # Check status & config unpackerr.sh activity # Recent extraction activity unpackerr.sh errors # Recent errors/warnings unpackerr.sh config # Show configuration unpackerr.sh logs [count] # View recent logs unpackerr.sh restart # Restart container
queue.sh โ View download queues (use manage.sh wanted or downloads.sh active for more detail) search.sh โ Search content (use manage.sh add-* for full workflow)
Core Services: export CLAWARR_HOST=192.168.1.100 export SONARR_KEY=abc123... export RADARR_KEY=def456... export LIDARR_KEY=ghi789... export READARR_KEY=jkl012... export PROWLARR_KEY=mno345... export BAZARR_KEY=pqr678... export OVERSEERR_KEY=stu901... export PLEX_TOKEN=vwx234... export TAUTULLI_KEY=yz567... export SABNZBD_KEY=abc890... export NOTIFIARR_KEY=xyz123... # Companion services (auto-detected, keys optional) export PROWLARR_KEY=abc123... # Required for prowlarr.sh # Docker-based services (SSH access for remote management) export RECYCLARR_SSH=mynas # SSH host for recyclarr container export KOMETA_SSH=mynas # SSH host for kometa container export UNPACKERR_SSH=mynas # SSH host for unpackerr container export DOCKER_CONFIG_BASE=/opt/docker # Docker config root (default: /volume1/docker for Synology) Media Trackers (optional): # Trakt.tv (register app at https://trakt.tv/oauth/applications/new) export TRAKT_CLIENT_ID=your_client_id export TRAKT_CLIENT_SECRET=your_client_secret # Simkl (register at https://simkl.com/settings/developer) export SIMKL_CLIENT_ID=your_client_id export SIMKL_CLIENT_SECRET=your_client_secret # Letterboxd (requires API approval) export LETTERBOXD_API_KEY=your_api_key # Optional, uses CSV export if not set Token Storage: Tokens are automatically saved to ~/.config/clawarr/ Files: trakt_tokens.json, simkl_tokens.json Permissions: 600 (user read/write only) Store in .env file and source before running scripts.
Sonarr: 8989 Radarr: 7878 Lidarr: 8686 Readarr: 8787 Prowlarr: 9696 Bazarr: 6767 Overseerr: 5055 Plex: 32400 Tautulli: 8181 SABnzbd: 38080 Notifiarr: 5454 Maintainerr: 6246 FlareSolverr: 8191 Homarr: 7575
Most *arr apps expose API key at public endpoint: curl -s http://HOST:7878/initialize.json | jq -r '.apiKey' For older versions (v3): curl -s http://HOST:7878/initialize.js | grep -o "apiKey: '[^']*'" | cut -d"'" -f2
Docker/Unraid/Synology: /config/config.xml (inside container) grep '<ApiKey>' /path/to/config.xml | sed 's/.*<ApiKey>\(.*\)<\/ApiKey>.*/\1/'
Settings โ General โ Security โ API Key
From Plex Web UI: Open any media item "Get Info" โ "View XML" URL contains X-Plex-Token=... Or use: curl -u "username:password" -X POST \ 'https://plex.tv/users/sign_in.json' \ -H "X-Plex-Client-Identifier: <unique-id>"
Settings โ Web Interface โ API โ API Key
Config โ General โ Security โ API Key
# Get complete library overview scripts/library.sh stats all # Find quality upgrade candidates scripts/library.sh quality radarr # Show missing content scripts/library.sh missing all # Check disk usage scripts/library.sh disk all
# Current activity scripts/analytics.sh activity # Most watched this month scripts/analytics.sh most-watched month # User statistics scripts/analytics.sh user-stats # Peak hours scripts/analytics.sh peak-hours
# Show pending requests scripts/requests.sh list pending # Approve request scripts/requests.sh approve 123 # Request statistics scripts/requests.sh stats
# Add movie scripts/manage.sh add-movie "Dune Part Two" # Show calendar scripts/manage.sh calendar all 7 # View history scripts/manage.sh history radarr 30 # Show wanted/missing scripts/manage.sh wanted all
# List and test all indexers scripts/prowlarr.sh indexers scripts/prowlarr.sh test # Search across all indexers scripts/prowlarr.sh search "Dune" movie # Add Sonarr/Radarr as sync targets scripts/prowlarr.sh add-app sonarr http://host:8989 <sonarr_key> scripts/prowlarr.sh add-app radarr http://host:7878 <radarr_key> # Trigger indexer sync to all apps scripts/prowlarr.sh sync
# Preview changes scripts/recyclarr.sh diff # Sync TRaSH Guides profiles scripts/recyclarr.sh sync # Check status scripts/recyclarr.sh status
# View rules and matched media scripts/maintainerr.sh rules scripts/maintainerr.sh media 1 # Run cleanup scripts/maintainerr.sh run # Exclude something from cleanup scripts/maintainerr.sh exclude 12345 1
# Run collection/overlay generation scripts/kometa.sh run # View existing collections scripts/kometa.sh collections # See available templates scripts/kometa.sh templates
# Generate dashboard scripts/dashboard.sh my-dashboard.html # Open in browser open my-dashboard.html
Initial Setup: # Set up Trakt.tv scripts/trackers.sh setup # Select option 1 (Trakt.tv) # Follow device auth flow # Check status scripts/trackers.sh status Sync Plex to Trakt: # One-time sync of watch history scripts/trakt.sh sync-plex # Or use unified interface scripts/trackers.sh sync plex trakt Export for Letterboxd: # Generate Letterboxd-compatible CSV scripts/letterboxd.sh export # Upload at letterboxd.com/import/ Cross-Tracker Sync: # Export from Trakt, convert for Letterboxd scripts/trackers.sh sync trakt letterboxd # Compare two services scripts/trackers.sh compare trakt simkl Discovery & Recommendations: # Get personalized recommendations scripts/trakt.sh recommendations movies # See what's trending scripts/trakt.sh trending shows # Check upcoming releases scripts/trakt.sh calendar all 7 Track Viewing: # See what you're currently watching scripts/trakt.sh watching # View watch history scripts/trakt.sh history movies 50 # Rate something you watched scripts/trakt.sh rate movie "Inception" 10 Automation with Traktarr/Retraktarr: # Set up Traktarr (Trakt โ Arr) scripts/trackers.sh setup # Option 5 # Add trending movies to Radarr scripts/trakt.sh traktarr-add movies trending 10 # Add anticipated shows to Sonarr scripts/trakt.sh traktarr-add shows anticipated 5 # Set up Retraktarr (Arr โ Trakt) scripts/trackers.sh setup # Option 6 # Sync library to Trakt lists scripts/trakt.sh retraktarr-sync all # Schedule automation (cron): # Traktarr every 6 hours: 0 */6 * * * traktarr run # Retraktarr daily at 3am: 0 3 * * * retraktarr sync
Diagnosis: scripts/diagnose.sh Common causes: Stale Docker mounts โ Container restarted but host didn't Path mapping โ Download client and *arr app see different paths Permissions โ *arr app can't read download directory Category mismatch โ Download in wrong category Solutions: # Restart containers (fixes stale mounts) docker restart radarr sonarr # Check path mappings # Settings โ Download Clients โ Remote Path Mappings
Check download client: scripts/downloads.sh active scripts/downloads.sh speed *Check arr queues: scripts/manage.sh wanted all Check indexers: scripts/indexers.sh test scripts/indexers.sh stats
scripts/subtitles.sh wanted scripts/subtitles.sh search series <id>
references/api-endpoints.md โ Complete API reference for all services references/tracker-apis.md โ Media tracker API documentation (Trakt, Simkl, Letterboxd) references/traktarr-retraktarr.md โ Complete guide to Traktarr & Retraktarr automation references/companion-services.md โ Prowlarr, Recyclarr, FlareSolverr, Unpackerr, Notifiarr, Maintainerr, Kometa reference references/common-issues.md โ Troubleshooting guide with solutions references/setup-guide.md โ Platform-specific installation references/prompts.md โ Suggested natural-language prompts for agents references/dashboard-templates.md โ HTML/CSS templates for dashboards
See references/prompts.md for complete list. Examples: Library & Downloads: "Show me what's downloading right now" "What movies were added this week?" "Generate a dashboard of my media library" "What are the most watched shows this month?" "Find all 720p movies that could be upgraded to 4K" "Show missing episodes for all monitored shows" "What's coming out this week?" "Approve all pending Overseerr requests" "How much disk space am I using per library?" "Show my Plex viewing stats for the last 30 days" "What subtitles are missing?" "Test all my indexers" Media Tracking: "Set up Trakt tracking for my Plex library" "Sync my Plex watch history to Trakt" "What am I currently watching on Trakt?" "Show my Trakt watch history from this month" "Get movie recommendations based on my Trakt ratings" "What's trending on Trakt right now?" "Export my library for Letterboxd" "Compare my Trakt and Simkl watch histories" "Show me upcoming movie releases I'm tracking" "Rate Inception 10/10 on Trakt" "Add Dune Part Two to my Trakt watchlist" "Show my Letterboxd profile stats" "What are my top-rated movies on Trakt?" Prowlarr & Indexers: "Show all my indexers and test them" "Search across all indexers for Breaking Bad" "Sync Prowlarr indexers to Sonarr and Radarr" "Add Sonarr as a sync target in Prowlarr" Quality Profiles (Recyclarr): "Sync TRaSH Guides quality profiles" "Preview what Recyclarr would change" "Show available quality profiles for Radarr" "What quality definitions does Sonarr have?" Library Cleanup (Maintainerr): "Show my library cleanup rules" "What movies are flagged for deletion?" "Run all cleanup rules now" "Exclude this movie from the cleanup rule" Collections & Overlays (Kometa): "Run Kometa to update collections" "Show all my Plex collections" "What overlay templates are available?" "Add IMDb Top 250 collection to my movie library" Notifications (Notifiarr): "Check Notifiarr status and integrations" "Send a test notification" "Show recent notifications" Archive Extraction (Unpackerr): "Check Unpackerr status" "Show recent extraction activity" "Any extraction errors?" Traktarr/Retraktarr Automation: "Set up Traktarr to auto-add trending movies" "Add the top 10 anticipated movies from Trakt to Radarr" "Configure Traktarr to monitor my Trakt watchlist" "Sync my Radarr library to a public Trakt list" "Show Traktarr status and configuration" "Add trending shows to Sonarr via Traktarr" "Set up automatic syncing between Trakt and my *arr apps" "What's Retraktarr doing? Is it synced?"
All scripts are compatible with macOS bash 3.2: No associative arrays (declare -A) No uppercase parameter expansion (${var^^}) Use $(echo "$var" | tr '[:lower:]' '[:upper:]') for case conversion No |& (pipe stderr), use 2>&1 instead
curl โ HTTP requests jq โ JSON parsing bc โ Math calculations (for percentages, GB conversions) sed โ Text processing All standard on macOS/Linux.
Never log API keys Confirm destructive actions (delete, remove) Rate limiting for bulk operations Use HTTPS for remote access
Scripts cache API responses where possible Dashboard generation pulls data once per run Bulk operations use batch APIs when available
Tested with: Sonarr v4.x (API v3) Radarr v5.x (API v3) Lidarr v2.x (API v1) Readarr v0.3.x (API v1) Prowlarr v1.x (API v1) Bazarr v1.4.x Overseerr v1.33.x (API v1) Plex Media Server (all recent versions) Tautulli v2.x (API v2) SABnzbd v4.x Recyclarr v7.x Unpackerr v0.14.x Notifiarr v0.8.x Maintainerr v2.x Kometa v2.x (Plex Meta Manager successor) FlareSolverr v3.x
Report issues or suggest features via GitHub. Include: Script name and command run Error output (sanitize API keys!) Service versions Platform (Docker/Unraid/Synology/etc)
MIT License - See repository for details.
Writing, remixing, publishing, visual generation, and marketing content production.
Largest current source with strong distribution and engagement signals.