iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
Give every user on your Plex server their own recommendations, based on what they actually watched. Shortlist builds a private “Picked for You” row on each person’s Plex home screen, visible only to t
MediaPython · TypeScriptGitHub @stevezauOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Self-hosted, per-user movie & TV recommendations for Plex — a private "Picked for You" row on every user's home screen, built from their own watch history. One Docker container, works with or without AI.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Per-user movie & TV recommendations for Plex — a private “Picked for You” row on every user’s home screen, built from their own watch history and visible only to them. Self-hosted, one Docker container, no AI key required. What lands on Plex: a real "Picked for Y [README 설치·사용 부분 발췌] Quick start You'll need: somewhere to run a Docker container (it does not have to be the same machine as Plex, just able to reach it) · Plex Media Server ≥ 1.43.2.10687 · Plex Pass on the admRead the full README ↗
What lands on Plex: a real "Picked for You" row from the maintainer's server, visible only to its owner. Four "watched" ticks have been painted out.
Everyone on a Plex server has the same blank-screen problem: a huge library and no idea what to put on. Plex's own recommendation rows are identical for every account and ignore what you've watched.
Shortlist gives every user their own rows. For each person it reads their own Plex watch history, picks titles from your library they haven't seen but probably want to, explains each one, and puts them on that person's Plex Home as rows: "Picked for You", "Because you watched", "Watch it again", seasonal picks and more. Rows rebuild on a schedule you choose, and each personal row is visible only to its owner.
Rows are hidden before they are shown. Each row is labelled, every other account's Plex share filter is told to hide that label, and only then is the row promoted to Home. A row is never visible to the wrong person, not even briefly.
It slots into the stack you already run. Watch history comes straight from Plex. Candidates come from TMDB and Trakt. Gaps can be handed to Radarr/Sonarr or Overseerr/Jellyseerr. Kometa's collections are left completely alone.
An assistant can help configure it. Optional MCP access lets local or hosted assistants view Shortlist or manage its supported settings, rows and normal saved runs. The owner chooses View only or Manage Shortlist for each named connection. Normal runs use the configured services and may incur provider charges; sensitive changes still need browser approval.
Requirements and limits:
Plex has no per-user collections. Its "hide by label" share setting is the only way to keep a row from some people, and until 2026 it wasn't applied everywhere, so a row meant for one person still turned up for others. Plex fixed that: label hiding now works on the Home and Recommended shelves (PMS 1.43.1) and on Related rows (PMS 1.43.2). Shortlist is built on that fix. The order of the steps (label, hide from everyone else, then promote) is what stops a row ever being visible before it is private.
| Start each row from a template | Add as many rows as you like |
|---|---|
| Every pick, and why it was picked | Watch every run, step by step |
|---|---|
App screenshots come from a test library, not a real server. The titles are real films and shows, but nobody pictured here watched anything.
Personalized discovery
Make it yours
Grow your library
Trust and safety
SHORTLIST_DRY_RUN=1 to try it against your real server without writing a
single change./config volume, a multi-arch image on GHCR, a healthcheck
and an Unraid template.Shortlist does one narrow thing the rest of the stack doesn't: build a different collection for each person and keep it private, inside Plex. It is designed to sit alongside what you already run:
shortlist_*
label are ever modified — Kometa's collections, and anything you built by hand, are skipped.shortlist label, so a tool that
reorders the same shelf can exclude all of them with one entry — Agregarr's Exclude from Ordering
(Plex Label), for instance. Or turn Shortlist's own shelf ordering off entirely.Curious how the privacy works? See How to make a Plex collection visible to only one user.
You'll need:
Optional: Tautulli, an AI provider key. Details in Getting started.
Save this as docker-compose.yml:
services:
shortlist:
image: ghcr.io/stevezau/shortlist:latest
ports: ["5959:5959"]
volumes: ["./config:/config"]
environment:
- TZ=Etc/UTC
- PUID=1000
- PGID=1000
restart: unless-stopped
Run docker compose up -d, then open http://your-host:5959 and follow the setup wizard. It
connects your Plex account, picks your server, and walks you to your first rows in about ten
minutes. A single docker run command and the Docker Hub image are in
Other ways to install.
To try it without touching your server first, add SHORTLIST_DRY_RUN=1 under environment:.
Shortlist will show what it would do and write nothing to Plex.
:latest is the latest stable release; :dev (ghcr.io/stevezau/shortlist:dev) is the development
build. Back up /config before switching, and don't downgrade a migrated database in place.
shortlistapp.dev is the docs as a website.
| Page | What's in it |
|---|---|
| Getting started | Install, wizard, first run |
| Guides | Rows, schedules, requests, AI cost, troubleshooting |
| Reference | Settings, API, env vars |
| FAQ | Privacy model, Kometa, uninstall |
Background on Plex, not on Shortlist. Worth reading before you build anything similar yourself, because most advice on the subject predates Plex's 2026 fixes and quietly leaks.
| Page | What's in it |
|---|---|
| Per-user collections | The label + share-filter mechanism, and the order that leaks |
| Improving Plex's recommendations | What Manage Recommendations really changes, and where it stops |
| Recommendations from watch history | What Plex does with history, and why smart collections aren't personal |
| AI recommendations | Where a model helps, and where it invents films you don't own |
| Tools compared | Shortlist, Immaculaterr, Curatarr, Diskovarr, Kometa and others |
Shortlist is free, MIT-licensed and built in evenings. Helping is optional. It runs nightly on the maintainer's own 40-user server.
MIT © Steven Adams