-
Notifications
You must be signed in to change notification settings - Fork 2
Home
This wiki documents ready-to-use qui workflows, grouped by media type. Each workflow is a .json file you can import directly into qui's Automations feature.
New to qui workflows? See the official Automations documentation for a full breakdown of conditions, actions, and how workflows are evaluated.
To import a workflow manually:
- Download the
.jsonfile you want. - In qui, go to Automations for the relevant instance.
- Click Import and select the file.
- Review the workflow, adjust any conditions or tracker patterns to match your setup, then enable it.
qui-sync is a companion tool that can automate the import and keep your workflows in sync with a repo. Instead of importing files one by one, you point qui-sync at this repository as a subscription source and it handles the rest — including preserving your own tracker lists, enabled state, and intervals on every update.
Warning
qui-sync is currently in early development and not yet ready for production use. Features are still being built, things may change, and there is a risk of unintended changes to your workflows. Always make a backup of your qui workflows before applying any subscription update.
For questions, help getting started, or to report issues with qui-sync, use the dedicated #qui-sync support channel on the TRaSH-Guides Discord. You can find it under the Community Apps category. Direct link to the channel.
These workflows apply to torrents in your Series category.
Tagging workflows label your torrents so other workflows (and you) can easily identify and act on them.
| File | What it does |
|---|---|
Tag noHL.json |
Tags any torrent that is not hardlinked with noHL. |
Tag noHL Tier 1.json |
Tags noHL Tier 1 torrents with ~Tier1-noHL-21. |
Tag noHL Tier 2.json |
Tags noHL Tier 2 torrents with ~Tier2-noHL-21. |
Tag noHL Tier 3.json |
Tags noHL Tier 3 torrents with ~Tier3-noHL-21. |
Tag Tier 1.json |
Tags Tier 1 torrents with Tier1. |
Tag Tier 2.json |
Tags Tier 2 torrents with Tier2. |
Tag Tier 3.json |
Tags Tier 3 torrents with Tier3. |
Tag Season Pack.json |
Tags season pack torrents with Season Pack. |
Tag Single Episodes.json |
Tags individual episode torrents with Episodes. |
Tag Min Seeds Not Met.json |
Tags torrents that do not meet the minimum seeder requirement. |
Tag problem cross-seeds.json |
Tags cross-seeds that have issues with ~problem_cross-seeds. |
Tag + Upload Limit Tier 2 (2 MBs).json |
Tags Tier 2 torrents with ~2MB/s and caps their upload speed at 2 MB/s once their ratio exceeds 2.0. |
Tag + Upload Limit Tier 3 (1 MBs).json |
Tags Tier 3 torrents with ~1MB/s and caps their upload speed at 1 MB/s once their ratio exceeds 2.0. |
Delete workflows automatically remove torrents that meet certain conditions, keeping your client tidy.
| File | What it does |
|---|---|
Delete noHL Tier 1.json |
Deletes noHL Tier 1 season packs after 21 days. If the torrent has 3 or more seeders, it keeps seeding instead of being deleted. |
Delete noHL Tier 2.json |
Deletes noHL Tier 2 torrents after 21 days. |
Delete noHL Tier 3.json |
Deletes noHL Tier 3 torrents after 21 days. |
Delete problem cross-seeds.json |
Deletes cross-seeds that have errors or issues. |
Delete stalled downloads.json |
Deletes downloads that are stuck and no longer making progress. |
Delete unregistered torrents.json |
Deletes torrents that are no longer registered on the tracker. |
Note
Why does "Delete noHL Tier 1" only target season packs? Individual episodes are intentionally left alone. When a tracker replaces separate episodes with a season pack, the episode torrents become orphaned and are cleaned up automatically by qui's Orphan Scan. Deleting episodes early could negatively affect your average seeding time.
These workflows help recover cross-seeds that have stopped or stalled unexpectedly.
| File | What it does |
|---|---|
Resume stopped cross-seeds (90%).json |
Resumes cross-seeds that are paused but have reached 90% or more completion. |
Force recheck stopped cross-seeds (<90%).json |
Triggers a data recheck on cross-seeds that are paused and below 90% completion. |
Resume If torrent gets Completed for no reason.json |
Resumes a torrent if qui incorrectly marks it as completed while it should still be seeding. |
These workflows apply to torrents in your Movies category. They mirror the Series category, minus the season pack–specific ones.
| File | What it does |
|---|---|
Tag noHL.json |
Tags any torrent that is not hardlinked with noHL. |
Tag noHL Tier 1.json |
Tags noHL Tier 1 torrents with ~Tier1-noHL-21. |
Tag noHL Tier 2.json |
Tags noHL Tier 2 torrents with ~Tier2-noHL-21. |
Tag noHL Tier 3.json |
Tags noHL Tier 3 torrents with ~Tier3-noHL-21. |
Tag Tier 1.json |
Tags Tier 1 torrents with Tier1. |
Tag Tier 2.json |
Tags Tier 2 torrents with Tier2. |
Tag Tier 3.json |
Tags Tier 3 torrents with Tier3. |
Tag Min Seeds Not Met.json |
Tags torrents that do not meet the minimum seeder requirement. |
Tag problem cross-seeds.json |
Tags cross-seeds that have issues with ~problem_cross-seeds. |
Tag + Upload Limit Tier 2 (2 MBs).json |
Tags Tier 2 torrents with ~2MB/s and caps their upload speed at 2 MB/s once their ratio exceeds 2.0. |
Tag + Upload Limit Tier 3 (1 MBs).json |
Tags Tier 3 torrents with ~1MB/s and caps their upload speed at 1 MB/s once their ratio exceeds 2.0. |
| File | What it does |
|---|---|
Delete noHL Tier 1.json |
Deletes noHL Tier 1 torrents after 21 days. If the torrent has 3 or more seeders, it keeps seeding instead of being deleted. |
Delete noHL Tier 2.json |
Deletes noHL Tier 2 torrents after 21 days. |
Delete noHL Tier 3.json |
Deletes noHL Tier 3 torrents after 21 days. |
Delete problem cross-seeds.json |
Deletes cross-seeds that have errors or issues. |
Delete stalled downloads.json |
Deletes downloads that are stuck and no longer making progress. |
Delete unregistered torrents.json |
Deletes torrents that are no longer registered on the tracker. |
| File | What it does |
|---|---|
Resume stopped cross-seeds (90%).json |
Resumes cross-seeds that are paused but have reached 90% or more completion. |
Force recheck stopped cross-seeds (<90%).json |
Triggers a data recheck on cross-seeds that are paused and below 90% completion. |
Resume If torrent gets Completed for no reason.json |
Resumes a torrent if qui incorrectly marks it as completed while it should still be seeding. |
Standalone Python scripts for additional tasks outside of qui's built-in Automations feature.
| Script | What it does |
|---|---|
qbittorrent_auto_tagger.py |
Automatically tags newly added torrents. Individual episode files are tagged with Episodes; season packs are tagged with Season. Useful for excluding individual episodes from cross-seeding. |
Tiers are personal preference groups — there is no single correct setup. A common approach:
- Tier 1 — Your most-preferred trackers, or those where you most want to build ratio.
- Tier 2 — Secondary trackers with moderate priority.
- Tier 3 — Lower-priority trackers, often with upload speed limits applied once a target ratio is reached.
You can move a tracker to a different tier at any time.
A torrent tagged noHL means its files are not hardlinked to your media library. This typically happens when a media manager like Sonarr or Radarr upgrades an episode or movie, or if Sonarr or Radarr can't create a hardlink — for example, when the torrent data and the media library are on different drives or filesystems.
Tip
More info for an optimal share and folder setup can be found in the TRaSH-Guides
Torrents tagged as noHL are candidates for cleanup after 21 days.
For multi-instance setups, see qui's
HARDLINK_SCOPE_CROSSfield in the Automations docs for accurate noHL detection across all instances.
Cross-seeding means adding the same content from a different tracker so you can seed it there without downloading it again. The cross-seed workflows here handle common edge cases:
- Problem cross-seeds — Torrents that have errors and need to be removed.
- Stopped cross-seeds — Torrents paused mid-download that need to be force-rechecked or resumed.
qui has built-in cross-seed awareness in its delete actions. For example, deleteWithFilesPreserveCrossSeeds removes a torrent from the client but keeps the files on disk if a cross-seed is still using them.
Before any delete workflow runs for real, you can test it safely using qui's built-in dry-run feature. In the Automations UI, open a workflow and click Dry-run now to see exactly which torrents would be affected without making any changes.