A premium Jellyfin Client for Android Mobile, Android TV, iOS, Linux, MacOS, Tizen, tvOS, Web, and Windows https://moonfin.io
  • Dart 91.4%
  • Kotlin 2.4%
  • C 2%
  • Swift 1.5%
  • C++ 1.2%
  • Other 1.4%
Find a file
mikey 355a2bc939 Translated using Weblate (Finnish)
Currently translated at 99.0% (4389 of 4430 strings)

Translation: Moonfin/Moonfin-Core
Translate-URL: https://translate.moonfin.io/projects/moonfin/moonfin-core/fi/
2026-10-22 20:43:17 +00:00
.github Split the Android CI build into parallel mobile and TV builds 2026-10-13 21:14:11 -04:00
android fixed #1747 by sending Live TV channels to the external player and keeping VLC's live stream open until you come back, and added a Live TV Only option 2026-10-22 13:52:16 -04:00
assets Rebuilt the EPUB reader 2026-10-21 18:33:31 -04:00
integration_test/admin Rebuilt the admin analytics page 2026-10-17 16:07:49 -04:00
ios fixed #1678 and #1809 by giving iOS video its own Now Playing session and building a fresh one when Picture in Picture closes and on every load, so AirPods and Control Center keep controlling Moonfin 2026-10-16 17:43:41 -04:00
lib Translated using Weblate (Finnish) 2026-10-22 20:43:17 +00:00
linux fixed #1626 by having installed packages clear the AppImage's leftover menu entry once that image is gone, so it no longer hides the package's own launcher 2026-10-21 20:50:36 -04:00
macos fix(macos): stop text from wrapping in the middle of words 2026-10-21 12:51:28 -04:00
native Fixed DS touch by starting EmulatorJS melonDS in touch mode, moving the landscape Select and Start pills off the touch screen, and holding taps shorter than a frame for one frame in the native host. 2026-10-21 00:34:10 -04:00
packages fixed #1951 by letting administrators download subtitles even when Jellyfin leaves the subtitle management permission off for them 2026-10-22 14:22:16 -04:00
scripts Added Backspace key handling and include SQLite WebAssembly binary for web and some optimizations to hopefully not have it lag out 2026-04-22 11:23:38 -04:00
test added a Server Order collection sort that keeps the order Jellyfin returns and made it the default, closes #1569 2026-10-22 14:57:17 -04:00
tvos rebuilt the playback information dialog 2026-10-22 12:47:17 -04:00
web fixed ASS subs for web 2026-07-31 10:53:07 -04:00
windows Fix hidden Flutter content when showing the Windows runner 2026-10-13 08:43:37 -07:00
.coderabbit.yaml added a CodeRabbit config 2026-10-04 13:29:18 -04:00
.editorconfig correct the editorconfig globs to match the tree and stop saves rewriting vendored whitespace 2026-09-07 10:59:59 -04:00
.gitignore added a Microsoft Store MSIX build and removed the moonfin:// registry key on uninstall. 2026-10-03 02:12:13 -04:00
.metadata Dropping Tizen since smart-tv handles it all already 2026-09-06 23:22:12 -04:00
analysis_options.yaml regenerated l10n and added the analyzer excludes flutter 3.47 adds 2026-09-05 23:20:47 -04:00
build-android.ps1 Updated packages and created a rar fork in order to meet Play Store's 16KB memory page sizes requirement 2026-03-27 18:40:56 -04:00
build-android.sh Split the Android CI build into parallel mobile and TV builds 2026-10-13 21:14:11 -04:00
build-ios.private.env.example added iOS build script 2026-03-25 12:29:33 -04:00
build-ios.sh Fix the codesign guard on MacOS bash 3.2 2026-09-06 23:13:55 -04:00
build-linux.sh Let the AppImage and tarball launchers look for libraries in nix-ld's path, so NixOS stops reporting every system library as missing before the app starts, fixes #1820 2026-10-15 05:47:41 -04:00
build-macos.sh Fold tvOS into the platform build and let the Apple builds go to TestFlight 2026-09-07 12:09:25 -04:00
build-web-plugin.sh updated script to build the flutter web bundle into both plugin frontends 2026-07-15 16:01:14 -04:00
build-windows.ps1 added a Microsoft Store MSIX build and removed the moonfin:// registry key on uninstall. 2026-10-03 02:12:13 -04:00
CONTRIBUTING.md Added contributing guidelines to the repository 2026-10-05 17:37:17 -04:00
firebase.json Added Seerr push notifications 2026-07-07 20:58:07 -04:00
l10n.yaml Added localization support 2026-04-08 11:09:34 -04:00
LICENSE Updated readme and added license 2026-03-26 17:35:39 -04:00
PRIVACY_POLICY.md added Emby client log upload through the Moonfin plugin, and logged Emby network calls into the report 2026-09-13 19:28:21 -04:00
pubspec.lock repinned the media-kit fork to 50013aee so Linux on X11 keeps GDK's GL context intact and frees mpv's render context in the right context 2026-10-21 20:36:34 -04:00
pubspec.yaml repinned the media-kit fork to 50013aee so Linux on X11 keeps GDK's GL context intact and frees mpv's render context in the right context 2026-10-21 20:36:34 -04:00
README.md updated readme 2026-10-10 21:27:33 -04:00

Moonfin

Premium Jellyfin & Emby client for mobile, tablet, desktop, TV, and web


moonfin_1920x1080

License Release Github Downloads Google Play Downloads BuyMeACoffee Discord

← Back to main Moonfin project

Moonfin is a media client for Jellyfin and Emby servers, built with Flutter. One shared codebase powers phones and tablets, Windows, macOS, and Linux, Android TV, Fire TV, and Apple TV, and the browser. It's made for people who want a modern, customizable experience on every screen they own.

Where to get it

Platform Download
Android Mobile / TV Google Play
Fire TV Amazon Appstore
iOS App Store
Linux Arch Linux
Linux
macOS App Store
Homebrew
tvOS App Store
Windows Release
WinGet
or winget install Moonfin.Moonfin

Supported Servers

Server Minimum Version Status
Jellyfin 10.8.0+ Full support
Emby 4.8.0.0+ Full support

Platform Support

Platform Minimum Version Status
Android 7.0 (API 24) Full support
Android TV / Google TV Android 7.0 (API 24) Full support
Fire TV Fire OS 6 Full support
iOS 16.0 Full support
Apple TV (tvOS) 17.0 Full support
macOS 14.0 (Sonoma) Full support
Windows 10 (x64 and ARM64) Full support
Linux GTK 3+, CMake 3.13+ Full support (Wayland only)
Web Modern browsers (installable PWA) Full support

Android TV, Fire TV, and Apple TV ship from this same codebase with a TV-tuned interface and D-pad navigation. Fire TV runs the same native backend as Android TV. Web runs as an installable PWA through the Moonbase server plugin.

Features

  • One codebase, every screen. Phones, tablets, desktop, Android TV, Apple TV, and web, with navigation tuned for touch, pointer, and remote.
  • Playback that just works. Wide codec support including AV1, HEVC, Dolby Vision, Dolby Atmos, HDR10+, and audio passthrough. Dolby Vision Profile 7 direct plays on Apple and Android TV, converted in real time instead of transcoded, and Windows can send HDR to the display untouched. See Playback and Codecs.
  • Offline downloads in original or smaller server-transcoded quality, with automatic folder organization, offline subtitles, and automatic downloads of new episodes for the series you follow. See Downloads.
  • Ebooks and audiobooks. Read EPUB, MOBI, AZW/AZW3, PDF, and comic archives. Play M4B audiobooks with chapter navigation.
  • Retro games browsed and played in-app from a server game library, with gamepad support, save states that sync between devices, and hardware rendering on Android. See Retro Games.
  • Multi-server unified library that merges several Jellyfin and Emby servers into one browsable, searchable UI.
  • A setup wizard on first run that asks how you want the app to look, with live previews built from your own artwork.
  • Five detail screen styles to pick from: Classic, Modern, Spotlight, Nouveau, and Minimalist.
  • Featured media bar with six layouts, plus optional in-bar trailer previews.
  • Themes and a Theme Store with a built-in editor, server-side sync, and an OLED mode for true blacks, plus custom loading animations and a screensaver on TV.
  • An integrated admin panel for settings, users, libraries, logs, devices, and analytics, plus a messages window for notes from your server admin.
  • Discovery with Seerr built into the details screen, with trending, popular, and upcoming rows and request status overlays.
  • Live TV and DVR with a program guide, a quick channel changer on TV, automatic recovery when a channel stalls, and recording management.
  • Trickplay scrubbing as a single thumbnail, a filmstrip, or full screen, on both Jellyfin and Emby.
  • Cinema Mode and segment skipping for pre-rolls, intros, credits, and SponsorBlock.
  • Casting and remote control over Google Cast, DLNA, and AirPlay, plus control of other Jellyfin devices on your network with a D-pad and search typed from your phone. Other Jellyfin apps can steer Moonfin too.
  • SyncPlay for synchronized group watching.
  • Personal ratings as a like, five stars, or a score out of ten, usable to sort or filter a library.
  • Kids Mode that strips the app back to what a child needs and locks the way out with a PIN, plus blocked ratings that apply everywhere in the app.
  • Achievement Badges drawn natively when your Jellyfin server runs the Achievement Badges plugin, including its friends list and chat.
  • Anime markers for filler, recap, canon, and subbed or dubbed episodes, served by the Moonbase plugin.
  • Ratings from MDBList and TMDB, home row customization with a seasonal holiday row, and in-app update checks.

The full list is on the Features wiki page.

Screenshots

TV and desktop

Home screen with the featured media bar

Player with trickplay thumbnails and the subtitle menu Live TV guide, channel changer and player

The five detail screen styles The six media bar styles

Modern and Classic home rows Top and Sidebar navigation

Books library and retro game library Music player with synced lyrics

Mobile

Phone home screen with the featured media bar Phone player with trickplay and the subtitle menu The five detail screen styles on a phone The six media bar styles on a phone

Top, Sidebar and Bottom navigation on a phone Phone Live TV guide and player Phone books and retro game libraries Phone music player with synced lyrics

Installation

The store links above are the easy route. To install a file yourself, download it from the Releases page and pick the one for your device:

Platform File
Android (phones and tablets) Moonfin_Android_v<version>.apk
Android TV / Google TV / Fire TV Moonfin_AndroidTV_v<version>.apk
iOS Moonfin_iOS_v<version>_unsigned.ipa (for self-signing)
Apple TV Moonfin_tvOS_v<version>_unsigned.ipa (for self-signing)
Windows x64 Moonfin_Windows_v<version>.exe
Windows ARM64 Moonfin_WindowsARM64_v<version>.exe
macOS Moonfin_macOS_v<version>.dmg
Linux x64 Moonfin_Linux_v<version>.<ext> (AppImage, deb, rpm, snap, flatpak, tarball)
Linux ARM64 Moonfin_LinuxARM64_v<version>.<ext> (same formats)
Web Served as a PWA by the Moonbase server plugin, no download needed

On Arch Linux, install from the AUR with yay -S moonfin-bin (or paru -S moonfin-bin, pamac build moonfin-bin).

Click-by-click steps for every platform are on Installation, and Getting Started covers connecting to your server for the first time.

Building

Flutter stable 3.47 or newer is the one thing every platform needs (Dart 3.13 comes with it). Each target also needs its own toolchain: Android Studio with the SDK and NDK for Android, Xcode and CocoaPods for iOS and macOS, the flutter-tvos toolchain for Apple TV, Visual Studio and vcpkg for Windows, and a handful of development packages on Linux. Every Android command also takes a --flavor.

git clone https://github.com/Moonfin-Client/Moonfin-Core.git
cd Moonfin-Core
flutter pub get

The per-platform build commands are on Building from Source.

Documentation

The deeper reference material lives in the Wiki:

Page What it covers
Features The full feature list, section by section
Playback and Codecs The backend per platform, the codec table, HDR, and audio passthrough
Downloads Original and transcoded downloads, quality presets, and storage paths
Retro Games Playing server game libraries in-app, cores, controllers, and save states
Installation App store links first, then installing a release file by hand on every platform, and how updates work
Getting Started Connecting to your server, Quick Connect, the setup wizard, and the settings worth a look on day one
User Guide The player on touch, remote and keyboard, Live TV, casting and remote control, Seerr requests, downloads, subtitle downloads, themes, parental controls, and Kids Mode
Common Problems Plain fixes for connection, login, playback, sound, subtitle, download and casting trouble
Collecting Logs Capturing a diagnostic report for a bug report
Custom mpv Configuration Tuning playback with your own mpv.conf, allowed options, and SVP on Windows
Building from Source Toolchain versions, step by step setup, and the build commands for every platform
Development Developer notes, contributing guidelines, and the pull request process

Contributing

Contributions are welcome. Check the existing issues first, discuss major feature changes before implementing them, match the existing code style, run flutter analyze, and test on at least one target platform. Keep pull requests focused and include context, screenshots or logs where useful.

See CONTRIBUTING.md for the full guidelines and the pull request process.

Help translate Moonfin here

Moonfin Core translation status by language

Support and Community

Credits

Moonfin is built on the work of:

  • Jellyfin Project
  • Jellyfin client contributors
  • Moonfin contributors
  • MakD - Original Jellyfin-Media-Bar concept that inspired our featured media bar
  • MediaLyze The Admin analytics UI was inspired by this open-source project

License

Moonfin is free software. You can redistribute it and modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License or, at your option, any later version. See LICENSE for the version 2 text.


Moonfin is an independent project and is not affiliated with the Jellyfin or Emby projects.
← Back to main Moonfin project