Self-hosted · Open source · AGPL-3.0

Your media server just learned to run itself.

Discover and request movies, shows, and books. Get push notifications. Manage Radarr, Sonarr, Chaptarr, and your download clients. When downloads get stuck, Cantinarr diagnoses the cause and recommends the next step. You set the agent’s operating boundaries.

  • Discover
  • Request
  • Manage
  • Repair
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 — and keeps you posted with push notifications.

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 a personal Anthropic, OpenAI, or Gemini key or OpenAI (OAuth) link, or use an admin-funded provider granted per person. Every saved model and credential completes a small response test first. Personal overrides and included access stay visibly separate, so Cantinarr never surprises you by spending shared quota. “What should I watch tonight?” gets answers grounded in your library; the server-owned remediation agent always uses the admin shared provider, including a shared OpenAI OAuth connection, with an optional separately tested remediation model.

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. That inbound OAuth lets clients access Cantinarr; personal or shared OpenAI OAuth is a separate outbound ChatGPT sign-in. 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 container with a static Go API/web server and a pinned Codex helper, all on a single port. SQLite inside, personal and shared AI credentials 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.