| name | clawarr-suite |
| description | Comprehensive management for self-hosted media stacks (Sonarr, Radarr, Lidarr, Readarr, Prowlarr, Bazarr, Overseerr, Plex, Tautulli, SABnzbd, Recyclarr, Unpackerr, Notifiarr, Maintainerr, Kometa, FlareSolverr). Deep library exploration, analytics, dashboard generation, content management, request handling, subtitle management, indexer control, download monitoring, quality profile sync, library cleanup automation, notification routing, collection/overlay management, and media tracker integration (Trakt, Letterboxd, Simkl).
|
| homepage | https://github.com/omiron33/clawarr-suite |
| metadata | {"openclaw":{"requires":{"bins":["bash","curl","jq","bc","sed"]},"security":{"networkScope":"local-lan-and-user-configured-hosts","secretsPolicy":"api keys loaded from env/user config only; never hardcoded","destructiveActions":"none by default; explicit command required for delete/remove actions"},"capabilities":["arr-api-management","docker-service-observability","dashboard-generation","media-tracker-sync"]}} |
ClawARR Suite
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.
Security & Scanner Clarity
- 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.
Quick Start
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
scripts/library.sh stats all
scripts/analytics.sh activity
scripts/dashboard.sh
scripts/manage.sh wanted all
scripts/requests.sh list
Scripts Overview
Core Operations
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
Library Exploration (library.sh)
Deep statistics and exploration for Radarr/Sonarr/Lidarr:
library.sh stats [app]
library.sh quality [app]
library.sh missing [app]
library.sh unmonitored [app]
library.sh recent [app] [days]
library.sh genres [app]
library.sh years [app]
library.sh studios [app]
library.sh nofiles [app]
library.sh disk [app]
Analytics (analytics.sh)
Rich viewing analytics from Tautulli/Plex:
analytics.sh activity
analytics.sh history [count]
analytics.sh most-watched [period]
analytics.sh popular-genres [period]
analytics.sh peak-hours
analytics.sh user-stats [user]
analytics.sh library-stats
analytics.sh recent-added [count]
analytics.sh play-totals
Content Management (manage.sh)
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]
Request Management (requests.sh)
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
Subtitle Management (subtitles.sh)
Bazarr operations:
subtitles.sh wanted
subtitles.sh history [count]
subtitles.sh search <series|movie> <id>
subtitles.sh languages
Indexer Management (indexers.sh)
Prowlarr operations:
indexers.sh list
indexers.sh test [id]
indexers.sh stats
Download Client (downloads.sh)
SABnzbd operations:
downloads.sh active
downloads.sh speed
downloads.sh history [count]
downloads.sh pause
downloads.sh resume
downloads.sh queue
Dashboard Generation (dashboard.sh)
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).
Media Tracker Integration (trakt.sh, trackers.sh, letterboxd.sh, simkl.sh)
Track and sync what you watch across services like Trakt.tv, Letterboxd, Simkl, and more.
Unified Interface (trackers.sh):
trackers.sh setup
trackers.sh status
trackers.sh sync plex trakt
trackers.sh export trakt json
trackers.sh import letterboxd file.csv
trackers.sh compare trakt simkl
Trakt.tv Integration (trakt.sh):
Authentication:
trakt.sh auth
trakt.sh auth-status
Profile & Stats:
trakt.sh profile [username]
trakt.sh stats [username]
Watching & History:
trakt.sh 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
trakt.sh list-items my-favorites
Ratings:
trakt.sh ratings movies 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
Search:
trakt.sh search "Breaking Bad" show
Sync:
trakt.sh sync-plex
Letterboxd Integration (letterboxd.sh):
letterboxd.sh export
letterboxd.sh import diary.csv
letterboxd.sh profile username
letterboxd.sh diary username 2024
Simkl Integration (simkl.sh):
simkl.sh auth
simkl.sh profile
simkl.sh stats
simkl.sh history movies
simkl.sh watchlist all
simkl.sh sync
Traktarr & Retraktarr Integration
Automate content discovery and library syncing with Trakt lists.
Traktarr (Trakt → Radarr/Sonarr):
trakt.sh traktarr-status
trakt.sh traktarr-config
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):
trakt.sh retraktarr-status
trakt.sh retraktarr-config
trakt.sh retraktarr-sync all
trakt.sh retraktarr-sync movies
trakt.sh retraktarr-sync shows
Installation via Setup Wizard:
trackers.sh setup
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.
Prowlarr Indexer Management (prowlarr.sh)
Centralized indexer management across all *arr apps:
prowlarr.sh indexers
prowlarr.sh test [id]
prowlarr.sh stats
prowlarr.sh search <query> [type]
prowlarr.sh apps
prowlarr.sh add-app <type> <url> <key>
prowlarr.sh sync
prowlarr.sh status
prowlarr.sh logs [count]
Recyclarr Quality Profiles (recyclarr.sh)
Sync TRaSH Guides quality profiles to Sonarr/Radarr:
recyclarr.sh status
recyclarr.sh sync [instance]
recyclarr.sh diff [instance]
recyclarr.sh profiles
recyclarr.sh qualities [app]
recyclarr.sh config
recyclarr.sh create-config
recyclarr.sh logs [count]
Maintainerr Library Cleanup (maintainerr.sh)
Automated library cleanup based on rules:
maintainerr.sh status
maintainerr.sh rules
maintainerr.sh collections
maintainerr.sh run [rule_id]
maintainerr.sh media <rule_id>
maintainerr.sh exclude <media_id> <rule_id>
maintainerr.sh logs
Notifiarr Notifications (notifiarr.sh)
Unified notification management across *arr services:
notifiarr.sh status
notifiarr.sh triggers
notifiarr.sh services
notifiarr.sh test [channel]
notifiarr.sh config
notifiarr.sh logs
Kometa Collection Manager (kometa.sh)
Plex collection, overlay, and metadata automation:
kometa.sh status
kometa.sh run [library]
kometa.sh collections
kometa.sh overlays
kometa.sh config
kometa.sh templates
kometa.sh logs [count]
Unpackerr Archive Extraction (unpackerr.sh)
Automatic archive extraction for download clients:
unpackerr.sh status
unpackerr.sh activity
unpackerr.sh errors
unpackerr.sh config
unpackerr.sh logs [count]
unpackerr.sh restart
Legacy Scripts
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)
Configuration
Environment Variables
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...
export PROWLARR_KEY=abc123...
export RECYCLARR_SSH=mynas
export KOMETA_SSH=mynas
export UNPACKERR_SSH=mynas
export DOCKER_CONFIG_BASE=/opt/docker
Media Trackers (optional):
export TRAKT_CLIENT_ID=your_client_id
export TRAKT_CLIENT_SECRET=your_client_secret
export SIMKL_CLIENT_ID=your_client_id
export SIMKL_CLIENT_SECRET=your_client_secret
export LETTERBOXD_API_KEY=your_api_key
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.
Standard Ports
- 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
API Key Discovery
Method 1: /initialize.json (Easiest)
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
Method 2: Config Files
Docker/Unraid/Synology: /config/config.xml (inside container)
grep '<ApiKey>' /path/to/config.xml | sed 's/.*<ApiKey>\(.*\)<\/ApiKey>.*/\1/'
Method 3: Web UI
Settings → General → Security → API Key
Plex Token
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>"
Tautulli API Key
Settings → Web Interface → API → API Key
SABnzbd API Key
Config → General → Security → API Key
Common Workflows
Library Analysis
scripts/library.sh stats all
scripts/library.sh quality radarr
scripts/library.sh missing all
scripts/library.sh disk all
Viewing Analytics
scripts/analytics.sh activity
scripts/analytics.sh most-watched month
scripts/analytics.sh user-stats
scripts/analytics.sh peak-hours
Request Management
scripts/requests.sh list pending
scripts/requests.sh approve 123
scripts/requests.sh stats
Content Management
scripts/manage.sh add-movie "Dune Part Two"
scripts/manage.sh calendar all 7
scripts/manage.sh history radarr 30
scripts/manage.sh wanted all
Indexer Management (Prowlarr)
scripts/prowlarr.sh indexers
scripts/prowlarr.sh test
scripts/prowlarr.sh search "Dune" movie
scripts/prowlarr.sh add-app sonarr http://host:8989 <sonarr_key>
scripts/prowlarr.sh add-app radarr http://host:7878 <radarr_key>
scripts/prowlarr.sh sync
Quality Profiles (Recyclarr)
scripts/recyclarr.sh diff
scripts/recyclarr.sh sync
scripts/recyclarr.sh status
Library Cleanup (Maintainerr)
scripts/maintainerr.sh rules
scripts/maintainerr.sh media 1
scripts/maintainerr.sh run
scripts/maintainerr.sh exclude 12345 1
Collections & Overlays (Kometa)
scripts/kometa.sh run
scripts/kometa.sh collections
scripts/kometa.sh templates
Dashboard
scripts/dashboard.sh my-dashboard.html
open my-dashboard.html
Media Tracking Workflows
Initial Setup:
scripts/trackers.sh setup
scripts/trackers.sh status
Sync Plex to Trakt:
scripts/trakt.sh sync-plex
scripts/trackers.sh sync plex trakt
Export for Letterboxd:
scripts/letterboxd.sh export
Cross-Tracker Sync:
scripts/trackers.sh sync trakt letterboxd
scripts/trackers.sh compare trakt simkl
Discovery & Recommendations:
scripts/trakt.sh recommendations movies
scripts/trakt.sh trending shows
scripts/trakt.sh calendar all 7
Track Viewing:
scripts/trakt.sh watching
scripts/trakt.sh history movies 50
scripts/trakt.sh rate movie "Inception" 10
Automation with Traktarr/Retraktarr:
scripts/trackers.sh setup
scripts/trakt.sh traktarr-add movies trending 10
scripts/trakt.sh traktarr-add shows anticipated 5
scripts/trackers.sh setup
scripts/trakt.sh retraktarr-sync all
Troubleshooting
No Files Eligible for Import
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:
docker restart radarr sonarr
Queue Stuck
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
Missing Subtitles
scripts/subtitles.sh wanted
scripts/subtitles.sh search series <id>
Reference Documentation
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
Example Agent Prompts
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?"
Technical Notes
Bash 3.2 Compatibility
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
Dependencies
- curl — HTTP requests
- jq — JSON parsing
- bc — Math calculations (for percentages, GB conversions)
- sed — Text processing
All standard on macOS/Linux.
Security
- Never log API keys
- Confirm destructive actions (delete, remove)
- Rate limiting for bulk operations
- Use HTTPS for remote access
Performance
- Scripts cache API responses where possible
- Dashboard generation pulls data once per run
- Bulk operations use batch APIs when available
Version Compatibility
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
Contributing
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)
License
MIT License - See repository for details.