
A modern, self-hosted media request & management platform.
Radarr & Sonarr are the source of truth. Oscarr is the interface.

The idea · Core capabilities · Seerr API · Installation · Plugins · Contributing
Oscarr is a lightweight, plugin-first media request interface for Radarr and Sonarr.
It gives your users a clean way to request movies and shows without exposing the *arr admin panels. Authentication, routing, quality, notifications, and a polished UI are baked into the core — the rest grows through plugins.
If Seerr / Overseerr / Jellyseerr already fits your setup, keep using it. Oscarr is for people who want something more modular, hackable, and easier to extend around their own stack.
Oscarr sits on top of your existing media stack.
The philosophy:
What ships in the core, no plugin needed:
OSCARR_SECRET_KEY env var via HKDF-SHA256./api/v1/* so existing Seerr-aware tools can talk to Oscarr without a custom integration. See below.Oscarr exposes an experimental Seerr-compatible API layer at /api/v1/*, so third-party tools that already speak Overseerr / Jellyseerr / Seerr can point to Oscarr without waiting for a native Oscarr integration.
Tested clients:
Each external app gets its own revokable API key from Admin → Access → API Keys. Endpoints not yet implemented return a clean 501 Not Implemented so clients degrade gracefully instead of hanging.
Compatibility is best-effort and limited to the endpoints third-party clients commonly call (status, auth/me, search, request, media, movie/tv, settings, user). Oscarr is not affiliated with Overseerr, Jellyseerr or Seerr — this is interoperability, not a clone.
Generate a secret key (32-byte hex) — keep it safe, lose it = stored credentials unrecoverable:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
services:
oscarr:
image: ghcr.io/arediss/oscarr:latest
container_name: oscarr
restart: unless-stopped
network_mode: host
volumes:
- oscarr-data:/data
environment:
- JWT_SECRET=your_random_jwt_secret
- OSCARR_SECRET_KEY=your_64_hex_chars_key
volumes:
oscarr-data:
docker compose up -d
Open http://localhost:3456 and follow the setup wizard.
network_mode: hostlets Oscarr reach Radarr/Sonarr/Plex on the local network. IfOSCARR_SECRET_KEYis missing or malformed, the container exits at boot with a friendly message + a freshly-generated key you can copy-paste.macOS Docker Desktop caveat: containers can't reach LAN IPs even with
--network host. Use Colima locally, or deploy to a Linux host for end-to-end testing.
See docs/installation.md for bare-metal, dev mode, full env-var reference, and the project structure walkthrough.
Plugins are optional. The base app works out of the box: connect Radarr/Sonarr, configure your users, request media.
Plugins exist so Oscarr can grow around your own setup — think browser extensions: install what you need, ignore the rest.
| Plugin | What it does |
|---|---|
| Leonarr | Discord bridge: link accounts, search TMDB, submit requests with slash commands, DMs when media is ready. |
| Subscription | Per-user subscription tiers with automatic role changes and expiration notifications. |
| Communication | Broadcast markdown announcements with scheduled publishing, role targeting, severity levels. |
| qBittorrent Manager | View qBittorrent queue and transfer stats inside Oscarr. |
| Radarr Manager | Library browser, quality monitoring, releases, analytics, file management. |
| Sonarr Manager | Series browser, season/episode drill-down, releases, analytics, file management. |
| Support | Ticket system extracted from the core in 0.8.0 — users open tickets, admins reply. |
Discover and install from Admin → Plugins → Discover. Each install shows the manifest's requested capabilities so you can review what the plugin is allowed to do.
Building a plugin? See docs/plugins.md.
Published ghcr.io/arediss/oscarr images are keyless-signed by the GitHub Actions release workflow (Sigstore / cosign). Each signed manifest also carries an SPDX SBOM.
cosign verify ghcr.io/arediss/oscarr:latest \
--certificate-identity-regexp 'https://github.com/arediss/Oscarr/.github/workflows/release.yml@.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
Any image without a valid signature from this workflow is not an official Oscarr release.
Contributions welcome — bug reports, features, plugins, real-stack testing.
Before opening a large PR, please open an issue first so we can discuss the direction.
CONTRIBUTING.md — dev setup, conventions, PR expectationsCONTRIBUTORS.md — everyone who's shipped code to OscarrDevelopment workflow — This project uses Claude Code as a dev assistant for code reviews, security audits, brainstorming, documentation, and issue/PR management. All architecture decisions and implementation are made by the maintainers — Claude serves as a quality and productivity tool, much like a linter or a CI pipeline.
MIT
$ claude mcp add Oscarr \
-- python -m otcore.mcp_server <graph>