{"id":43492377,"url":"https://github.com/helliott20/prunerr","last_synced_at":"2026-05-30T00:01:18.891Z","repository":{"id":334418677,"uuid":"1141297374","full_name":"helliott20/prunerr","owner":"helliott20","description":"Smart media library cleanup for Plex — automated rules, watch history analysis, Sonarr/Radarr/Overseerr integration, grace periods, and disk space reclamation. Docker \u0026 Unraid ready.","archived":false,"fork":false,"pushed_at":"2026-05-22T22:05:03.000Z","size":1414,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-22T23:39:47.410Z","etag":null,"topics":["automation","cleanup","disk-space","docker","homelab","jellyseerr","media-library","media-management","overseerr","plex","plex-media-server","radarr","seerr","self-hosted","sonarr","tautulli","unraid"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/helliott20.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-24T16:02:29.000Z","updated_at":"2026-05-22T22:05:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/helliott20/prunerr","commit_stats":null,"previous_names":["helliott20/prunerr"],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/helliott20/prunerr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helliott20%2Fprunerr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helliott20%2Fprunerr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helliott20%2Fprunerr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helliott20%2Fprunerr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/helliott20","download_url":"https://codeload.github.com/helliott20/prunerr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helliott20%2Fprunerr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33675019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","cleanup","disk-space","docker","homelab","jellyseerr","media-library","media-management","overseerr","plex","plex-media-server","radarr","seerr","self-hosted","sonarr","tautulli","unraid"],"created_at":"2026-02-03T10:15:03.482Z","updated_at":"2026-05-30T00:01:18.870Z","avatar_url":"https://github.com/helliott20.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/banner.svg\" alt=\"Prunerr — Prune what nobody watches. An intelligent media library cleanup tool for your homelab.\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eIntelligent media library cleanup for Plex, Sonarr, and Radarr\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://hub.docker.com/r/helliott20/prunerr\"\u003e\u003cimg src=\"https://img.shields.io/docker/pulls/helliott20/prunerr?style=flat-square\u0026color=0db7ed\" alt=\"Docker Pulls\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/helliott20/prunerr?style=flat-square\" alt=\"License\"\u003e\n  \u003ca href=\"https://github.com/helliott20/prunerr/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/helliott20/prunerr?style=flat-square\u0026color=brightgreen\" alt=\"Release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://forums.unraid.net/topic/196929-support-prunerr-media-library-cleanup-tool/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Unraid-Community%20App-orange?style=flat-square\" alt=\"Unraid\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/helliott20/prunerr/wiki\"\u003eWiki\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/helliott20/prunerr/wiki/Installation\"\u003eInstall\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/helliott20/prunerr/wiki/API-Reference\"\u003eAPI\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://forums.unraid.net/topic/196929-support-prunerr-media-library-cleanup-tool/\"\u003eUnraid Forum\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nIf you run a Plex server, you know the pain. Your library keeps growing, nobody watches half of it, and you're constantly running out of disk space. Prunerr sits between your Plex server and your *arr apps and figures out what's worth keeping.\n\nYou set up rules like \"delete movies nobody's watched in 6 months that are over 20GB\" and Prunerr handles the rest. Everything goes through a deletion queue first, so nothing gets removed without you knowing about it.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/dashboard-screenshot.png\" alt=\"Prunerr dashboard showing library stats, service health status for Plex, Sonarr, Radarr and Tautulli, storage overview, and scheduled scan information\" width=\"900\"\u003e\n\u003c/p\u003e\n\n## Features\n\n- **Rules Engine** \u0026mdash; 28 condition fields across quality, ratings, watch history, collections, and metadata. Three ways to build rules: templates, natural language, or a full nested condition editor with live preview. [More \u0026rarr;](https://github.com/helliott20/prunerr/wiki/Rules-Engine)\n\n- **Collections** \u0026mdash; Syncs movie collections from Radarr. Protect entire collections to prevent cleanup, or queue them for bulk deletion. [More \u0026rarr;](https://github.com/helliott20/prunerr/wiki/Collections)\n\n- **Smart Deletion** \u0026mdash; Grace periods, four deletion actions (unmonitor, delete files, full removal, etc.), Overseerr request resets, and a review queue. Nothing gets deleted without your say-so. [More \u0026rarr;](https://github.com/helliott20/prunerr/wiki/Deletion-Management)\n\n- **Dashboard** \u0026mdash; Library stats, storage trends, service health monitoring, upcoming deletions, and recommendations at a glance.\n\n- **Per-User Watch History** \u0026mdash; Integrates with Tautulli or Tracearr to track who watched what. Build rules around specific users' watching habits.\n\n- **API** \u0026mdash; Full REST API with key authentication for scripts, automation, and mobile apps like nzb360. [More \u0026rarr;](https://github.com/helliott20/prunerr/wiki/API-Reference)\n\n## Quick Start\n\n```bash\ndocker run -d \\\n  --name prunerr \\\n  -p 3000:3000 \\\n  -v /path/to/data:/app/data \\\n  -e PLEX_URL=http://your-plex-server:32400 \\\n  -e PLEX_TOKEN=your-plex-token \\\n  -e SONARR_URL=http://your-sonarr:8989 \\\n  -e SONARR_API_KEY=your-sonarr-api-key \\\n  -e RADARR_URL=http://your-radarr:7878 \\\n  -e RADARR_API_KEY=your-radarr-api-key \\\n  helliott20/prunerr:latest\n```\n\nAlso available via **Docker Compose** and the **Unraid Community Apps** store. See the [Installation guide](https://github.com/helliott20/prunerr/wiki/Installation) for full details.\n\n## Integrations\n\n| Service | Purpose | Required |\n|---------|---------|----------|\n| **Plex** | Media server \u0026mdash; library data, watch status | Yes |\n| **Sonarr** | TV show management | Recommended |\n| **Radarr** | Movie management, collections | Recommended |\n| **Tautulli** / **Tracearr** | Per-user watch history | One required |\n| **Overseerr** / **Seerr** | Request management | Optional |\n| **Unraid** | Server monitoring | Optional |\n| **Discord** | Notifications | Optional |\n\n## Mobile\n\nPrunerr works as a custom web app in [nzb360](https://nzb360.com/) on Android, or in any mobile browser. The UI is fully responsive. See the [Mobile Access guide](https://github.com/helliott20/prunerr/wiki/Mobile-Access).\n\n## Documentation\n\nFull docs are in the **[Wiki](https://github.com/helliott20/prunerr/wiki)**:\n\n- [Installation](https://github.com/helliott20/prunerr/wiki/Installation) \u0026mdash; Docker, Compose, Unraid\n- [Configuration](https://github.com/helliott20/prunerr/wiki/Configuration) \u0026mdash; Environment variables and service connections\n- [Rules Engine](https://github.com/helliott20/prunerr/wiki/Rules-Engine) \u0026mdash; Building and managing rules\n- [Collections](https://github.com/helliott20/prunerr/wiki/Collections) \u0026mdash; Protection and bulk actions\n- [Deletion Management](https://github.com/helliott20/prunerr/wiki/Deletion-Management) \u0026mdash; Queue, grace periods, actions\n- [API Reference](https://github.com/helliott20/prunerr/wiki/API-Reference) \u0026mdash; Endpoints and authentication\n- [Troubleshooting](https://github.com/helliott20/prunerr/wiki/Troubleshooting) \u0026mdash; Common issues\n\n## Support\n\n- **Unraid Forum:** [Support Thread](https://forums.unraid.net/topic/196929-support-prunerr-media-library-cleanup-tool/)\n- **GitHub Issues:** [Report a Bug](https://github.com/helliott20/prunerr/issues)\n- **Docker Hub:** [helliott20/prunerr](https://hub.docker.com/r/helliott20/prunerr)\n\n## License\n\nMIT License. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelliott20%2Fprunerr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhelliott20%2Fprunerr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelliott20%2Fprunerr/lists"}