Watcher is a personal movie & TV show tracker with local AI-powered recommendations. It uses Tauri 2 (Rust + vanilla web frontend) and runs entirely offline after initial setup — the only network dependency is fetching metadata from TMDB and optionally downloading the recommendation model.
Built on a whim for personal use. This space is already crowded with excellent apps, so this is just my take — contributions are welcome if you'd like to spend more time on it.
- Track plays — log when and where you watched a movie or TV episode, with optional star ratings
- TMDB metadata — automatic poster, synopsis, credits, keywords, and technical details
- Watchlist — maintain a want-to-watch list for movies and TV series
- Import / Export — full JSON import/export for portability
- Local AI recommendations — describes what you're in the mood for in plain text; a local BERT model ranks TMDB candidates by semantic similarity to your prompt
- Favourite directors & actors — boosts recommendations for creators you rate highly
- Dashboard — quick stats on total plays, unique titles, favourite media, and top places
Coming soon
- Rust toolchain
- A free TMDB API key (set via
TMDB_API_KEYenvironment variable or at build time)
# Run in development mode
TMDB_API_KEY=your_key_here cargo run --manifest-path src-tauri/Cargo.toml
# Build a release binary
cargo build --release --manifest-path src-tauri/Cargo.toml
# Build a .deb package
npx tauri build --bundles deb
# Build an AppImage
npx tauri build --bundles appimageAlternatively, use the top-level Makefile:
make deb # TMDB_API_KEY=your_key_here make deb
make run # TMDB_API_KEY=your_key_here make runThe first launch will download the all-MiniLM-L6-v2 sentence-transformer model (~90 MB) from HuggingFace Hub. Subsequent launches use the cached copy.
Work in progress — not yet ready for everyday use. Things that are missing or rough:
- The frontend is vanilla HTML/CSS/JS with no reactive framework — functional but minimal
- No packaged distribution beyond
.deb/ AppImage - The recommendation pipeline is naive: TMDB search + local BERT similarity. Quality varies.
- No push notifications or background sync
- Linux-only at the moment (tested on Ubuntu)
- Tauri 2 — desktop application framework
- TMDB API — movie & TV metadata
- Candle — local BERT inference (no GPU required)
- sentence-transformers/all-MiniLM-L6-v2 — embedding model
- tokenizers — HuggingFace tokenizer
- rusqlite — SQLite bindings
- hf-hub — model downloading from HuggingFace
- Author / Maintainer: BlancoBAM
- All movie and TV metadata is provided by The Movie Database (TMDB). This product uses the TMDB API but is not endorsed or certified by TMDB.
- The recommendation model is sentence-transformers/all-MiniLM-L6-v2 from HuggingFace, running locally via Candle.
MIT — see LICENSE for details.