⭐ Star this repository to get updates
CrossWatch/CW is a synchronization engine that keeps your Plex, Jellyfin, Emby, SIMKL, Trakt, AniList, TMDb, MDBList and Tautulli in sync. It runs locally with a web UI where you link accounts, define sync pairs, run them manually or on a schedule, and review stats and history. CW also includes its own tracker to keep your data safe with snapshots.
Supported: Movies and TV shows / episodes / Seasons
Supported: Plex, Emby, Jellyfin, MDBList, Tautulli, AniList, Trakt, SIMKL, TMDb and CW internal tracker\
Not supported (yet): Multi-users / Multi-servers per instance
CrossWatch currently supports one user and one server per instance.
Need multiple users/servers? Run multiple containers (one per user/server).
Important: Multi-user / multi-server support is in progress.
Track progress here: Issue #73
- One brain for all your media syncs A single place to configure everything.
- Multi media-server and multi tracker support, in just one tool.
- Mobile-friendly overview that prioritizes only the essentials
- Flexible sync directions Between media server and trackers.
- Simple and advanced scheduling From standard to more detailed pair schedules
- Internal CW Tracker Keeps snapshots/backups from your media servers and trackers.
- Unified Watchlist across providers View all watchlist items in one place.
- Fallback GUID Revives old items from your Plex library.
- Watcher (Plex/Emby/Jellyfin to Trakt/SIMKL/MDBList) subscription-free.
- Watchlist Auto-Remove Clears items from your Watchlist after a verified finish.
- Analyzer Finds items that are stuck or inconsistent between providers.
- Editor Inspect and adjust your items and add or block items.
- Player card Shows what you are currently watching in real time.
- Snapshosts Rollback tool for provider watchlist, ratings, and history
|
|
-
Docker:
docker pull ghcr.io/cenodude/crosswatch:latest
docker run -d --name crosswatch -p 8787:8787 -v /path/to/config:/config -e TZ=UTC ghcr.io/cenodude/crosswatch:latestor
# docker-compose.yml
services:
crosswatch:
image: ghcr.io/cenodude/crosswatch:latest
container_name: crosswatch
ports:
- "8787:8787" # host:container
environment:
- TZ=UTC
volumes:
- /path/to/config:/config
restart: unless-stoppedThe container exposes the web UI at:
http://localhost:8787
Huge thanks to our sponsors for keeping this project moving.

