Self-hosted · Open source · AGPL-3.0

The front door to your media server.

Your household browses what's trending, taps Request, and gets a ping when it's ready to watch. Cantinarr choreographs Radarr, Sonarr, and Chaptarr behind the scenes — no API keys, no TVDB headaches, no confusion.

Download on theApp Store soon Get it onGoogle Play soon

Free for your whole household. The server is one Docker container — browse the live demo →

How it works

From “can you add this?” to movie night.

01

They browse

Trending, popular, coming soon — a poster wall powered by TMDB and Trakt, proxied through your server so keys never touch a device.

02

They request

One tap for the whole thing, or exactly the seasons and formats they want. Status reads like a person wrote it: Available Requested Downloading

03

It just lands

Cantinarr adds it to the right arr with the right IDs, quality profile, and folder — then pushes a notification the moment it's ready to watch.

The good stuff

Family and friends up front. Ops in the back.

Approvals without the argument

An optional request queue, global or per person. Approve or deny straight from the push notification, with per-user rules for seasons and quality.

The Import Doctor is in

Stuck downloads explain themselves in plain English — sample file, un-extracted archive, permissions — with one-click fixes and full transparency.

An assistant behind the bar

Bring Anthropic, OpenAI, or Gemini. “What should I watch tonight?” gets answers from your own library — and it can request, search, and fix things for you.

Books belong here too

A Chaptarr module with per-format smarts: request the ebook, the audiobook, or both — owned-aware search, granted per user by an admin.

Never a stale answer

Availability is computed live from your arrs — never from a snapshot — and per-instance webhooks push imports, deletes, and adds into the app instantly.

Plays nice with Plex

Link your Plex account once and server invites are one tap — or fully automatic. Tautulli shows who's watching, what's transcoding, and the all-time stats.

MCP inside

Claude has a barstool.

Your Cantinarr server is an MCP server too: 26 tools with OAuth discovery, browser and passkey login, and per-tool toggles in Settings. The built-in assistant, the remediation agent, and any MCP client all pour from the same tap.

Deep *arr control comes along for the ride — series → season → episode drill-down, batch searches, interactive release grabs, and one queue across SABnzbd, qBittorrent, NZBGet, and Transmission.

Movie night request — can you add the new Dune and tell me when it's ready?
Cantinarr · request_movie

Done — it's requested in 4K and already grabbing a release. I'll ping you the moment it lands on the server.

Claude, connected to a self-hosted Cantinarr over MCP.

Self-host it

Runs on the shelf in your closet.

One Go binary serving the API and web UI on a single port. SQLite inside, secrets AES-256-GCM encrypted at rest, happy on a Raspberry Pi or a NAS.

docker-compose.yml
services:
  cantinarr:
    image: ghcr.io/windoze95/cantinarr:latest
    ports:
      - "8585:8585"
    volumes:
      - ./config:/config
    environment:
      # optional: zero-config push notifications
      - CANTINARR_PUSH_GATEWAY_URL=https://push.julian.codes
    restart: unless-stopped
The Cantinarr neon sign

Pull up a stool, space pirate.

Apps for iPhone and Android are launching soon — the server is ready tonight, and the demo is always open.