Remote Media Command Suite
Built for Linux Mint servers. Accessible from any device on your LAN.
Torrents, Usenet, auto-renaming, VPN, FFmpeg, Discord, and more.
Features • Architecture • Quick Start • Client • Docs • Packing
| Torrent Search | Nyaa.si, YTS, EZTV, AnimeTosho, TorrentGalaxy, 1337x (with optional Cloudflare solver) |
| Usenet / NZB | SABnzbd integration, NZBGeek search support |
| Auto Renamer | guessit-powered parser, 100+ release tag stripping, Plex-compliant paths |
| FFmpeg Post-Process | Default English audio/subtitle tracks, strip unwanted languages, detect naming variations like MediaHub-eng |
| LAN File Sharing | Drag & drop upload from any device to Plex library folders, with auto-categorize WiFi upload endpoint |
| URL Downloader | Direct HTTP downloads, Rapidgator (premium + free), batch queue |
| Batch Queue | Select multiple torrents, queue up to 50 items, auto-process |
| Watch Folder Auto-Categorize | Drop files into a folder and Plexarr auto-detects type (TV, movie, anime, music) and sorts to Plex paths |
| VPN Control | Windscribe CLI integration — connect, disconnect, status from web UI |
| Remote View | SocketIO JPEG screen stream, click-to-control mouse, keyboard input |
| Metadata | TMDB (movies + TV), Jikan v4 (anime), TVDB (seasons), cover art + backdrops |
| Discord | Webhook notifications, Doplarr-style bot with slash commands |
| Prometheus / Grafana | Custom metrics endpoint, pre-built dashboard JSON |
| Tautulli / Overseerr | Proxy status and activity endpoints |
| System Tray | Minimize to tray, notifications, quick actions |
| Cross-Platform | Server: Linux. Client: Windows, macOS, Linux. No Node.js or Electron. |
graph TD
A[Phone / Tablet] -->|HTTP 8080| D[WiFi Router]
B[Laptop / PC] -->|HTTP 8080| D
C[Discord Bot] -->|REST API| D
D -->|LAN| S[Linux Mint Server]
S --> E[Plexarr Flask Server]
E -->|SocketIO| F[Screen Stream]
E -->|REST| G[qBittorrent]
E -->|REST| H[SABnzbd]
E -->|REST| I[TMDB / Jikan / TVDB]
E -->|Webhook| J[Discord]
E -->|Metrics| K[Prometheus]
E -->|CLI| L[Windscribe VPN]
E -->|Proxy| M[Cloudflare Solver]
E -->|Download| N[Rapidgator / URLs]
E -->|Post-Process| O[FFmpeg]
G -->|Files| P[Plex Library Folders]
H -->|Files| P
O -->|Default Tracks| P
git clone https://github.com/Compromisee/Plexarr.git
cd Plexarr/server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.pyServer binds to 0.0.0.0:8080.
Open a browser and go to http://your-server-ip:8080.
Or build the standalone desktop client:
cd Plexarr/client
pip install -r requirements.txt
python launcher.py --server auto --verboseThe Plexarr Client is a standalone desktop app built with PyWebView and JetBrains Mono.
- System Tray — Minimize to tray, quick search, quick quit
- Auto-Reconnect — Monitors server health, reconnects automatically
- Server Discovery — Scans your LAN for Plexarr servers automatically
- Debug Console — Built-in JS console for the webview (F12)
- Keyboard Shortcuts — Ctrl+Shift+S (search), Ctrl+Shift+M (mini), Ctrl+Shift+P (toggle), F12 (debug)
- Mini Mode — Floating window for monitoring torrents
- Multi-Server Profiles — Switch between multiple Plexarr servers
- Portable Mode — Store config next to the executable
- Offline Cache — Browse cached results when offline
- Screenshot — Capture the client window instantly
- Auto-Updater — Check for new releases on startup
- Theme Support — Dark, light, system themes
- Import/Export Config — Move settings between machines
- Notification Sounds — Audio alerts for download completions
- Bandwidth Display — Live download/upload speed in tray tooltip
- Quick Actions Panel — Keyboard-accessible command palette
- Profile Switching — One-click server switching
See Packing.md for detailed build instructions.
cd client
pyinstaller --onefile --windowed --name PlexarrClient --icon=assets/icon.ico main.pycd client
pyinstaller --onefile --windowed --name PlexarrClient --icon=assets/icon.icns main.pycd client
pyinstaller --onefile --windowed --name PlexarrClient --icon=assets/icon.png main.pyOr build an AppImage:
python -m nuitka --standalone --onefile --linux-icon=assets/icon.png main.pyFull documentation is hosted on GitHub Pages:
- Home — Overview & architecture
- Setup Wizard — Step-by-step configuration
- LAN & WiFi — Server detection & file sharing
- Features — Complete feature reference
- API Docs — Full REST/WebSocket API reference
- Configuration — Config keys & security
- Integrations — Discord, Grafana, Tautulli, etc.
- Troubleshooting — Common issues & fixes
All server settings live in server/config.json. Key fields:
| Key | Default | Description |
|---|---|---|
server.host |
0.0.0.0 |
Bind address |
server.port |
8080 |
HTTP port |
server.verbose |
false |
Verbose logging |
paths.tv |
/media/plex/TV Shows |
Plex TV library |
paths.movies |
/media/plex/Movies |
Plex movie library |
paths.anime |
/media/plex/Anime |
Plex anime library |
qbittorrent.host |
http://localhost:8080 |
qBittorrent Web UI |
sabnzbd.host |
http://localhost:8080 |
SABnzbd API URL |
tmdb.api_key |
"" |
Free from TMDB |
discord.webhook_url |
"" |
Discord server webhook |
vpn.enabled |
false |
Enable Windscribe control |
cloudflare_solver.enabled |
false |
Enable Cloudflare bypass |
ffmpeg.enabled |
true |
Auto-process downloads |
url_downloader.rapidgator.premium |
false |
Rapidgator premium mode |
batch_download.max_queue |
50 |
Max batch items |
naming.variations |
[...] |
Custom naming groups to detect |
Edit via the Settings tab in the web UI or directly in the JSON file.
See Packing.md for complete instructions on building executables for:
- Windows —
.exewith PyInstaller or Nuitka - macOS —
.appbundle with PyInstaller or Nuitka - Linux — Binary or AppImage
- Server — systemd service, LaunchAgent, or NSSM
Includes CI/CD GitHub Actions workflow for automated builds.
- LAN Only — Designed for trusted local networks. Do not expose port 8080 to the internet.
- VPN — Use Tailscale, WireGuard, or reverse proxy (nginx/Caddy) with HTTPS for remote access.
- Remote Control — Disabled by default. Only enable on trusted networks.
- Cloudflare Solver — Bypasses anti-bot protection. Use responsibly and only for legitimate access.
- CORS Proxy — Can fetch arbitrary URLs. Restrict to trusted clients.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License. See LICENSE for details.


