Self-hosted · free · MIT

“I requested this.
Where did it die?”

Your request went into Seerr and never came out. The answer is somewhere across five web UIs, and the symptom almost never matches the cause. Sleutharr follows that one request the whole way and tells you exactly where it broke.

Reads from your services. Changes nothing unless you click a button and confirm.

The Sleutharr dashboard listing stuck requests, each with a plain-English verdict and a suggested next step.

The symptom is never the cause

Sonarr says
“no results found”
because
the series was never set to monitored, so it has never once searched.
Your downloader says
“100% complete”
because
the import failed on a hardlink error the *arr logged and nothing surfaced.
Radarr says
“imported”
because
Plex mounts that folder at a different path and never saw the file.

Each of those takes twenty minutes of clicking between apps to work out. Sleutharr gives you one sentence.

One verdict, with the evidence

Every request gets a single answer in plain English, the timeline it was derived from, and a link straight to the app that owns the fix. Not a dashboard of graphs — a conclusion.

Never reached your libraryThe hand-off from your request manager to Sonarr/Radarr silently failed.
Not being watched forIt exists, but monitoring is off, so nothing will ever download.
Download is stuckIn your client with no seeds, or no progress for hours.
Downloaded, but could not be filed awayFinished, but the import is blocked. Quotes the actual error.
Folder paths do not line upIt is in Plex, at a path your *arr does not use. One click fixes it.
Lower quality than you asked forPlayable, so nothing flagged it — but it is below your cutoff.
Not out yetNothing is wrong. It simply has not been released.
A single request showing its verdict, the recommended action, and a timeline of every event across all services.

It sets itself up

Add your request manager and press Find my other services. It reads your Sonarr and Radarr instances out of it — addresses, API keys, and the two settings nobody can guess — then reads your download clients out of those. For Plex you sign in with your Plex account and pick a server; there is no token to hunt down.

Request managers

Seerr, Overseerr, Jellyseerr, Ombi

Libraries

Sonarr, Radarr — any number, including 4K splits

Download clients

qBittorrent, Transmission, Deluge, SABnzbd, NZBGet

Media servers

Plex, Jellyfin, Emby

And it can fix some of it

Where there is a single obvious fix, there is a button for it — removing a stuck download and blocklisting the release, retrying a failed hand-off, adding the folder mapping it worked out, or asking your indexers why nothing is being grabbed and showing the exact reason each release was rejected.

Nothing runs on its own. Every action needs a click and a confirmation that spells out what will happen. There is deliberately no auto-remediation: these verdicts are heuristics over five services that disagree with each other, they will occasionally be wrong, and a wrong verdict wired to a delete key costs you the download. A wrong badge costs you ten seconds.

Install

Unraid

Docker → Add Container, then:

Repositorydsopinka123/sleutharr:latest
Port80808080
Path/config/mnt/user/appdata/sleutharr
VariablesPUID=99, PGID=100, TZ

Full step-by-step guide →

Docker

docker run -d --name sleutharr \
  -p 8080:8080 \
  -e PUID=1000 -e PGID=1000 \
  -e TZ=Etc/UTC \
  -v ./config:/config \
  dsopinka123/sleutharr:latest

Also on GHCR as ghcr.io/dsopinka/sleutharr. Then open http://your-server:8080.

Worth knowing before you install

This is early software. It works, it has a test suite, and it runs against real setups — but it has been used by a small number of people, so it will meet combinations it has not seen. Ombi, Jellyfin, Emby, NZBGet, Transmission and Deluge are built to their documented APIs but have not yet been pointed at a live instance.

If a verdict looks wrong, that is the useful bug report — nearly every bug found so far was exactly that. It never touches your media files, and it never changes anything in Sonarr, Radarr or Plex without you confirming it.