Best Jellyfin client for Linux in 2026: 7 apps compared
Jellyfin Desktop, Delfin, Fladder, Swiftly Player, jellyfin-mpv-shim, Kodi and the browser for Linux: packaging, engine, Wayland, Skip Intro.
By Swiftly Player12 min read
Disclosure: we build Swiftly Player, one of the clients in this article. We point out where other apps do better.
Version numbers, packaging details and features below come from each project's own GitHub repository, Flathub page or documentation, checked in September 2026. These apps update often, so check the linked source before you decide. Our Jellyfin app for Linux page has the three-step version of this if you just want a working setup; this article goes deeper and compares every option we could verify.
TL;DR
Jellyfin has no single official Linux app. Jellyfin Desktop is the project's own client, currently in the middle of a rewrite. Delfin is a GNOME-native app built for Jellyfin specifically, but its last tagged release is from November 2024. Fladder and Swiftly Player are the two free, actively updated options with real distribution packages — Fladder as a Flatpak and AppImage, Swiftly Player as native apt/dnf/pacman/zypper packages. jellyfin-mpv-shim is a scriptable mpv-based client with SyncPlay and Live TV. Kodi plays Jellyfin through an add-on if you already use Kodi for other things. The browser needs no install at all, at the cost of depending on what the browser itself can decode.
Comparison table
| Client | Packaging | Playback engine | Wayland | Skip Intro / Media Segments | Multiple servers | Latest release checked |
|---|---|---|---|---|---|---|
| Jellyfin Desktop | Flathub (org.jellyfin.JellyfinDesktop), or GitHub AppImage/dev builds | libmpv inside a Qt WebEngine window (rewrite to mpv + CEF in progress) | Not documented for the current Qt build; native HDR on Wayland is a stated goal of the rewrite | Yes, via the web client's Media Segment Actions | Yes, connect and switch servers | v2.0.0 (pre-release) |
| Delfin | Downloads from delfin.avery.cafe; source on Codeberg | mpv or GStreamer, behind a backend abstraction | Native GTK4/libadwaita app | Jellyscrub and Intro Skipper plugin support | Not documented | v0.4.8, November 22, 2024 |
| Fladder | Flatpak (nl.jknaapen.fladder), AppImage, from GitHub releases | Flutter's own player | Not documented | Listed, method not documented | Yes, several accounts and servers | v0.11.1, September 8, 2026 |
| Swiftly Player | apt, dnf, pacman, zypper via one install script, or build from source | libVLC (Direct Play / Direct Stream) | GTK 4 app; Wayland behaviour not separately documented | Yes, Skip Intro, Skip Recap, Skip Credits | Yes, several servers and accounts | 1.0.4 |
| jellyfin-mpv-shim | Flathub (com.github.iwalton3.jellyfin-mpv-shim), pip/pipx, or Arch's extra repository | mpv (native pipeline) | Yes, "properly supported and actually tested" per the v3.0.0 notes | Not documented | Built as a cast target more than a multi-server browser | v3.0.0, September 2026 |
| Kodi + Jellyfin add-ons | Flathub (tv.kodi.Kodi) for Kodi, plus the add-on repository at kodi.jellyfin.org | Kodi's own player | Depends on your Kodi build | Not listed in either add-on's README | Yes with JellyCon, not documented for Jellyfin for Kodi | Kodi 21 "Omega"; Jellyfin for Kodi v2.2.0; JellyCon v1.0.2 |
| The browser | None | Firefox's or Chrome's own decoder, or server-side transcoding | Works under Wayland like any other browser tab | Yes, Media Segment Actions | Yes | — |
Jellyfin Desktop
Jellyfin Desktop is maintained by the Jellyfin project. Until version 2.0.0 on December 14, 2025 it was called Jellyfin Media Player; that release moved it to Qt 6 and warned that old settings would not carry over automatically. The introduction post describes the design: the interface from jellyfin-web, with libmpv doing the actual decoding, so "all features of the web client are available as usual, including server management." That includes the Media Segment Actions for Skip Intro from Jellyfin 12.0 and saved, switchable servers. On Flathub, the listing still shows version 2.0.0 and describes hardware decoding and audio passthrough, plus a dependency on D-Bus for screensaver handling.
That is not the end of the story. A May 2026 project update announced a ground-up rewrite: dropping Qt and its QtWebEngine browser component for the Chromium Embedded Framework, and replacing the older bundled libmpv pipeline with the same modern pipeline the standalone mpv player uses. The stated reasons are Qt's history of breaking changes and memory leaks in its web engine. The goals include better GPU use and, specifically, native HDR playback on Wayland, macOS and Windows. As of that post, the project said it was "not yet ready for a stable v3.0.0 release," so what installs today from Flathub or the GitHub releases page is the older Qt 6 build, with newer development builds available separately for people willing to track an unfinished rewrite.
Who it fits: people who want the project's own client and are fine with it being between two architectures right now.
Delfin
Delfin is a from-scratch Jellyfin client for Linux, written in Rust with GTK4 and libadwaita, aimed squarely at the GNOME desktop. Its README lists Direct Play, movie and TV collections, and support for two Jellyfin plugins: Jellyscrub, which adds thumbnail previews while scrubbing through a video, and Intro Skipper, for skipping intros. Under the hood, playback runs through a VideoPlayerBackend abstraction that can use either mpv or GStreamer, so the UI itself doesn't need to know which one is doing the decoding.
The project is also honest about what it does not do yet: the README lists music libraries, Live TV, in-app search, SyncPlay and transcoded playback (playing a file the device cannot decode on its own) as planned, not implemented. Its releases on Codeberg show version 0.4.8 as the latest tag, from November 22, 2024 — the most recent entry mentions an overflow menu in the player for deinterlacing and hardware decoding options. That is the most recent tagged release we could confirm at the time of writing; if you try it, check the repository for newer commits since that date.
Who it fits: GNOME users who want an app built specifically for Jellyfin rather than a general media player, and can live with a project that releases infrequently.
Fladder
Fladder is a Flutter app by DonutWare, independent of the Jellyfin project, also covered in our Windows client comparison since it runs there too. The v0.11.1 release, from September 8, 2026, ships a Linux AppImage, a .flatpak file and a .zip, alongside builds for macOS and Windows. Fladder is also published on Flathub as nl.jknaapen.fladder, though that listing currently serves version 0.10.3 — a few releases behind the AppImage and Flatpak file on GitHub.
Its README describes downloads with synced watch progress, several accounts and servers, Seerr and Jellyseerr integration, trickplay scrubbing and a .cbz/.cbr comic reader. It lists intro and credits skipping without documenting whether that reads Jellyfin's own Media Segments or works some other way, so test it against your server rather than assuming it matches Intro Skipper exactly.
Who it fits: people who want downloads and Seerr today, in a Flatpak, and the same app on Windows and Mac.
Swiftly Player
Swiftly Player for Linux is free and open source under the MPL-2.0 license, built on GTK 4 with libVLC for playback. One script installs it: it detects your distribution and adds a real package source for apt, dnf, pacman or zypper, so later updates arrive the same way any other system package does, without re-running anything. According to the project's own README, it requires GTK 4.14 and libVLC — the reason Debian 12, which ships GTK 4.8, cannot run it. The Linux and Windows packages are built against Ubuntu 24.04's glibc, the same floor GTK already needs.
Swiftly Player is deliberately not on Flathub. The project's README states that this was measured, not assumed: the GNOME 48 Flatpak runtime ships GTK 4 but no libVLC library at all, so a Flatpak build would have to compile VLC itself — and VLC's demuxers are exactly what lets the app avoid transcoding in the first place. Playback asks the server for Direct Play or Direct Stream, covering MKV, HEVC, AV1, VP9, DTS, TrueHD and PGS subtitles on the device itself, per the project's README. It keeps several Jellyfin servers and accounts side by side, signs in with Quick Connect, requests titles through Seerr, and shows Skip Intro, Skip Recap and Skip Credits from Media Segments — see our subtitles guide for how a file's subtitle format alone can still force a transcode even with Direct Play working otherwise. Downloads for offline playback are not yet available on Linux. There is no SyncPlay, no Live TV and no casting, and it is a younger project with a smaller community than Kodi. Install it with the one-line script or by adding the package source by hand.
Who it fits: people on Debian, Ubuntu, Fedora, openSUSE or Arch who want native packages that update with the rest of the system, plus the same free app on Windows and Apple devices.
jellyfin-mpv-shim
jellyfin-mpv-shim is an official Jellyfin project built around mpv. Its v3.0.0 release, from September 2026, rewrote the app to render entirely inside mpv rather than a separate window, keeping full playback quality "without video redirection or recomposition," per its release notes. The same notes describe SyncPlay improvements (no more stalling on seek), full Live TV with channels, a guide and recording, and HDR and tone-mapping support through direct access to mpv's pipeline. It works as a cast target — something another Jellyfin app can send a video to over the network — and as a full client on its own.
On Flathub, the listing for this release specifically calls out Wayland support, HiDPI displays and client-side decorations. It is also available through pip, and Arch Linux carries it in the extra repository, though at the time of writing that package (version 2.10.0) is a couple of major versions behind the v3.0.0 release on GitHub and Flathub — install from Flathub if you want the newest one.
Who it fits: people who want SyncPlay and Live TV, and don't mind a client built for mpv power users rather than a simplified interface.
Kodi with Jellyfin add-ons
Kodi is a general media center, not a Jellyfin client by itself — it plays your Jellyfin library through an add-on. Kodi itself is on Flathub as tv.kodi.Kodi, currently at version 21.3 "Omega." Jellyfin's own Kodi documentation lists two add-ons, both from the jellyfin GitHub organization, both installed from the same repository at https://kodi.jellyfin.org (the file is repository.jellyfin.kodi.zip).
- Jellyfin for Kodi (latest release v2.2.0, September 17, 2026) copies the metadata of the libraries you choose into Kodi's own local database, so browsing works offline and through Kodi's native library views.
- JellyCon (latest release v1.0.2, July 6, 2026) asks the server directly instead, which the documentation says makes switching between several Jellyfin servers or user accounts easier.
Neither add-on's README documents Skip Intro or Media Segments support, so treat that as unsupported until it changes. Playback runs through Kodi's own player, which has supported a long list of containers and codecs for years, independent of Jellyfin.
Who it fits: people who already use Kodi for its skins, add-ons or other media sources, and want Jellyfin folded into the same interface rather than a separate app.
The browser
Point Firefox or Chrome at your server's address and there is nothing to install. Since Jellyfin 12.0, the Modern layout is the default, and Skip Intro works through the same Media Segment Actions as Jellyfin Desktop, because it is the same interface underneath. What plays without the server transcoding depends on the browser's own decoder. Jellyfin's codec support documentation explains that if the browser cannot decode the video codec, audio codec, container or subtitle format, the server transcodes or remuxes the file, and video transcoding is the heaviest load the server can be asked to carry. On Linux, hardware-accelerated video decoding inside the browser depends on your GPU driver and the browser's own flags, which this article cannot verify in general — it varies by distribution and graphics stack.
Who it fits: a quick watch on a machine you don't want to install anything on, not a daily habit.
Music-only: Feishin and Finamp
Two more names come up often in Jellyfin discussions, but neither is a video client. Feishin is a desktop music player that speaks the Jellyfin, Navidrome and Subsonic APIs; its v1.17.0 release is from September 15, 2026, and it is on Flathub for Linux. Finamp is a Jellyfin-only music player with offline downloads and playlists; its Flathub listing marks Linux support as beta, at version 1.0.1-beta. Neither plays movies or shows, so they sit alongside one of the clients above rather than replacing it.
FAQ
Is there an official Jellyfin app for Linux?
Not a finished one. Jellyfin Desktop is the project's own client, but it is a pre-release under a mid-stream rewrite from Qt to the Chromium Embedded Framework. jellyfin-mpv-shim is also an official Jellyfin project, built for a different audience — mpv users comfortable with a more scriptable tool.
Which Linux Jellyfin client avoids transcoding most reliably?
Delfin, Fladder, Swiftly Player and jellyfin-mpv-shim each use their own playback engine (mpv, GStreamer, Flutter's player or libVLC) and tell the server what they can decode, instead of relying only on what a browser supports. Whether one specific file actually Direct Plays still depends on its codec, container and subtitle format, and on your server's settings — see our subtitles guide for how subtitles alone can force a transcode.
Is Swiftly Player a Flatpak?
No, and the project explains why in its own README: the GNOME Flatpak runtime does not include libVLC, and building VLC inside the Flatpak sandbox would undercut the whole point of using VLC's format support to avoid transcoding. Install it through the one-line script instead, which sets up a normal apt, dnf, pacman or zypper package.
Does Skip Intro work the same way in all of these?
No. Jellyfin Desktop, the browser and Swiftly Player read Skip Intro from your own server's Media Segments, typically set up with a plugin like Intro Skipper. Delfin supports the same Intro Skipper plugin directly. Fladder lists intro skipping without documenting its method. jellyfin-mpv-shim and the two Kodi add-ons do not document Skip Intro support at all at the time of writing.
Is Kodi worth installing just for Jellyfin?
Only if you want Kodi's library views, skins or other add-ons too. If Jellyfin is your only media source, a dedicated client such as Fladder or Swiftly Player is simpler — with Kodi you install Kodi, then add a repository, then install an add-on, before you see your Jellyfin library at all.
Can I run more than one of these at the same time?
Yes. They are separate apps reading from the same server, so trying several only costs disk space and a few minutes.
Summary
- Pick Jellyfin Desktop if you want the project's own client and don't mind it being mid-rewrite.
- Pick Delfin if you want a GNOME-native app built specifically for Jellyfin and can accept an infrequent release schedule.
- Pick Fladder or Swiftly Player for an actively updated, free client with real Linux packages — Flatpak for Fladder, native distro packages for Swiftly Player.
- Pick jellyfin-mpv-shim if you want SyncPlay and Live TV and are comfortable with a more scriptable tool.
- Pick Kodi with a Jellyfin add-on only if Kodi is already your media center.
- Use the browser for a one-off watch, not daily viewing.
- For music only, Feishin or Finamp sit next to whichever video client you pick.


