Episodes at your pace.
Pacearr is a self-hosted Plex and Sonarr companion that keeps selected shows in an all-season-pilot rolling state.
It works with series that already exist in Sonarr: Pacearr imports Plex and optional Tautulli watch history, lets you enrol specific shows, and expands a season only when an enabled viewer watches that season's first episode.
- Lists and enrols shows already managed by Sonarr
- Keeps the first episode of every real season available as a pilot
- Expands a season when an enabled viewer starts that season's first episode
- Imports playback history from Plex and optionally Tautulli
- Polls active Plex sessions so season expansion can happen without waiting for a history import
- Can progressively return older seasons to pilot-only monitoring after viewers move on
- Records its actions in a user-visible history and retains structured application logs
Enrolled shows, active viewers, retained seasons, and reclaimed disk space, with recent activity and the next operational signals.
Un-enrolled Sonarr shows ranked by how much disk space enrolling them would free up.
- Plex sign-in with a manual-token fallback
- Sonarr integration for monitoring, searching, and optional episode-file cleanup
- Optional Tautulli history import for installations with richer local history
- Dry-run mode enabled by default, so every proposed Sonarr change can be reviewed safely
- Per-user progress, allowing multiple viewers to retain seasons that are still relevant
- Optional rolling-season Plex artwork that marks pilot-only seasons and restores the original artwork when they expand
- Scheduled reconciliation to recover from missed events and manual Sonarr changes
Pacearr maintains an all-season-pilot baseline for each enrolled show: the first episode of every real season remains monitored, while later episodes are unmonitored. When an enabled viewer watches a season's first episode, Pacearr expands that season, monitors it fully, and asks Sonarr to search for it.
Pacearr uses several background jobs:
- Plex session checks observe active episode playback
- History imports collect Plex and optional Tautulli watch history
- Full history reconciliation periodically recovers events that a source may have missed
- Rolling reconciliation brings enrolled shows back to the monitoring state implied by enabled viewers' progress
Together, these jobs make Pacearr responsive to new viewing activity while preserving a slower safety net for monitoring state.
- A Plex Media Server you manage
- A Plex account
- A Sonarr v3 instance with series you want Pacearr to manage
- Network access from Pacearr to Plex and Sonarr
- Tautulli is optional, but useful when it has more complete local playback history
docker run -d \
--name pacearr \
--network bridge \
-p 9302:9302 \
-v /opt/pacearr:/config \
--restart unless-stopped \
ghcr.io/migz93/pacearr:latestYou can then open http://localhost:9302 and complete setup in the browser.
services:
pacearr:
image: ghcr.io/migz93/pacearr:latest
container_name: pacearr
network_mode: bridge
restart: unless-stopped
ports:
- "9302:9302"
volumes:
- /opt/pacearr:/config
environment:
- TZ=UTCdocker compose up -dPacearr is configured through its web UI after first run. The main things you may want to adjust in your Docker setup before starting:
- Port — change the left side of
9302:9302to expose Pacearr on a different host port (e.g.8080:9302) - Data directory — change the left side of
/opt/pacearr:/configto store Pacearr's database, artwork backups, image cache, and logs wherever you prefer on your host - Timezone — set
TZto your preferred timezone if you do not want UTC
- Sign in with Plex and select the Plex server Pacearr should use
- Configure the Sonarr base URL and API key, then test the connection
- Optionally configure Tautulli if you want its playback history included
- Discover Plex users and enable the viewers whose progress should control season expansion
- Review a show and enrol it while Pacearr remains in dry-run mode
- Inspect the planned actions, then disable dry-run mode only when you are ready for Pacearr to update Sonarr
Dry-run mode is enabled by default. While it is enabled, Pacearr reads Sonarr and calculates the monitoring, search, artwork, and cleanup actions it would take, but it does not send mutating requests to Sonarr or Plex. Disable dry-run mode explicitly in Settings only after you have reviewed the proposed behaviour.
Pacearr does not add series to Sonarr, choose root folders, change quality profiles, or submit requests to other media-request applications. In live mode, it can monitor and unmonitor episodes, trigger searches, and—when cleanup is enabled—delete non-pilot episode files as part of its rolling-state maintenance. Its history and logs record those actions for review.
Only enabled Plex users can expand seasons or keep them from being cleaned up. Progressive cleanup is conservative: a season stays expanded while it remains relevant to any enabled viewer.
Pacearr was created with heavy AI assistance.
Claude, Codex, Leonardo.ai, and CodeRabbit were all used throughout the project for design exploration, implementation help, refactoring, review, explanation, and iteration. The intent is not to hide that. Pacearr has been built by combining hands-on product direction with a lot of AI-assisted development work.
Pacearr was shaped in part by studying projects that solve adjacent problems well, especially Sonarr, Tautulli, Hubarr, and Pulsarr.
Those projects were helpful references for thinking about media automation, background-job design, Plex integration patterns, logging, and operational workflows. Pacearr has its own scope, but it would be unfair not to acknowledge their influence.
| Sonarr | Tautulli | Hubarr | Pulsarr |
|
|
|
|


