Keeps a Plex anime library in sync with MyAnimeList and AniList.
Personal project. Built to scratch my own itch (manually updating watch progress across three places was annoying) and to play with a clean full-stack setup: a Python FastAPI backend, a TypeScript frontend, and Docker Compose for local dev.
- Reads the current state of an anime library and watch progress from a Plex server.
- Reconciles that state against MyAnimeList and AniList accounts.
- Pushes updates so all three stay consistent (episodes watched, list status, scores).
- Backend: Python + FastAPI, managed with
uv - Frontend: TypeScript, Node.js dev server
- Infra: Docker Compose for local development
- External APIs: Plex, MyAnimeList, AniList
Requires Docker and Docker Compose.
-
Copy
backend/.env.exampletobackend/.envand fill in Plex and MyAnimeList credentials. -
From the repo root:
docker compose up --build
-
Backend runs on
http://localhost:8000, frontend onhttp://localhost:3000.
backend/ FastAPI service (sync logic, API clients, endpoints)
frontend/ TypeScript web UI
docker-compose.yml Local dev orchestration
Working for my own use. Not packaged for general distribution, so some configuration is hardcoded for a single-user setup. Treat it as a reference project rather than a turnkey tool.
MIT.