A modern client for Plex, Jellyfin, and Emby on desktop, mobile, and TV. Built with Flutter for native performance and a clean interface.
Website · Screenshots · Download · Contributing · License
| Platform | Download |
|---|---|
| macOS | DMG (x64, arm64) |
| Linux x64 | .deb · .rpm · .pkg.tar.zst · .flatpak · .AppImage · portable tar.gz |
| Linux arm64 | .deb · .rpm · .pkg.tar.zst · .flatpak · .AppImage · portable tar.gz |
brew tap edde746/plezy https://github.com/edde746/plezy
brew install --cask plezy
### Windows — WinGet
winget install edde746.Plezy
### Linux — Flatpak
Install Flatpak with your distribution's package manager, download the bundle for your architecture above, then run:
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user flathub org.freedesktop.Platform//25.08
flatpak install --user ./plezy-linux-x64.flatpak
flatpak run com.edde746.plezy
On arm64, install `plezy-linux-arm64.flatpak`.
chmod +x plezy-linux-x64.AppImage
./plezy-linux-x64.AppImage
[Gear Lever](https://flathub.org/apps/it.mijorus.gearlever) and AppImageUpdate update it from the latest release. Without FUSE, add `--appimage-extract-and-run`.
### Arch Linux — Pacman
[Distribution package](https://archlinux.org/packages/extra/x86_64/plezy/).
sudo pacman -S plezy
### Fedora / Red Hat — DNF
[Installation instructions](https://github.com/aldobarr/plezy-rpm) · Community repository by [@aldobarr](https://github.com/aldobarr).
### Nix
[Community package](https://search.nixos.org/packages?channel=unstable&query=plezy) maintained by [@mio-19](https://github.com/mio-19) and [@MiniHarinn](https://github.com/MiniHarinn).
### aerynOS — Moss
[Distribution package](https://github.com/aerynOS/recipes/tree/main/p/plezy).
sudo moss pad plezy
plezy:// links to open a profile, play a title, or tune a channel from Home Assistant, launchers, or an NFC tag; any movie, show, or episode menu shows its link17Links start Plezy from outside the app. Any link may add profile=<profile>: a profile id, a Plex Home user UUID, or a display name (ignoring case; it must match one profile). Plezy switches to that profile first, and a protected profile still asks for its PIN. A link replaces whatever is playing.
| Link | Does |
|---|---|
plezy://open |
Opens Plezy |
plezy://play?server=<server>&id=<item> |
Plays one item on one server, any backend |
plezy://play?type=movie\|show&tmdb=<n> |
Plays a title from whichever server has it. Use tmdb, tvdb, imdb=tt<n>, or plex=<hash> (the Plex GUID without plex://movie/) |
plezy://live?channel=<channel> |
Tunes a Live TV channel by key, number, or call sign. Optional server=<server> and start=beginning\|live |
For a show, mode=next (the default) plays the next episode to watch, and mode=shuffle plays the show shuffled. The menu of any movie, show, or episode has Show link, and each profile's menu in Switch Profile has Show profile link. Both show the link as text and a QR code.
# Android / Android TV, over adb (Home Assistant: remote.turn_on with activity: plezy://...)
adb shell am start -a android.intent.action.VIEW -d "plezy://play?type=show\&tvdb=81189\&profile=Kids"
# macOS
open "plezy://play?type=movie&tmdb=603"
On iOS, use the Open URLs action in Shortcuts.
git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
scripts/codegen.sh
flutter run
scripts/codegen.sh
After modifying translations:
dart run slang
sudo apt-get update
sudo apt-get install -y flatpak flatpak-builder imagemagick
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user flathub org.freedesktop.Platform//25.08 org.freedesktop.Sdk//25.08
BUNDLE_DIR=build/linux/x64/release/bundle
python3 linux/packaging/build-flatpak.py --bundle "$BUNDLE_DIR" --arch x64 --output "$PWD"
That writes `plezy-linux-x64.flatpak`, installable with the Flatpak commands above; on arm64, use the prepared arm64 bundle directory and `--arch arm64`. Package from the checkout matching the bundle, since the version comes from `pubspec.yaml`.
Cross-architecture packaging needs native Flatpak tools, a registered binfmt interpreter, and the target SDK/runtime installed with `flatpak install --user --arch=x86_64` (or `aarch64`) — never run Flatpak's namespace tools under emulation. Pass `--arch x64` or `--arch arm64` to the checker and the matching Flatpak architecture to `flatpak run --arch=...`.
Check the installed package against the runtime (not just the SDK), then launch it on a Wayland desktop and exercise streaming, audio, downloads/offline playback, and file chooser portals:
python3 linux/packaging/check-flatpak.py
The check fails on a non-executable entry point or an unresolved bundled ELF dependency. A container without a GPU can use `flatpak run --env=GALLIUM_DRIVER=softpipe com.edde746.plezy` for software-rendered verification; this is not a hardware-decoding or HDR test.
scripts/ci_checks.sh
To install the same pre-commit checks locally:
scripts/setup_hooks.sh
End-to-end tests (Android emulator plus a Dockerized Jellyfin fixture):
python3 scripts/maestro/run_maestro.py basic
See CONTRIBUTING.md for development workflow, formatting, tests, and translation guidelines.
Plezy is licensed under GPL-3.0. The license covers the code, not the Plezy name or logo; forks distributed beyond personal use must follow TRADEMARKS.md.
Jellyfin only. ↩
Jellyfin and Emby only. ↩
Requires connecting the service under Settings > Services. ↩
In-app HDR toggle on Windows, macOS, iOS, tvOS, and Linux — Linux needs a colour-managed Wayland compositor. Dolby Vision on Android, macOS, and Apple TV. ↩
Desktop, Android TV, and Apple TV. ↩
Requires mpv's GPU renderer — unavailable on iOS, tvOS, and macOS, and Android defaults to ExoPlayer. ↩
Android, iOS, and macOS — not on Android TV or Apple TV. ↩
Windows, Android, and tvOS. ↩
Progress sync on Android. ↩
Where your server provides lyrics. ↩
tvOS pauses music when the app is backgrounded. ↩
Not available on tvOS. ↩
Real-time scrobbling on Trakt and Simkl; MyAnimeList and AniList update on completion. ↩
Android TV / Fire TV and tvOS. ↩
Android, iOS, macOS, and tvOS. ↩
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|