Skip to content
Swiftly Music Blog Discord GitHub
  1. Swiftly Player
  2. Blog

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

ClientPackagingPlayback engineWaylandSkip Intro / Media SegmentsMultiple serversLatest release checked
Jellyfin DesktopFlathub (org.jellyfin.JellyfinDesktop), or GitHub AppImage/dev buildslibmpv 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 rewriteYes, via the web client's Media Segment ActionsYes, connect and switch serversv2.0.0 (pre-release)
DelfinDownloads from delfin.avery.cafe; source on Codebergmpv or GStreamer, behind a backend abstractionNative GTK4/libadwaita appJellyscrub and Intro Skipper plugin supportNot documentedv0.4.8, November 22, 2024
FladderFlatpak (nl.jknaapen.fladder), AppImage, from GitHub releasesFlutter's own playerNot documentedListed, method not documentedYes, several accounts and serversv0.11.1, September 8, 2026
Swiftly Playerapt, dnf, pacman, zypper via one install script, or build from sourcelibVLC (Direct Play / Direct Stream)GTK 4 app; Wayland behaviour not separately documentedYes, Skip Intro, Skip Recap, Skip CreditsYes, several servers and accounts1.0.4
jellyfin-mpv-shimFlathub (com.github.iwalton3.jellyfin-mpv-shim), pip/pipx, or Arch's extra repositorympv (native pipeline)Yes, "properly supported and actually tested" per the v3.0.0 notesNot documentedBuilt as a cast target more than a multi-server browserv3.0.0, September 2026
Kodi + Jellyfin add-onsFlathub (tv.kodi.Kodi) for Kodi, plus the add-on repository at kodi.jellyfin.orgKodi's own playerDepends on your Kodi buildNot listed in either add-on's READMEYes with JellyCon, not documented for Jellyfin for KodiKodi 21 "Omega"; Jellyfin for Kodi v2.2.0; JellyCon v1.0.2
The browserNoneFirefox's or Chrome's own decoder, or server-side transcodingWorks under Wayland like any other browser tabYes, Media Segment ActionsYes—

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.

Related articles

All articles