CLI tool to sync Plex watchlist with Sonarr and Radarr
Project description
Lumarr
A lightweight CLI tool to automatically sync your Plex watchlist and Letterboxd lists with Sonarr and Radarr.
Overview
Lumarr monitors your Plex watchlist and Letterboxd activity, automatically adding movies and TV shows to your Sonarr and Radarr instances. It runs as a lightweight CLI tool with support for one-time syncs, scheduled runs, or continuous monitoring.
Key Features
- Plex Watchlist Sync - Automatically add watchlist items to Sonarr/Radarr
- Letterboxd Integration - Sync watched movies and watchlists from Letterboxd
- Smart Duplicate Prevention - Local database tracks synced items
- Multiple Sync Modes - One-time, scheduled, or continuous monitoring
- Interactive Configuration - Easy setup wizard for first-time configuration
- Rich CLI - Beautiful terminal output with detailed status information
- Docker Support - Run in a container for easy deployment
Quick Start
Installation
Using pip (Recommended):
pip install lumarr
Using Docker:
docker pull blueconfetti/lumarr:latest
From Source:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone and install
git clone https://github.com/yourusername/lumarr.git
cd lumarr
uv pip install -e .
See Installation Guide for more installation options.
Configuration
-
Create config file:
cp config.example.yaml config.yaml
-
Run interactive wizard:
lumarr config -
Or manually edit
config.yamlwith your API keys and settings
See Configuration Guide for detailed configuration options.
Usage
# Test connections
lumarr status
# Preview sync (dry run)
lumarr sync --dry-run
# Sync once
lumarr sync
# Continuous monitoring (recommended)
lumarr sync --follow
See CLI Reference for all available commands.
How It Works
- Connects to Plex (via API or RSS feed) to fetch your watchlist
- Optionally fetches Letterboxd watched movies and watchlists
- Extracts TMDB, TVDB, and IMDB IDs from metadata
- Checks local database to skip already-synced items
- Adds new movies to Radarr and TV shows to Sonarr
- Records sync history to prevent duplicates
Performance:
- RSS Feed mode: 1 HTTP request for entire watchlist
- API mode with caching: ~1-2 requests per sync
- Follow mode: Continuous monitoring with configurable intervals
Documentation
- Installation Guide - Detailed installation instructions
- Configuration Guide - Complete configuration reference
- CLI Reference - All commands and options
- Docker Guide - Running with Docker/Docker Compose
Requirements
- Python 3.9 or higher
- Plex account with authentication token
- Sonarr and/or Radarr instance
- Optional: TMDB API key for enhanced ID resolution
- Optional: Letterboxd account for Letterboxd sync
Deployment Options
Docker (Recommended for Production)
cd docker
docker-compose up -d
See Docker Guide for details.
Systemd Service
[Unit]
Description=Lumarr Sync Service
After=network.target
[Service]
Type=simple
User=your-user
WorkingDirectory=/path/to/lumarr
ExecStart=/usr/bin/lumarr sync --follow
Restart=always
[Install]
WantedBy=multi-user.target
Cron
# Every 6 hours
0 */6 * * * cd /path/to/lumarr && lumarr sync
Architecture
lumarr/
├── src/lumarr/
│ ├── api/ # API clients (Plex, Sonarr, Radarr, TMDB, Letterboxd)
│ ├── cli.py # CLI interface
│ ├── config.py # Configuration management
│ ├── db.py # SQLite database operations
│ ├── models.py # Data models
│ └── sync.py # Sync orchestration
├── docker/ # Docker configuration
├── docs/ # Documentation
├── config.yaml # Your configuration
└── lumarr.db # SQLite database (auto-created)
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
License
MIT License - see LICENSE for details.
Acknowledgments
This project was inspired by Ombi's watchlist import feature, designed as a lightweight CLI alternative for users who only need watchlist syncing.
Support
Test auto-merge Sat Oct 25 14:50:12 PDT 2025
Testing
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lumarr-0.4.1.tar.gz.
File metadata
- Download URL: lumarr-0.4.1.tar.gz
- Upload date:
- Size: 38.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
004ef864518fae60a5a4aab4c7d22c051582aa2d0ee0d6e3225b0426a3d7ccc0
|
|
| MD5 |
b2ade06f6e7b61e9d66f4377b0aee4e2
|
|
| BLAKE2b-256 |
a03d61dd60134ecd0dd33e81120b73431043dff2bd59a8642680acab06a60d0d
|
File details
Details for the file lumarr-0.4.1-py3-none-any.whl.
File metadata
- Download URL: lumarr-0.4.1-py3-none-any.whl
- Upload date:
- Size: 42.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2566bbe2e3ad36592a13154680baba1affd2f6064cdb34280433b08408b66a3
|
|
| MD5 |
a710e570bba89c6f2c437d473a250fe8
|
|
| BLAKE2b-256 |
90c879db39f3648951dd7af27e34dabcb95d3dc6528f8ad7eef22b65d9d46328
|