GPL-3.0🖥️ Self-hostable
Cleanuparr
Cleanuparr is an advanced download manager and queue cleaner for the Servarr ecosystem. It sits next to Sonarr, Radarr, Lidarr, Readarr, Whisparr, Sportarr and LazyLibrarian, and talks directly to the download clients qBittorrent, Transmission, Deluge, µTorrent, rTorrent and SABnzbd to remove downloads that are stalled, stuck in metadata, too slow, failing to import or blocked as malware — then triggers a fresh search so the queue heals itself. Beyond cleanup it also hunts for missing content and quality upgrades across your libraries. Latest release is v2.10.10 (14 October 2026); it is free software under the GPL-3.0.
Key Features
- Strike system instead of instant deletion — A download that is stalled (0 download speed), stuck downloading metadata, failing to import or errored receives a strike on each job run, and only a configurable maximum number of strikes (0 disables the rule, minimum 3 when enabled) gets it removed and blocked.
- Malware and blocklist filtering — A Malware Blocker job runs every five minutes, matches the files inside each queued download against community blacklists and whitelists, and when every file is unwanted it removes the download from the *arr queue, deletes it from the client and re-searches — the answer to the malicious
.lnk/.zipx releases the project was written for. A companion Blacklist Sync job keeps qBittorrent’s Excluded file names setting in step with the same list, hourly.
- Failed-import cleanup — Detects downloads the arrs cannot import (title mismatch, no eligible files, unusable path, unexpected episodes) and removes and blocks them, with include/exclude pattern modes so your own edge cases are left alone.
- Slow download management — Removes downloads below a minimum download speed or above a maximum estimated completion time, so one dead torrent cannot pin your queue for days.
- Seeker: missing content and upgrades — Proactively searches your Radarr and Sonarr libraries for missing items, for quality upgrades where a profile’s cutoff was not met, and for custom-format score upgrades, with six selection strategies (balanced weighted, oldest first, newest first, random and two weighted variants), per-app active-download limits, a post-release grace period and a minimum cycle time per item.
- Seeding and orphaned-download cleanup — The Download Cleaner (hourly) stops or deletes downloads that have seeded longer than you allow, changes the category of downloads with no hardlinks, and understands cross-seed so shared data is not thrown away.
- Orphaned files scanner — Scans configured directories for files and folders no active torrent claims, moves them to a dedicated orphaned directory for review, and can purge them automatically.
- Ignore rules for everything you care about — Skip torrent hashes, qBittorrent tags and categories, Deluge labels, Transmission categories, µTorrent/rTorrent labels, tracker domains or whole download clients; private torrents can be ignored entirely or protected from deletion.
- Dry run mode — Logs the actions it would take as
[DRY RUN] without removing downloads, issuing strikes or triggering searches — the safe way to validate a new rule set before it touches your queue.
- Notifications and operational endpoints — Alerts on strikes, removals, cleaned downloads, category changes, forced imports and triggered searches through Apprise, Discord, Gotify, ntfy, Notifiarr, Pushover or Telegram, plus
/health, /health/ready and /health/detailed endpoints for Docker healthchecks and Kubernetes probes. SQLite is the default database and PostgreSQL is supported.
Why Use Cleanuparr?
A media stack is only as good as its queue. One dead torrent, one fake release or one download Sonarr refuses to import is enough to stall imports, and the usual fix is to open the download client and clean up by hand — again and again. Cleanuparr automates that judgement rather than reacting to a single bad minute: the strike system tolerates a temporarily slow download, the blocklist logic catches releases that should never have been grabbed, and every removal is paired with a new search so the missing episode or film is fetched again. Because it is a self-hosted service reading your own *arr APIs and download clients, nothing has to be exposed to a third party; run it in dry-run mode first and it will tell you exactly what it would have done.
Use Cases
- Keeping a Jellyfin, Plex or Emby library’s *arr queues clean without manual babysitting.
- Blocking malware releases and their returning torrent hashes automatically instead of noticing them days later.
- Filling gaps and upgrading quality across large Radarr/Sonarr libraries that never reach their profile cutoffs.
- Freeing disk space from torrents that seeded long enough and from orphaned files no torrent references any more.
Platform
Self-hosted web application on port 11011 — official Docker image (ghcr.io/cleanuparr/cleanuparr), Windows installer and portable build, macOS, Linux and an Unraid Community Applications template; SQLite by default or PostgreSQL, with base-path support for reverse proxies.
Licence
GPL-3.0 (GNU General Public License v3.0) — source at github.com/Cleanuparr/Cleanuparr
Website
cleanuparr.github.io/Cleanuparr · github.com/Cleanuparr/Cleanuparr
Related Tools
- qBittorrent — the download client Cleanuparr most often manages.
- Bazarr — subtitle management for the same Sonarr and Radarr libraries.
- Configarr — keeps custom formats and quality profiles consistent on Sonarr and Radarr.
Views: 0