Reaper Scythe Labs
winget install --id=ScytheLabs.Reaper -e Finds unwatched media in your Plex library and safely removes it via Sonarr and Radarr.
winget install --id=ScytheLabs.Reaper -e Finds unwatched media in your Plex library and safely removes it via Sonarr and Radarr.
<img src="docs/media/wordmark-light.svg" width="360" />
Grave decisions, clearly explained.
Reaper finds media nobody watches: things requested and never played, shows whose old seasons no one returns to, and low-rated files quietly eating disk. It explains why it thinks each item is expendable, and removes it safely through Sonarr and Radarr. It reads watch history from Tautulli, requests from Seerr, and refreshes Plex when it is done.
📖 Read the manual for install, configuration, policy tuning, and the safety model in full.
> Status: in development. Deletion is implemented and tested, but it ships off: a new > install can only scan, score and explain until you deliberately arm it. Expect rough edges, > and read the install guide > before you point it at a library you care about.
✓ Unwatched for 5 years, 7 months, past the 3 years Reaper waits. It
explains the keeps as well as the deletes.What makes it different covers these in full, including the ones that ship switched off.
Read the documentation to install and run Reaper:
https://docs.scythelabs.dev/getting-started/install

Reaper deletes irreplaceable data from a server other people depend on. Every ambiguity resolves toward keeping the file.
> The Plex token Reaper stores grants full administrative control of your Plex account, > including permanent deletion. Treat Reaper's database as equivalent to your Plex password. > It's encrypted at rest and redacted from logs.
How a delete is kept safe walks the whole path through.
This is a hobby project. Know that before you point it at a library you care about.
I work in tech and I've been writing Python for over ten years. Software engineering isn't my job title. Reaper exists because I wanted it and had the evenings to build it.
A lot of this codebase was written with AI assistance. I steer the work, read what comes back, and decide what ships. The architecture, the safety model, and the bar for what's good enough are all mine.
You're trusting this program with files you can't get back. Safety comes first here, and the design choices that follow from that are on purpose. If you think one of them is wrong or you see a better way, tell me. I'd rather hear it so we can make Reaper better.
Setup instructions, the verification gates, commit conventions, and the AI policy are in CONTRIBUTING.md.
Translations happen on Weblate, which opens the pull requests here. No git needed.
Bug reports and questions are welcome: open an issue or start a discussion. Security problems go through SECURITY.md, which opens a private report.
The manual's pages live in manual/; the ones under Policy and Safety are
generated from the app's own help pages, so edit those in
frontend/src/docs/content/ and run
npm --prefix frontend run gen-manual.
AGPL-3.0-or-later.