Help us improve
Share bugs, ideas, or general feedback.
From homelab-core
Manages SABnzbd Usenet downloads via REST API: monitor queue/history, add NZBs by URL/file, pause/resume/delete jobs, set speed limits, retry failures. For SABnzbd status, NZB queue, Usenet queries.
npx claudepluginhub jmagar/claude-homelab --plugin tautulliHow this skill is triggered — by the user, by Claude, or both
Slash command
/homelab-core:sabnzbdThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**⚠️ MANDATORY SKILL INVOCATION ⚠️**
Manages qBittorrent torrents via WebUI API: list/filter by status/category, add by magnet/URL/file, pause/resume/delete/recheck, set categories/tags/speed limits, view stats/files/trackers.
Monitors and manages Unraid NAS servers: health checks, disk/array status, Docker containers, VMs, parity, logs, notifications, UPS, CPU/memory via API or MCP.
Searches Pirate Bay torrents via apibay.org API, extracts magnet links using CLI (season, smart, grab) or direct calls. For torrent searches, seeders, top lists.
Share bugs, ideas, or general feedback.
⚠️ MANDATORY SKILL INVOCATION ⚠️
YOU MUST invoke this skill (NOT optional) when the user mentions ANY of these triggers:
Failure to invoke this skill when triggers occur violates your operational requirements.
Manage Usenet downloads via SABnzbd's REST API.
This skill provides read and write access to your SABnzbd Usenet downloader:
Operations include both read and write actions. Always confirm before deleting downloads with file deletion.
Credentials: ~/.claude-homelab/.env
SABNZBD_URL="http://localhost:8080"
SABNZBD_API_KEY="your-api-key-from-config-general"
Get your API key from SABnzbd Config → General → Security.
Security: Never commit .env file. Set permissions: chmod 600 ~/.claude-homelab/.env
# Full queue
./scripts/sab-api.sh queue
# With filters
./scripts/sab-api.sh queue --limit 10 --category tv
# Specific job
./scripts/sab-api.sh queue --nzo-id SABnzbd_nzo_xxxxx
# By URL (indexer link)
./scripts/sab-api.sh add "https://indexer.com/get.php?guid=..."
# With options
./scripts/sab-api.sh add "URL" --name "My Download" --category movies --priority high
# By local file
./scripts/sab-api.sh add-file /path/to/file.nzb --category tv
Priority: force, high, normal, low, paused, duplicate
./scripts/sab-api.sh pause # Pause all
./scripts/sab-api.sh resume # Resume all
./scripts/sab-api.sh pause-job <nzo_id>
./scripts/sab-api.sh resume-job <nzo_id>
./scripts/sab-api.sh delete <nzo_id> # Keep files
./scripts/sab-api.sh delete <nzo_id> --files # Delete files too
./scripts/sab-api.sh purge # Clear queue
./scripts/sab-api.sh speedlimit 50 # 50% of max
./scripts/sab-api.sh speedlimit 5M # 5 MB/s
./scripts/sab-api.sh speedlimit 0 # Unlimited
./scripts/sab-api.sh history
./scripts/sab-api.sh history --limit 20 --failed
./scripts/sab-api.sh retry <nzo_id> # Retry failed
./scripts/sab-api.sh retry-all # Retry all failed
./scripts/sab-api.sh delete-history <nzo_id>
./scripts/sab-api.sh categories
./scripts/sab-api.sh scripts
./scripts/sab-api.sh change-category <nzo_id> movies
./scripts/sab-api.sh change-script <nzo_id> notify.py
./scripts/sab-api.sh status # Full status
./scripts/sab-api.sh version
./scripts/sab-api.sh warnings
./scripts/sab-api.sh server-stats # Download stats
Queue slot includes:
nzo_id, filename, statusmb, mbleft, percentagetimeleft, priority, catscript, labelsStatus values: Downloading, Queued, Paused, Propagating, Fetching
History status: Completed, Failed, Queued, Verifying, Repairing, Extracting
When the user asks about Usenet downloads:
queue to show active downloadsadd "<url>" with appropriate category and prioritypauseresumehistoryretry-all or retry <nzo_id>speedlimit <percentage> or speedlimit <MB>MCRITICAL: When invoking scripts from this skill via the zsh-tool, ALWAYS use pty: true.
Without PTY mode, command output will not be visible even though commands execute successfully.
Correct invocation pattern:
<invoke name="mcp__plugin_zsh-tool_zsh-tool__zsh">
<parameter name="command">./skills/SKILL_NAME/scripts/SCRIPT.sh [args]</parameter>
<parameter name="pty">true</parameter>
</invoke>