qbit_manage

qbit_manage

Docker app from bobokun's Repository

Overview

qbit_manage is a tool to manage your qBittorrent instance. It offers a range of features to automate your torrenting workflow, including:

  • Category and Tag Management: Automatically update categories based on save paths and add tags based on tracker URLs.
  • Torrent Cleanup: Remove unregistered torrents, orphaned files, and torrents without hardlinks.
  • Share Limits: Apply advanced share limits based on torrent groups, tags, and categories.
  • Health Checks: Recheck paused torrents and tag torrents with tracker errors.
  • Scheduler: Run tasks on a schedule or on-demand.
  • Web UI: A modern web interface to configure and manage qbit_manage, and trigger commands manually.

qBit Manage

GitHub release (latest by date) GitHub commits since latest release (by SemVer) Docker Image Version (latest semver) PyPi (latest semver) Github Workflow Status pre-commit.ci status Ghcr packages Docker Pulls Sponsor or Donate Ruff

This is a program used to manage your qBittorrent instance such as:

  • Tag torrents based on tracker URLs
  • Apply category based on save_path to uncategorized torrents in category's save_path
  • Change categories based on current category (cat_change)
  • Remove unregistered torrents (delete data & torrent if it is not being cross-seeded, otherwise it will just remove the torrent)
  • Recheck paused torrents sorted by lowest size and resume if completed
  • Remove orphaned files from your root directory that are not referenced by qBittorrent
  • Tag any torrents that have no hard links outside the root folder (for multi-file torrents the largest file is used)
  • Apply share limits based on groups filtered by tags/categories and allows optional cleanup to delete these torrents and contents based on maximum ratio and/or time seeded. Additionally allows for a minimum seed time to ensure tracker rules are respected and minimum number of seeders to keep torrents alive.
  • RecycleBin function to move files into a RecycleBin folder instead of deleting the data directly when deleting a torrent
  • Built-in scheduler to run the script every x minutes. (Can use --run command to run without the scheduler)
  • Webhook notifications with Notifiarr and Apprise API integration

Supported qBittorrent Versions

We rely on qbittorrent-api to interact with qBittorrent.

Generally expect new releases of qBittorrent to not immediately be supported. Support CANNOT be added until qbittorrent-api adds support for the version. Any material changed and impact must then be assessed prior to Qbit Manage supporting it.

Version bumps are automated — no issue or PR needed. Renovate watches qbittorrent-api on PyPI and always auto-merges its updates (major, minor, patch — see .github/renovate.json) as soon as a new release is 3+ days old. Merging that bump changes pyproject.toml, which triggers CI (update-supported-versions.yml) to refresh SUPPORTED_VERSIONS.json and the badges below — the whole chain runs without a human touching it. Issues asking us to "add support for qBittorrent vX.Y" will be auto-closed and point back here; if qbit_manage still doesn't work on a version already shown as supported below, that's a real bug — please file one.

Master

master - qBittorrent version

master - qbittorrent-api version

Develop

develop - qBittorrent version

develop - qbittorrent-api version

Getting Started

Check out the wiki for installation help

  1. Install qbit_manage either by installing Python 3.10+ on the localhost and following the Local Installation Guide or by installing Docker and following the Docker Installation Guide or the unRAID Installation Guide.
  2. Once installed, you have to set up your Configuration by create a Configuration File filled with all your values to connect to your qBittorrent instance.
  3. Please refer to the list of Commands that can be used with this tool.

Usage

To run the script in an interactive terminal with a list of possible commands run:

python qbit_manage.py -h

Support

  • If you have any questions or require support please join the Notifiarr Discord and post your question under the qbit-manage channel.
  • If you're getting an Error or have an Enhancement post in the Issues.
  • If you have a configuration question post in the Discussions.
  • Pull Request are welcome but please submit them to the develop branch.

Install qbit_manage on Unraid in a few clicks.

Find qbit_manage in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for qbit_manage Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/stuffanthings/qbit_manage:latest
Last Updated2026-07-15
First Seen2025-08-28

Runtime arguments

Web UI
http://[IP]:[PORT:8181]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

PortPorttcp
Target
8181
Default
8181
Value
8181
Root_DirPathrw

Container Path: /Same/path/as/qbittorrent/downloads/

Target
/Same/path/as/qbittorrent/downloads/
Default
/mnt/user
Value
/mnt/user
QBT_CONFIG_DIRVariable

This is used to specify the configuration directory. It will treat all YAML files in this directory as valid configs.

Default
/config
Value
/config
QBT_LOGFILEVariable

This is used if you want to use a different name for your log file. Example: tv.log

Default
qbit_manage.log
Value
activity.log
QBT_RUNVariable

Run without the scheduler. Script will exit after completion.

Default
False|True
Value
False
QBT_SCHEDULEVariable

Schedule to run every x minutes. (Default set to 30)

Default
30
Value
30
QBT_WEB_SERVERVariable

Set to true to enable web API and web UI

Default
True|False
Value
true
QBT_PORTVariable

Web API port (default: 8181)

Default
8181
Value
8181
QBT_RECHECKVariable

Recheck paused torrents sorted by lowest size. Resume if Completed.

Default
False|True
Value
False
QBT_CAT_UPDATEVariable

Use this if you would like to update your categories.

Default
False|True
Value
False
QBT_TAG_UPDATEVariable

Use this if you would like to update your tags. (Only adds tags to untagged torrents)

Default
False|True
Value
False
QBT_TAG_TRACKER_ERRORVariable

Use this if you would like to tag torrents that do not have a working tracker.

Default
False|True
Value
False
QBT_SHARE_LIMITSVariable

Use this to help apply and manage your torrent share limits based on your tags/categories.

Default
False|True
Value
False
QBT_REM_UNREGISTEREDVariable

Use this if you would like to remove unregistered torrents. (It will the delete data & torrent if it is not being cross-seeded, otherwise it will just remove the torrent without deleting data)

Default
False|True
Value
False
QBT_REM_ORPHANEDVariable

Use this if you would like to remove orphaned files from your root_dir directory that are not referenced by any torrents. It will scan your root_dir directory and compare it with what is in qBittorrent. Any data not referenced in qBittorrent will be moved into /data/torrents/orphaned_data folder for you to review/delete.

Default
False|True
Value
False
QBT_TAG_NOHARDLINKSVariable

Use this to tag any torrents that do not have any hard links associated with any of the files. This is useful for those that use Sonarr/Radarr that hard links your media files with the torrents for seeding. When files get upgraded they no longer become linked with your media therefore will be tagged with a new tag noHL. You can then safely delete/remove these torrents to free up any extra space that is not being used by your media folder.

Default
False|True
Value
False
QBT_SKIP_CLEANUPVariable

Use this to skip cleaning up Recycle Bin/Orphaned directory.

Default
False|True
Value
False
QBT_DRY_RUNVariable

If you would like to see what is gonna happen but not actually move/delete or tag/categorize anything.

Default
True|False
Value
False
Appdata Config PathPathrw

Container Path: /config

Target
/config
Default
/mnt/user/appdata/qbit_manage
Value
/mnt/user/appdata/qbit_manage
QBT_LOG_LEVELVariable

Change the ouput log level.

Default
INFO
Value
INFO
QBT_DIVIDERVariable

Character that divides the sections (Default: '=')

Default
=
Value
=
QBT_WIDTHVariable

Screen Width (Default: 100)

Default
100
Value
100