Skip to content

Repository files navigation

JellyBox logo

JellyBox

The best native music player for your Jellyfin server - on macOS, Windows, Linux, iOS(including CarPlay) and Android.

Build Status Latest release License: AGPL v3 Stars Follow @_avdept Buy Me A Coffee

Download · Features · Screenshots · Development


JellyBox is an unofficial, audio-only client for Jellyfin. It focuses on doing one thing well: making your own music library feel like a modern streaming app - fast browsing, offline downloads, lyrics, and artwork-driven theming - with a UI built for each platform rather than a single stretched layout.

Important

JellyBox is a client, not a server. You need access to a running Jellyfin server with a music library on it.

Download

Platform Format
iOS / iPadOS / macOS App Store App Store
macOS .dmg (signed & notarized) Latest release
Windows Installer .exe or portable .zip Latest release
Linux .tar.gz bundle (x64) Latest release
Android .apk Latest release

Google Play distribution is on the way, need to wait 2 weeks during closed beta period.

Features

Library & browsing

  • Browse albums, artists, genres, playlists and songs across multiple music libraries
  • Search everything at once, or filter to playlists, albums, artists or songs
  • Artist pages with biography and full discography
  • Favourite tracks, synced back to your Jellyfin server
  • Create playlists and add tracks to them from anywhere in the app
  • Home page - in development

Playback

  • Playback memory - app remembers your queue and playback position between restarts
  • Time-synced lyrics overlay
  • Queue management with shuffle, repeat and a randomised "surprise me" queue
  • Per-connection streaming profiles with automatic transcoding when a codec isn't supported natively
  • Audio quality badge, so you always know whether you're getting the original file

Offline

  • Download albums and tracks for offline listening
  • Full offline mode - access to your downloaded tracks even if you're on plane.

Look & feel

  • Colour scheme generated from the current album artwork
  • Studio Mode - a full screen animated mode for aesthetic feel(see screenshots)

Desktop & system integration

  • Media keys and global keyboard shortcuts
  • MPRIS support on Linux (works with GNOME/KDE media widgets and playerctl)
  • AirPlay and system output routing on macOS and iOS
  • Lock screen and notification controls on iOS and Android
  • In-app changelog, so you can see what landed in each release
  • Apple CarPlay - currently in beta stage.
  • Android auto - in development

Screenshots

Desktop

Studio Mode - full-screen playback with an animated backdrop

Studio Mode - full-screen animated mode made for aesthetic

Time-synced lyrics Songs view
Time-synced lyrics Songs
More screenshots - search, albums, artists, downloads
Search across albums, artists, songs and playlists Album view
Search Album
Artist view with biography and discography Downloaded albums available offline
Artist Downloads

Mobile

Now playing on iPhone Time-synced lyrics on iPhone Albums grid on iPhone Artist view on iPhone Downloads on iPhone
Now playing Lyrics Albums Artist Downloads

Platform notes

macOS - media keys

macOS does not let an app read media keys without permission. On first use JellyBox will point you at System Settings → Privacy & Security → Accessibility; enable JellyBox there. If it isn't in the list, add it with the + button.

Windows

The installer is unsigned, so SmartScreen will warn on first run - choose More info → Run anyway. The portable zip has no installer and can be run from anywhere.

Android

Builds are distributed as APKs from the releases page. You'll need to allow installs from your browser or file manager.

Linux

The release bundle expects a few shared libraries. On Debian/Ubuntu:

sudo apt-get install libmpv-dev mpv libsecret-1-dev libsqlite3-dev libjsoncpp-dev libcurl4-openssl-dev libdbus-1-dev

Development

Prerequisites - Flutter with Dart SDK 3.8 or newer, plus the toolchain for whichever platform you're targeting (Xcode, Android Studio, or the Linux packages above).

git clone https://github.com/avdept/JellyBoxPlayer.git
cd JellyBoxPlayer

flutter pub get
dart run build_runner build --delete-conflicting-outputs   # freezed, json_serializable, retrofit
flutter run                                                # then pick a target device

Run the tests with flutter test, and the analyzer with flutter analyze - CI runs both on every push.

Codegen is needed whenever you touch a model, DTO or API client; those *.g.dart and *.freezed.dart files are generated, not hand-edited.

Contributing

Bug reports, feature requests and pull requests are all welcome - see CONTRIBUTING.md for the workflow.

License

GNU AGPL-3.0 © ProdigyTech Inc.

About

The best native desktop and mobile music player for Jellyfin

Topics

Resources

Contributing

Stars

434 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages