Plex

Plex needs a server URL and token, or the account connection flow.
Plekt attaches to Plex’s notification WebSocket once the URL and token are configured, so no external listener is required for watched/unwatched changes. Playback checks back it up every 5 minutes while idle and every 10 seconds once playback is detected.
Each Plekt user should connect their own Plex account. Account sign-in refuses a Plex account that is already connected to another Plekt user, so watch histories stay separate. When an added user plays on a Plex server another Plekt user owns, Now Playing uses the owner’s session list for that server, matched by Plex user; the added user’s history and writes still use their own connection. Sessions that carry only Plex’s anonymous owner ID are left out.
If the live connection drops, Plekt restarts it without opening duplicate sockets or polling in a tight loop.
Test sends the saved token only to the saved server address. If you change the address, enter the token again before testing. This applies to Emby and Jellyfin too.
Force Sync reads each Plex library section in pages. A section that fails to load, or loads incompletely, is reported as a failed scan instead of being treated as empty, so nothing is wrongly replayed. Cancelling a preview stops it between pages.
For a show set to a non-Aired episode order, Plex library-change notifications, the scheduled recently-watched import, and live playback completion are translated to the aired episode before they are saved.
In Plex, turn off Refresh library metadata periodically.
During a rematch, Plex can reset watched state, and Plekt would otherwise treat that reset as a real unwatch.
Configure the connection in Settings → Media servers.
The Plex card also contains the optional Sync watchlist with Plex toggle. It uses Plex’s account-level Universal Watchlist; Plex is the only provider used for Watchlist sync.
Open Settings → Webhooks → Setup Guides for the provider-specific notification, webhook, and scheduled-task guidance.
If Plex events are absent, check the token, server URL, WebSocket status, and then the missing-event steps.
