They browse
Trending, popular, coming soon — a poster wall powered by TMDB and Trakt, proxied through your server so keys never touch a device.
Self-hosted · Open source · AGPL-3.0
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.
Free for your whole household. The server is one Docker container — browse the live demo →
How it works
Trending, popular, coming soon — a poster wall powered by TMDB and Trakt, proxied through your server so keys never touch a device.
One tap for the whole thing, or exactly the seasons and formats they want. Status reads like a person wrote it: Available Requested Downloading
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
An optional request queue, global or per person. Approve or deny straight from the push notification, with per-user rules for seasons and quality.
Stuck downloads explain themselves in plain English — sample file, un-extracted archive, permissions — with one-click fixes and full transparency.
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.
A Chaptarr module with per-format smarts: request the ebook, the audiobook, or both — owned-aware search, granted per user by an admin.
Availability is computed live from your arrs — never from a snapshot — and per-instance webhooks push imports, deletes, and adds into the app instantly.
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
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.
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.
Self-host it
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.
8585services:
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
Apps for iPhone and Android are launching soon — the server is ready tonight, and the demo is always open.