Promptarr AI release judge Part of the *arr crew: Watcharr Get early access

An AI that checks every Sonarr and Radarr grab.

Write your rules in plain English. Promptarr judges each release against them and swaps a bad one for a better release while the download is still running.

  • Docker and Unraid
  • Your AI key: Gemini, OpenAI, Anthropic, Ollama
  • One MCP server for the stack

Pre-release: the container image is not public yet, so access is by invitation on Discord.

Watch modeIllustrative example
Promptarr robot mascot: a teal robot with a chat-bubble head

Grabbed release flagged. Sonarr grabbed a German dub of an English show. Rule 2 says never keep a dub of an English show. A better release is being grabbed.

02:14:11 SONARR_GRAB  Example.Show.S02.GERMAN.DL.1080p.WEB.h264
02:14:12 CHECK        FAIL audio is German, show is English
02:14:13 SEARCH       season search, 6 releases checked
02:14:14 SWAP         grabbed Example.Show.S02.1080p.WEB-DL.h264
02:14:14              then removed and blocklisted the dub

What is Promptarr?

Promptarr is a self-hosted AI for the *arr stack. It watches every Sonarr and Radarr grab, checks it against rules you write in plain English, and swaps a bad release for a better one while the download is still running. It also gives any MCP client one server for the whole media stack.

Sonarr and Radarr pick releases by score. That goes wrong in ways a score cannot see: a German dub of an English show, a Turkish “DUAL” whose first track is not English, a season pack judged on its total size, a file whose audio is tagged und.

How judging works

Promptarr polls each service's history for new grabs. A webhook, if you set one, only makes it look sooner.

  1. Check

    Your rules are read once into a checklist (resolution, size per episode, audio, and so on). Code checks the grab against it. A grab that meets every item is kept, and no search or AI call runs.

  2. Search

    Otherwise the grab gets a real search through Sonarr or Radarr. A season search runs too, because Sonarr's episode search never returns season packs. Code checks every release the same way.

  3. Ask

    Only what code cannot settle goes to the AI, as narrow typed questions: an audio language the release does not list, a rule the checklist cannot express, a tie between at most 3 releases.

  4. Swap

    In act mode the better release is grabbed first. Only then is the old one removed and blocklisted. If the grab fails, the old download carries on.

When a file lands, its real audio is read with mediainfo or ffprobe. und counts as unknown, never as wrong.

Start in watch mode

Watch mode does all of the judging except the swap, and logs what it would have done. Read the decision log for a few days. When you agree with it, turn on writes for Sonarr and Radarr and switch to Act.

  • Writes are off until you turn them on, per service.
  • Budgets for searches per hour, AI calls per day and swaps per item per day.
  • A grab is never checked twice, and Promptarr never re-checks its own swap.
  • Out of AI quota or provider overloaded: the grab waits for a later pass rather than being lost.

Dry runs

The Dry runs page judges past grabs again with the same code, in any mode, and changes nothing. It only reads, searches and asks the AI, on the same budgets.

Each case shows what Promptarr would do beside the real audio, a second reviewer's call and your own Agree or Disagree.

A rule and a verdict

Rules are plain English. The AI picks an option and a confidence and writes no reason: the reasons are built from the checklist's numbers, and every decision is in the log on the Autopilot page with the reason and what it cost.

Both samples are illustrative.

Rules for Sonarr and Radarr grabs:
- The first audio track must be English,
  unless the show or film is originally
  in another language.
- Never keep a dub of an English show.
- Judge a season pack on its total size
  divided by the episodes it holds.
FAIL Example.Show.S02.GERMAN.DL.1080p
  rule: never keep a dub of an English show
  audio: German first, English not present
  action: swap (act mode) / log only (watch mode)

The services it speaks to

It gives any MCP client, such as Claude Desktop, one server for the whole media stack. There are 39 tools, and you never name them: you ask, and the model picks.

Bring your own AI

You bring the key: Gemini, OpenAI or anything compatible, Anthropic, or a local Ollama. Or skip the key and sign in with your ChatGPT plan. Code settles everything it can first, so the AI sees only what code cannot decide.

What the AI never gets

It never sees a link or an indexer key. Everything an indexer returns is fenced as data, and an option it invents counts as no answer.

How it differs from Recyclarr, Profilarr and TRaSH Guides

Those set quality profiles and custom formats ahead of time. Promptarr judges each grab after it happens, against rules you write in plain English.

They are good at what they do, and they work well together: Promptarr can talk to Profilarr, and its MCP guide carries the TRaSH Guides quality profiles and custom formats.

Self-hosted: Docker and Unraid

Promptarr runs next to your Sonarr and Radarr in Docker. The repository ships a compose file and an Unraid template. Open the web page on port 6060, choose a username and password, press Find my services, then write your rules on the Autopilot page.

It is not meant to face the internet. If it has to leave your LAN, put it behind a reverse proxy with TLS.

Pre-release: the container image is not public yet. Ask for early access on Discord.

services:
  promptarr:
    image: ghcr.io/lunarwerx/promptarr:latest
    container_name: promptarr
    ports:
      - 127.0.0.1:6060:6060
    volumes:
      - ./config:/config
    restart: unless-stopped

Questions

What is Promptarr?

Promptarr is a self-hosted AI for the *arr stack. It watches every Sonarr and Radarr grab, checks it against rules you write in plain English, and swaps a bad release for a better one while the download is still running. It also gives any MCP client one server for the whole media stack.

Does Promptarr replace Sonarr and Radarr?

No. It runs next to normal Sonarr and Radarr and talks to them through their public API. They have no plugin system, so there is nothing to install inside them.

Will it change my library straight away?

No. Writes are off until you turn them on, per service. Watch mode does everything except the swap and logs what it would have done, so start there and read the decision log for a few days.

Which AI can I use?

Bring your own key for Gemini, OpenAI or anything OpenAI-compatible, Anthropic, or a local Ollama. Or skip the key and sign in with your ChatGPT plan. A free Gemini key judges about 10 grabs a day on Flash, so pick a Flash-Lite model or a paid key.

Does the AI see my links or indexer keys?

No. It never sees a link or an indexer key. Code settles what it can, and only narrow typed questions go to the AI, which picks an option and a confidence. Everything an indexer returns is fenced as data, so a release named "ignore your rules" stays a release name.

How is it different from Recyclarr, Profilarr and TRaSH Guides?

Those set quality profiles and custom formats ahead of time. Promptarr judges each grab after it happens, against rules you write in plain English, and can swap it. They work well together: Promptarr can talk to Profilarr, and its MCP guide carries the TRaSH Guides profiles and custom formats.

How do I run it, and can I try it today?

Promptarr runs in Docker, with an Unraid template in the repository, and serves its web page on port 6060. It is pre-release: the container image is not public yet, so ask for early access on Discord.

What licence is it under?

Promptarr is MIT licensed. The licence notices of the code it is built on are in the repository's NOTICE and LICENSE files.

Try it in watch mode

Nothing changes in your library until you say so.

Get early access