# qbittorrent > Manage torrents with qBittorrent. Use when the user asks to "list torrents", "add torrent", "pause torrent", "resume torrent", "delete torrent", "check download status", "torrent speed", "qBittorrent stats", or mentions qBittorrent/qbit torrent management. - Author: Jacob Magar - Repository: jmagar/claude-homelab - Version: 20260208071906 - Stars: 1 - Forks: 0 - Last Updated: 2026-02-08 - Source: https://github.com/jmagar/claude-homelab - Web: https://mule.run/skillshub/@@jmagar/claude-homelab~qbittorrent:20260208071906 --- --- name: qbittorrent version: 1.2.0 description: Manage torrents with qBittorrent. Use when the user asks to "list torrents", "add torrent", "pause torrent", "resume torrent", "delete torrent", "check download status", "torrent speed", "qBittorrent stats", or mentions qBittorrent/qbit torrent management. --- # qBittorrent WebUI API **⚠️ MANDATORY SKILL INVOCATION ⚠️** **YOU MUST invoke this skill (NOT optional) when the user mentions ANY of these triggers:** - "qBittorrent status", "torrent list", "active torrents" - "pause torrent", "resume torrent", "delete torrent" - "add torrent", "qBit", "download manager" - Any mention of qBittorrent or torrent management **Failure to invoke this skill when triggers occur violates your operational requirements.** Manage torrents via qBittorrent's WebUI API (v4.1+). ## Purpose This skill provides **read and write** access to your qBittorrent torrent client: - Monitor active, seeding, and completed torrents - Add torrents by magnet link, URL, or file upload - Control torrent state (pause, resume, delete) - Manage categories and tags - Adjust global and per-torrent speed limits - View torrent files, trackers, and properties - Recheck torrent data integrity Operations include both read and write actions. **Always confirm before deleting torrents with file deletion.** ## Setup Add credentials to `~/workspace/homelab/.env`: ```bash QBITTORRENT_URL="http://localhost:8080" QBITTORRENT_USERNAME="admin" QBITTORRENT_PASSWORD="adminadmin" ``` Set file permissions: ```bash chmod 600 ~/workspace/homelab/.env ``` ## Quick Reference ### List Torrents ```bash # All torrents ./scripts/qbit-api.sh list # Filter by status ./scripts/qbit-api.sh list --filter downloading ./scripts/qbit-api.sh list --filter seeding ./scripts/qbit-api.sh list --filter paused # Filter by category ./scripts/qbit-api.sh list --category movies ``` Filters: `all`, `downloading`, `seeding`, `completed`, `paused`, `active`, `inactive`, `stalled`, `errored` ### Get Torrent Info ```bash ./scripts/qbit-api.sh info ./scripts/qbit-api.sh files ./scripts/qbit-api.sh trackers ``` ### Add Torrent ```bash # By magnet or URL ./scripts/qbit-api.sh add "magnet:?xt=..." --category movies # By file ./scripts/qbit-api.sh add-file /path/to/file.torrent --paused ``` ### Control Torrents ```bash ./scripts/qbit-api.sh pause # or "all" ./scripts/qbit-api.sh resume # or "all" ./scripts/qbit-api.sh delete # keep files ./scripts/qbit-api.sh delete --files # delete files too ./scripts/qbit-api.sh recheck ``` ### Categories & Tags ```bash ./scripts/qbit-api.sh categories ./scripts/qbit-api.sh tags ./scripts/qbit-api.sh set-category movies ./scripts/qbit-api.sh add-tags "important,archive" ``` ### Transfer Info ```bash ./scripts/qbit-api.sh transfer # global speed/stats ./scripts/qbit-api.sh speedlimit # current limits ./scripts/qbit-api.sh set-speedlimit --down 5M --up 1M ``` ### App Info ```bash ./scripts/qbit-api.sh version ./scripts/qbit-api.sh preferences ``` ## Response Format Torrent object includes: - `hash`, `name`, `state`, `progress` - `dlspeed`, `upspeed`, `eta` - `size`, `downloaded`, `uploaded` - `category`, `tags`, `save_path` States: `downloading`, `stalledDL`, `uploading`, `stalledUP`, `pausedDL`, `pausedUP`, `queuedDL`, `queuedUP`, `checkingDL`, `checkingUP`, `error`, `missingFiles` ## Workflow When the user asks about torrents: 1. **"What's downloading?"** → Run `list --filter downloading` 2. **"Add this magnet link"** → Run `add ""` with appropriate category 3. **"Pause all torrents"** → Run `pause all` 4. **"Resume seeding"** → Run `resume all` or filter by hash 5. **"Show torrent details"** → Run `info ` and `files ` 6. **"List by category"** → Run `list --category movies` 7. **"Set speed limits"** → Run `set-speedlimit --down 5M --up 1M` ## Notes - Requires network access to your qBittorrent server - Uses qBittorrent WebUI API v4.1+ - All data operations return JSON - **Delete operations with --files are permanent** - always confirm before deleting downloaded files - Speed limits support units: K (KB/s), M (MB/s), or raw bytes - Magnet links and torrent URLs are added without local file upload - Categories must exist before assignment (create via WebUI or API) --- ## 🔧 Agent Tool Usage Requirements **CRITICAL:** 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:** ```typescript ./skills/SKILL_NAME/scripts/SCRIPT.sh [args] true ```