Skip to content

Repository files navigation

Plezy Logo Plezy

A modern client for Plex and Jellyfin on desktop, mobile, and TV. Built with Flutter for native performance and a clean interface.

Website · Screenshots · Download · Contributing · License

Plezy mobile screenshots

More screenshots: https://plezy.app/#screenshots

Download

Download on the App StoreGet it on Google PlayAvailable at the Amazon App Store

PlatformDownload
WindowsInstaller (x64, arm64) · Portable x64 · Portable arm64
macOSDMG (x64, arm64)
Linux x64.deb · .rpm · .pkg.tar.zst · portable tar.gz
Linux arm64.deb · .rpm · .pkg.tar.zst · portable tar.gz

Package managers:

  • Nix - Community package by @mio-19 and @MiniHarinn
  • Homebrew (macOS):
    brew tap edde746/plezy https://github.com/edde746/plezy
    brew install --cask plezy
  • AUR (Arch Linux) - Community maintained by @jianglai:
    yay -S plezy-bin
  • WinGet (Windows):
    winget install edde746.Plezy

Features

Browse & Discover

  • Libraries, collections, and playlists
  • Discover hub — Continue Watching, Next Up, trending, and recommendations
  • Cross-server search
  • Filtering, sorting, and alphabetical jump navigation
  • Extras — trailers, deleted scenes, behind-the-scenes

Playback

  • Wide codec support (HEVC, AV1, VP9, and more)
  • HDR and Dolby Vision1
  • Full ASS/SSA subtitles with customizable styling
  • Online subtitle search & download2
  • Audio & subtitle choices remembered per title
  • Progress sync and resume
  • Auto-play next episode with skip intro / skip credits
  • Chapter navigation with thumbnail scrub previews
  • Playback speed, audio sync offset, sleep timer
  • Ambient lighting and GLSL shader presets3
  • Picture-in-Picture4
  • Refresh-rate matching5
  • External player launch (VLC, MX Player, etc.)

Live TV & DVR

  • Live TV channel browsing with favorites
  • DVR support with EPG guide, recording rules, and scheduled recordings2
  • Multi-server Live TV support where available

Downloads & Offline

  • Download media for offline viewing
  • Background queue with pause / resume
  • Sync rules for automatic downloads
  • Offline browsing with watch state sync-back on reconnect

Watch Together

  • Synchronized playback with friends
  • Real-time play / pause / seek sync

Integrations

  • Discord Rich Presence6
  • Trakt, MyAnimeList, AniList, and Simkl tracking & rating
  • Plezy Remote — control desktop and TV from mobile
  • Watch Next row7

Platform & Customization

  • Desktop, mobile, and TV — full D-pad, keyboard, and gamepad support
  • Customizable keyboard shortcuts6
  • Metadata and artwork editing2
  • Settings import/export
  • Localized in English plus 14 translations

Building from Source

Prerequisites

  • Flutter SDK 3.38.4+
  • A Plex account or Jellyfin server with user credentials

Setup

git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
scripts/codegen.sh
flutter run

Code Generation

After modifying model classes or other generated sources:

scripts/codegen.sh

After modifying translations:

dart run slang

Local Checks

scripts/ci_checks.sh

To install the same pre-commit checks locally:

scripts/setup_hooks.sh

Contributing

See CONTRIBUTING.md for development workflow, formatting, tests, and translation guidelines.

License

Plezy is licensed under GPL-3.0.

Acknowledgments

Footnotes

  1. Not available on Linux.

  2. Plex only. 23

  3. Not available on iOS or tvOS.

  4. Android, iOS, and macOS.

  5. Windows, Android, and tvOS.

  6. Desktop only. 2

  7. Android TV only.

About

Modern cross-platform Plex & Jellyfin client built with Flutter

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - timokox/plezy: Modern cross-platform Plex & Jellyfin client built with Flutter · GitHub
Skip to content

Repository files navigation

Plezy Logo Plezy

A modern client for Plex and Jellyfin on desktop, mobile, and TV. Built with Flutter for native performance and a clean interface.

Website · Screenshots · Download · Contributing · License

Plezy mobile screenshots

More screenshots: https://plezy.app/#screenshots

Download

Download on the App StoreGet it on Google PlayAvailable at the Amazon App Store

PlatformDownload
WindowsInstaller (x64, arm64) · Portable x64 · Portable arm64
macOSDMG (x64, arm64)
Linux x64.deb · .rpm · .pkg.tar.zst · portable tar.gz
Linux arm64.deb · .rpm · .pkg.tar.zst · portable tar.gz

Package managers:

  • Nix - Community package by @mio-19 and @MiniHarinn
  • Homebrew (macOS):
    brew tap edde746/plezy https://github.com/edde746/plezy
    brew install --cask plezy
  • AUR (Arch Linux) - Community maintained by @jianglai:
    yay -S plezy-bin
  • WinGet (Windows):
    winget install edde746.Plezy

Features

Browse & Discover

  • Libraries, collections, and playlists
  • Discover hub — Continue Watching, Next Up, trending, and recommendations
  • Cross-server search
  • Filtering, sorting, and alphabetical jump navigation
  • Extras — trailers, deleted scenes, behind-the-scenes

Playback

  • Wide codec support (HEVC, AV1, VP9, and more)
  • HDR and Dolby Vision1
  • Full ASS/SSA subtitles with customizable styling
  • Online subtitle search & download2
  • Audio & subtitle choices remembered per title
  • Progress sync and resume
  • Auto-play next episode with skip intro / skip credits
  • Chapter navigation with thumbnail scrub previews
  • Playback speed, audio sync offset, sleep timer
  • Ambient lighting and GLSL shader presets3
  • Picture-in-Picture4
  • Refresh-rate matching5
  • External player launch (VLC, MX Player, etc.)

Live TV & DVR

  • Live TV channel browsing with favorites
  • DVR support with EPG guide, recording rules, and scheduled recordings2
  • Multi-server Live TV support where available

Downloads & Offline

  • Download media for offline viewing
  • Background queue with pause / resume
  • Sync rules for automatic downloads
  • Offline browsing with watch state sync-back on reconnect

Watch Together

  • Synchronized playback with friends
  • Real-time play / pause / seek sync

Integrations

  • Discord Rich Presence6
  • Trakt, MyAnimeList, AniList, and Simkl tracking & rating
  • Plezy Remote — control desktop and TV from mobile
  • Watch Next row7

Platform & Customization

  • Desktop, mobile, and TV — full D-pad, keyboard, and gamepad support
  • Customizable keyboard shortcuts6
  • Metadata and artwork editing2
  • Settings import/export
  • Localized in English plus 14 translations

Building from Source

Prerequisites

  • Flutter SDK 3.38.4+
  • A Plex account or Jellyfin server with user credentials

Setup

git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
scripts/codegen.sh
flutter run

Code Generation

After modifying model classes or other generated sources:

scripts/codegen.sh

After modifying translations:

dart run slang

Local Checks

scripts/ci_checks.sh

To install the same pre-commit checks locally:

scripts/setup_hooks.sh

Contributing

See CONTRIBUTING.md for development workflow, formatting, tests, and translation guidelines.

License

Plezy is licensed under GPL-3.0.

Acknowledgments

Footnotes

  1. Not available on Linux.

  2. Plex only. 23

  3. Not available on iOS or tvOS.

  4. Android, iOS, and macOS.

  5. Windows, Android, and tvOS.

  6. Desktop only. 2

  7. Android TV only.

About

Modern cross-platform Plex & Jellyfin client built with Flutter

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - timokox/plezy: Modern cross-platform Plex & Jellyfin client built with Flutter · GitHub
Skip to content

Repository files navigation

Plezy Logo Plezy

A modern client for Plex and Jellyfin on desktop, mobile, and TV. Built with Flutter for native performance and a clean interface.

Website · Screenshots · Download · Contributing · License

Plezy mobile screenshots

More screenshots: https://plezy.app/#screenshots

Download

Download on the App StoreGet it on Google PlayAvailable at the Amazon App Store

PlatformDownload
WindowsInstaller (x64, arm64) · Portable x64 · Portable arm64
macOSDMG (x64, arm64)
Linux x64.deb · .rpm · .pkg.tar.zst · portable tar.gz
Linux arm64.deb · .rpm · .pkg.tar.zst · portable tar.gz

Package managers:

  • Nix - Community package by @mio-19 and @MiniHarinn
  • Homebrew (macOS):
    brew tap edde746/plezy https://github.com/edde746/plezy
    brew install --cask plezy
  • AUR (Arch Linux) - Community maintained by @jianglai:
    yay -S plezy-bin
  • WinGet (Windows):
    winget install edde746.Plezy

Features

Browse & Discover

  • Libraries, collections, and playlists
  • Discover hub — Continue Watching, Next Up, trending, and recommendations
  • Cross-server search
  • Filtering, sorting, and alphabetical jump navigation
  • Extras — trailers, deleted scenes, behind-the-scenes

Playback

  • Wide codec support (HEVC, AV1, VP9, and more)
  • HDR and Dolby Vision1
  • Full ASS/SSA subtitles with customizable styling
  • Online subtitle search & download2
  • Audio & subtitle choices remembered per title
  • Progress sync and resume
  • Auto-play next episode with skip intro / skip credits
  • Chapter navigation with thumbnail scrub previews
  • Playback speed, audio sync offset, sleep timer
  • Ambient lighting and GLSL shader presets3
  • Picture-in-Picture4
  • Refresh-rate matching5
  • External player launch (VLC, MX Player, etc.)

Live TV & DVR

  • Live TV channel browsing with favorites
  • DVR support with EPG guide, recording rules, and scheduled recordings2
  • Multi-server Live TV support where available

Downloads & Offline

  • Download media for offline viewing
  • Background queue with pause / resume
  • Sync rules for automatic downloads
  • Offline browsing with watch state sync-back on reconnect

Watch Together

  • Synchronized playback with friends
  • Real-time play / pause / seek sync

Integrations

  • Discord Rich Presence6
  • Trakt, MyAnimeList, AniList, and Simkl tracking & rating
  • Plezy Remote — control desktop and TV from mobile
  • Watch Next row7

Platform & Customization

  • Desktop, mobile, and TV — full D-pad, keyboard, and gamepad support
  • Customizable keyboard shortcuts6
  • Metadata and artwork editing2
  • Settings import/export
  • Localized in English plus 14 translations

Building from Source

Prerequisites

  • Flutter SDK 3.38.4+
  • A Plex account or Jellyfin server with user credentials

Setup

git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
scripts/codegen.sh
flutter run

Code Generation

After modifying model classes or other generated sources:

scripts/codegen.sh

After modifying translations:

dart run slang

Local Checks

scripts/ci_checks.sh

To install the same pre-commit checks locally:

scripts/setup_hooks.sh

Contributing

See CONTRIBUTING.md for development workflow, formatting, tests, and translation guidelines.

License

Plezy is licensed under GPL-3.0.

Acknowledgments

Footnotes

  1. Not available on Linux.

  2. Plex only. 23

  3. Not available on iOS or tvOS.

  4. Android, iOS, and macOS.

  5. Windows, Android, and tvOS.

  6. Desktop only. 2

  7. Android TV only.

About

Modern cross-platform Plex & Jellyfin client built with Flutter

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - timokox/plezy: Modern cross-platform Plex & Jellyfin client built with Flutter · GitHub
Skip to content

Repository files navigation

Plezy Logo Plezy

A modern client for Plex and Jellyfin on desktop, mobile, and TV. Built with Flutter for native performance and a clean interface.

Website · Screenshots · Download · Contributing · License

Plezy mobile screenshots

More screenshots: https://plezy.app/#screenshots

Download

Download on the App StoreGet it on Google PlayAvailable at the Amazon App Store

PlatformDownload
WindowsInstaller (x64, arm64) · Portable x64 · Portable arm64
macOSDMG (x64, arm64)
Linux x64.deb · .rpm · .pkg.tar.zst · portable tar.gz
Linux arm64.deb · .rpm · .pkg.tar.zst · portable tar.gz

Package managers:

  • Nix - Community package by @mio-19 and @MiniHarinn
  • Homebrew (macOS):
    brew tap edde746/plezy https://github.com/edde746/plezy
    brew install --cask plezy
  • AUR (Arch Linux) - Community maintained by @jianglai:
    yay -S plezy-bin
  • WinGet (Windows):
    winget install edde746.Plezy

Features

Browse & Discover

  • Libraries, collections, and playlists
  • Discover hub — Continue Watching, Next Up, trending, and recommendations
  • Cross-server search
  • Filtering, sorting, and alphabetical jump navigation
  • Extras — trailers, deleted scenes, behind-the-scenes

Playback

  • Wide codec support (HEVC, AV1, VP9, and more)
  • HDR and Dolby Vision1
  • Full ASS/SSA subtitles with customizable styling
  • Online subtitle search & download2
  • Audio & subtitle choices remembered per title
  • Progress sync and resume
  • Auto-play next episode with skip intro / skip credits
  • Chapter navigation with thumbnail scrub previews
  • Playback speed, audio sync offset, sleep timer
  • Ambient lighting and GLSL shader presets3
  • Picture-in-Picture4
  • Refresh-rate matching5
  • External player launch (VLC, MX Player, etc.)

Live TV & DVR

  • Live TV channel browsing with favorites
  • DVR support with EPG guide, recording rules, and scheduled recordings2
  • Multi-server Live TV support where available

Downloads & Offline

  • Download media for offline viewing
  • Background queue with pause / resume
  • Sync rules for automatic downloads
  • Offline browsing with watch state sync-back on reconnect

Watch Together

  • Synchronized playback with friends
  • Real-time play / pause / seek sync

Integrations

  • Discord Rich Presence6
  • Trakt, MyAnimeList, AniList, and Simkl tracking & rating
  • Plezy Remote — control desktop and TV from mobile
  • Watch Next row7

Platform & Customization

  • Desktop, mobile, and TV — full D-pad, keyboard, and gamepad support
  • Customizable keyboard shortcuts6
  • Metadata and artwork editing2
  • Settings import/export
  • Localized in English plus 14 translations

Building from Source

Prerequisites

  • Flutter SDK 3.38.4+
  • A Plex account or Jellyfin server with user credentials

Setup

git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
scripts/codegen.sh
flutter run

Code Generation

After modifying model classes or other generated sources:

scripts/codegen.sh

After modifying translations:

dart run slang

Local Checks

scripts/ci_checks.sh

To install the same pre-commit checks locally:

scripts/setup_hooks.sh

Contributing

See CONTRIBUTING.md for development workflow, formatting, tests, and translation guidelines.

License

Plezy is licensed under GPL-3.0.

Acknowledgments

Footnotes

  1. Not available on Linux.

  2. Plex only. 23

  3. Not available on iOS or tvOS.

  4. Android, iOS, and macOS.

  5. Windows, Android, and tvOS.

  6. Desktop only. 2

  7. Android TV only.

About

Modern cross-platform Plex & Jellyfin client built with Flutter

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - timokox/plezy: Modern cross-platform Plex & Jellyfin client built with Flutter · GitHub
Skip to content

Repository files navigation

Plezy Logo Plezy

A modern client for Plex and Jellyfin on desktop, mobile, and TV. Built with Flutter for native performance and a clean interface.

Website · Screenshots · Download · Contributing · License

Plezy mobile screenshots

More screenshots: https://plezy.app/#screenshots

Download

Download on the App StoreGet it on Google PlayAvailable at the Amazon App Store

PlatformDownload
WindowsInstaller (x64, arm64) · Portable x64 · Portable arm64
macOSDMG (x64, arm64)
Linux x64.deb · .rpm · .pkg.tar.zst · portable tar.gz
Linux arm64.deb · .rpm · .pkg.tar.zst · portable tar.gz

Package managers:

  • Nix - Community package by @mio-19 and @MiniHarinn
  • Homebrew (macOS):
    brew tap edde746/plezy https://github.com/edde746/plezy
    brew install --cask plezy
  • AUR (Arch Linux) - Community maintained by @jianglai:
    yay -S plezy-bin
  • WinGet (Windows):
    winget install edde746.Plezy

Features

Browse & Discover

  • Libraries, collections, and playlists
  • Discover hub — Continue Watching, Next Up, trending, and recommendations
  • Cross-server search
  • Filtering, sorting, and alphabetical jump navigation
  • Extras — trailers, deleted scenes, behind-the-scenes

Playback

  • Wide codec support (HEVC, AV1, VP9, and more)
  • HDR and Dolby Vision1
  • Full ASS/SSA subtitles with customizable styling
  • Online subtitle search & download2
  • Audio & subtitle choices remembered per title
  • Progress sync and resume
  • Auto-play next episode with skip intro / skip credits
  • Chapter navigation with thumbnail scrub previews
  • Playback speed, audio sync offset, sleep timer
  • Ambient lighting and GLSL shader presets3
  • Picture-in-Picture4
  • Refresh-rate matching5
  • External player launch (VLC, MX Player, etc.)

Live TV & DVR

  • Live TV channel browsing with favorites
  • DVR support with EPG guide, recording rules, and scheduled recordings2
  • Multi-server Live TV support where available

Downloads & Offline

  • Download media for offline viewing
  • Background queue with pause / resume
  • Sync rules for automatic downloads
  • Offline browsing with watch state sync-back on reconnect

Watch Together

  • Synchronized playback with friends
  • Real-time play / pause / seek sync

Integrations

  • Discord Rich Presence6
  • Trakt, MyAnimeList, AniList, and Simkl tracking & rating
  • Plezy Remote — control desktop and TV from mobile
  • Watch Next row7

Platform & Customization

  • Desktop, mobile, and TV — full D-pad, keyboard, and gamepad support
  • Customizable keyboard shortcuts6
  • Metadata and artwork editing2
  • Settings import/export
  • Localized in English plus 14 translations

Building from Source

Prerequisites

  • Flutter SDK 3.38.4+
  • A Plex account or Jellyfin server with user credentials

Setup

git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
scripts/codegen.sh
flutter run

Code Generation

After modifying model classes or other generated sources:

scripts/codegen.sh

After modifying translations:

dart run slang

Local Checks

scripts/ci_checks.sh

To install the same pre-commit checks locally:

scripts/setup_hooks.sh

Contributing

See CONTRIBUTING.md for development workflow, formatting, tests, and translation guidelines.

License

Plezy is licensed under GPL-3.0.

Acknowledgments

Footnotes

  1. Not available on Linux.

  2. Plex only. 23

  3. Not available on iOS or tvOS.

  4. Android, iOS, and macOS.

  5. Windows, Android, and tvOS.

  6. Desktop only. 2

  7. Android TV only.

About

Modern cross-platform Plex & Jellyfin client built with Flutter

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - timokox/plezy: Modern cross-platform Plex & Jellyfin client built with Flutter · GitHub
Skip to content

Repository files navigation

Plezy Logo Plezy

A modern client for Plex and Jellyfin on desktop, mobile, and TV. Built with Flutter for native performance and a clean interface.

Website · Screenshots · Download · Contributing · License

Plezy mobile screenshots

More screenshots: https://plezy.app/#screenshots

Download

Download on the App StoreGet it on Google PlayAvailable at the Amazon App Store

PlatformDownload
WindowsInstaller (x64, arm64) · Portable x64 · Portable arm64
macOSDMG (x64, arm64)
Linux x64.deb · .rpm · .pkg.tar.zst · portable tar.gz
Linux arm64.deb · .rpm · .pkg.tar.zst · portable tar.gz

Package managers:

  • Nix - Community package by @mio-19 and @MiniHarinn
  • Homebrew (macOS):
    brew tap edde746/plezy https://github.com/edde746/plezy
    brew install --cask plezy
  • AUR (Arch Linux) - Community maintained by @jianglai:
    yay -S plezy-bin
  • WinGet (Windows):
    winget install edde746.Plezy

Features

Browse & Discover

  • Libraries, collections, and playlists
  • Discover hub — Continue Watching, Next Up, trending, and recommendations
  • Cross-server search
  • Filtering, sorting, and alphabetical jump navigation
  • Extras — trailers, deleted scenes, behind-the-scenes

Playback

  • Wide codec support (HEVC, AV1, VP9, and more)
  • HDR and Dolby Vision1
  • Full ASS/SSA subtitles with customizable styling
  • Online subtitle search & download2
  • Audio & subtitle choices remembered per title
  • Progress sync and resume
  • Auto-play next episode with skip intro / skip credits
  • Chapter navigation with thumbnail scrub previews
  • Playback speed, audio sync offset, sleep timer
  • Ambient lighting and GLSL shader presets3
  • Picture-in-Picture4
  • Refresh-rate matching5
  • External player launch (VLC, MX Player, etc.)

Live TV & DVR

  • Live TV channel browsing with favorites
  • DVR support with EPG guide, recording rules, and scheduled recordings2
  • Multi-server Live TV support where available

Downloads & Offline

  • Download media for offline viewing
  • Background queue with pause / resume
  • Sync rules for automatic downloads
  • Offline browsing with watch state sync-back on reconnect

Watch Together

  • Synchronized playback with friends
  • Real-time play / pause / seek sync

Integrations

  • Discord Rich Presence6
  • Trakt, MyAnimeList, AniList, and Simkl tracking & rating
  • Plezy Remote — control desktop and TV from mobile
  • Watch Next row7

Platform & Customization

  • Desktop, mobile, and TV — full D-pad, keyboard, and gamepad support
  • Customizable keyboard shortcuts6
  • Metadata and artwork editing2
  • Settings import/export
  • Localized in English plus 14 translations

Building from Source

Prerequisites

  • Flutter SDK 3.38.4+
  • A Plex account or Jellyfin server with user credentials

Setup

git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
scripts/codegen.sh
flutter run

Code Generation

After modifying model classes or other generated sources:

scripts/codegen.sh

After modifying translations:

dart run slang

Local Checks

scripts/ci_checks.sh

To install the same pre-commit checks locally:

scripts/setup_hooks.sh

Contributing

See CONTRIBUTING.md for development workflow, formatting, tests, and translation guidelines.

License

Plezy is licensed under GPL-3.0.

Acknowledgments

Footnotes

  1. Not available on Linux.

  2. Plex only. 23

  3. Not available on iOS or tvOS.

  4. Android, iOS, and macOS.

  5. Windows, Android, and tvOS.

  6. Desktop only. 2

  7. Android TV only.

About

Modern cross-platform Plex & Jellyfin client built with Flutter

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - timokox/plezy: Modern cross-platform Plex & Jellyfin client built with Flutter · GitHub
Skip to content

Repository files navigation

Plezy Logo Plezy

A modern client for Plex and Jellyfin on desktop, mobile, and TV. Built with Flutter for native performance and a clean interface.

Website · Screenshots · Download · Contributing · License

Plezy mobile screenshots

More screenshots: https://plezy.app/#screenshots

Download

Download on the App StoreGet it on Google PlayAvailable at the Amazon App Store

PlatformDownload
WindowsInstaller (x64, arm64) · Portable x64 · Portable arm64
macOSDMG (x64, arm64)
Linux x64.deb · .rpm · .pkg.tar.zst · portable tar.gz
Linux arm64.deb · .rpm · .pkg.tar.zst · portable tar.gz

Package managers:

  • Nix - Community package by @mio-19 and @MiniHarinn
  • Homebrew (macOS):
    brew tap edde746/plezy https://github.com/edde746/plezy
    brew install --cask plezy
  • AUR (Arch Linux) - Community maintained by @jianglai:
    yay -S plezy-bin
  • WinGet (Windows):
    winget install edde746.Plezy

Features

Browse & Discover

  • Libraries, collections, and playlists
  • Discover hub — Continue Watching, Next Up, trending, and recommendations
  • Cross-server search
  • Filtering, sorting, and alphabetical jump navigation
  • Extras — trailers, deleted scenes, behind-the-scenes

Playback

  • Wide codec support (HEVC, AV1, VP9, and more)
  • HDR and Dolby Vision1
  • Full ASS/SSA subtitles with customizable styling
  • Online subtitle search & download2
  • Audio & subtitle choices remembered per title
  • Progress sync and resume
  • Auto-play next episode with skip intro / skip credits
  • Chapter navigation with thumbnail scrub previews
  • Playback speed, audio sync offset, sleep timer
  • Ambient lighting and GLSL shader presets3
  • Picture-in-Picture4
  • Refresh-rate matching5
  • External player launch (VLC, MX Player, etc.)

Live TV & DVR

  • Live TV channel browsing with favorites
  • DVR support with EPG guide, recording rules, and scheduled recordings2
  • Multi-server Live TV support where available

Downloads & Offline

  • Download media for offline viewing
  • Background queue with pause / resume
  • Sync rules for automatic downloads
  • Offline browsing with watch state sync-back on reconnect

Watch Together

  • Synchronized playback with friends
  • Real-time play / pause / seek sync

Integrations

  • Discord Rich Presence6
  • Trakt, MyAnimeList, AniList, and Simkl tracking & rating
  • Plezy Remote — control desktop and TV from mobile
  • Watch Next row7

Platform & Customization

  • Desktop, mobile, and TV — full D-pad, keyboard, and gamepad support
  • Customizable keyboard shortcuts6
  • Metadata and artwork editing2
  • Settings import/export
  • Localized in English plus 14 translations

Building from Source

Prerequisites

  • Flutter SDK 3.38.4+
  • A Plex account or Jellyfin server with user credentials

Setup

git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
scripts/codegen.sh
flutter run

Code Generation

After modifying model classes or other generated sources:

scripts/codegen.sh

After modifying translations:

dart run slang

Local Checks

scripts/ci_checks.sh

To install the same pre-commit checks locally:

scripts/setup_hooks.sh

Contributing

See CONTRIBUTING.md for development workflow, formatting, tests, and translation guidelines.

License

Plezy is licensed under GPL-3.0.

Acknowledgments

Footnotes

  1. Not available on Linux.

  2. Plex only. 23

  3. Not available on iOS or tvOS.

  4. Android, iOS, and macOS.

  5. Windows, Android, and tvOS.

  6. Desktop only. 2

  7. Android TV only.

About

Modern cross-platform Plex & Jellyfin client built with Flutter

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - timokox/plezy: Modern cross-platform Plex & Jellyfin client built with Flutter · GitHub
Skip to content

Repository files navigation

Plezy Logo Plezy

A modern client for Plex and Jellyfin on desktop, mobile, and TV. Built with Flutter for native performance and a clean interface.

Website · Screenshots · Download · Contributing · License

Plezy mobile screenshots

More screenshots: https://plezy.app/#screenshots

Download

Download on the App StoreGet it on Google PlayAvailable at the Amazon App Store

PlatformDownload
WindowsInstaller (x64, arm64) · Portable x64 · Portable arm64
macOSDMG (x64, arm64)
Linux x64.deb · .rpm · .pkg.tar.zst · portable tar.gz
Linux arm64.deb · .rpm · .pkg.tar.zst · portable tar.gz

Package managers:

  • Nix - Community package by @mio-19 and @MiniHarinn
  • Homebrew (macOS):
    brew tap edde746/plezy https://github.com/edde746/plezy
    brew install --cask plezy
  • AUR (Arch Linux) - Community maintained by @jianglai:
    yay -S plezy-bin
  • WinGet (Windows):
    winget install edde746.Plezy

Features

Browse & Discover

  • Libraries, collections, and playlists
  • Discover hub — Continue Watching, Next Up, trending, and recommendations
  • Cross-server search
  • Filtering, sorting, and alphabetical jump navigation
  • Extras — trailers, deleted scenes, behind-the-scenes

Playback

  • Wide codec support (HEVC, AV1, VP9, and more)
  • HDR and Dolby Vision1
  • Full ASS/SSA subtitles with customizable styling
  • Online subtitle search & download2
  • Audio & subtitle choices remembered per title
  • Progress sync and resume
  • Auto-play next episode with skip intro / skip credits
  • Chapter navigation with thumbnail scrub previews
  • Playback speed, audio sync offset, sleep timer
  • Ambient lighting and GLSL shader presets3
  • Picture-in-Picture4
  • Refresh-rate matching5
  • External player launch (VLC, MX Player, etc.)

Live TV & DVR

  • Live TV channel browsing with favorites
  • DVR support with EPG guide, recording rules, and scheduled recordings2
  • Multi-server Live TV support where available

Downloads & Offline

  • Download media for offline viewing
  • Background queue with pause / resume
  • Sync rules for automatic downloads
  • Offline browsing with watch state sync-back on reconnect

Watch Together

  • Synchronized playback with friends
  • Real-time play / pause / seek sync

Integrations

  • Discord Rich Presence6
  • Trakt, MyAnimeList, AniList, and Simkl tracking & rating
  • Plezy Remote — control desktop and TV from mobile
  • Watch Next row7

Platform & Customization

  • Desktop, mobile, and TV — full D-pad, keyboard, and gamepad support
  • Customizable keyboard shortcuts6
  • Metadata and artwork editing2
  • Settings import/export
  • Localized in English plus 14 translations

Building from Source

Prerequisites

  • Flutter SDK 3.38.4+
  • A Plex account or Jellyfin server with user credentials

Setup

git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
scripts/codegen.sh
flutter run

Code Generation

After modifying model classes or other generated sources:

scripts/codegen.sh

After modifying translations:

dart run slang

Local Checks

scripts/ci_checks.sh

To install the same pre-commit checks locally:

scripts/setup_hooks.sh

Contributing

See CONTRIBUTING.md for development workflow, formatting, tests, and translation guidelines.

License

Plezy is licensed under GPL-3.0.

Acknowledgments

Footnotes

  1. Not available on Linux.

  2. Plex only. 23

  3. Not available on iOS or tvOS.

  4. Android, iOS, and macOS.

  5. Windows, Android, and tvOS.

  6. Desktop only. 2

  7. Android TV only.

About

Modern cross-platform Plex & Jellyfin client built with Flutter

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages