CrossWatch interface preview

Media sync hub

CrossWatch

Keep your media servers, media clients and trackers in sync, for you and everyone in your household. Review changes before applying them with Interactive Sync.

Latest Release Docker Pulls GHCR Pulls Must-read: Quick Start Reddit

One control room

Your media state, kept in sync.

CrossWatch (CW) links accounts, profiles, sync pairs, schedules, snapshots, scrobbling routes and repair tools into one local dashboard. Run it for yourself, then create separate profiles for family, friends, servers or tracker setups.

Emby Media server
Jellyfin Media server
Plex Media server
Silo Media server
Kodi Media client
Nuvio Media client
Stremio Media client
AniList Anime tracker
MyAnimeList (MAL) Anime tracker
Kitsu Anime tracker
CrossWatch Local tracker
Floppy Tracker
FlickList Tracker
PunchPlay Tracker
BingeBase Scrobble tracker
SCROB Tracker
MDBList Tracker
PublicMetaDB Tracker
SIMKL Tracker
Tautulli Tracker
TMDb Tracker and metadata
Tracearr Tracker
Trakt Tracker
WeTrakr Tracker
REVIEW

Interactive Sync

Review additions, updates and removals before applying them. Resolve conflicts and correct titles, IDs, seasons and episodes.

SYNC

Watchlists, ratings, history and progress

Keep media state aligned across servers and trackers, including collections, separate rewatches and unfinished playback where supported.

LISTS

Playlists and published lists

Sync playlists between providers and publish lists for Kometa, Radarr and Sonarr.

HUB

Profiles for everyone at home

Give family and friends their own profile, with a picture and an optional login. Each profile keeps its own accounts, pairs, routes and schedule.

LIVE

Watcher and webhooks

Send play events from Plex, Emby, Jellyfin, Silo, Kodi or Scrob to supported trackers with Watcher, without Plex Pass or Emby Premiere. Webhooks are also available for Plex, Emby and Jellyfin.

USERS

One server, many users

Sync several Plex, Emby, Jellyfin or Silo users from one server connection, so each person keeps their own history.

SAFE

Snapshots and captures

Keep provider snapshots, compare changes and restore watchlist, ratings and history data when you need to recover.

TOOLS

Analyzer and saved mappings

Find missing items and correct mappings for pending retries in Analyzer. Use the Editor to inspect, add or block items and review or edit saved mappings.

ROUTES

Sync topology advisor

Visualize your sync routes and identify overlapping paths between providers.

LOGS

Events and live logs

Search sync history and open logs for a run. Filter live and saved logs by pair or run, highlight errors and keep logs for later.

ANIME

Anime ID mapping

Match anime across AniList, MyAnimeList (MAL), Kitsu, SIMKL and CW tracker pairs with AniBridge, animeApi and custom mappings. Watcher and webhooks also support anime mapping for supported providers.

AI

Optional AI help

Ask CrossWatch for advice with your own AI model, or give AI apps like Claude, Codex or Cursor read-only access. Off until you set it up.

01 Connect

Add servers, trackers and metadata.

02 Pair

Choose what moves between providers.

03 Sync

Review changes with Interactive Sync, run automatically on a schedule or send play events through Watcher and webhooks.

04 Follow up

Open notifications for sync progress, pending reviews, reports and release updates. Use Events and Logs to investigate problems.

Profiles and managed users

Share CrossWatch with your household.

Create a profile for each person, pick their accounts and give them a login if you want. Choose read-only, monitor or full access. With full access they manage their own pairs, Watcher routes, webhooks and schedule, and can reconnect their own accounts. Use View as to see and manage any profile yourself. Sign-in supports Plex SSO, OIDC and two-factor authentication.

Kodi add-on

One Kodi profile, separate watch histories.

CrossWatch for Kodi reports playback and household viewers to CrossWatch. Set up a Watcher route for each viewer to keep their watch history separate. The add-on is currently in beta.

Docker first

Start local. Stay in control.

The web UI is exposed at http://localhost:8787. Set CW_CLI_ONLY=1 when you want API/CLI-only mode. Keep your config in a Docker volume and update with the latest image when you are ready.

docker run -d \
  --name crosswatch \
  -p 8787:8787 \
  -v crosswatch_config:/config \
  -e TZ=Europe/Amsterdam \
  --restart unless-stopped \
  ghcr.io/cenodude/crosswatch:latest

Support

Thanks for keeping CrossWatch moving.

Every cent from Buy Me a Coffee goes to the ALS Foundation in the Netherlands.