A modern cross-platform music client for crossonic-server and other (Open)Subsonic compatible music servers.
This app is still in development. Some features are missing and bugs are to be expected.
Please report any issues or feature requests.
This app should be compatible with all Subsonic compatible servers, but I recommend to only use servers implementing the OpenSubsonic standard. For the best experience (and full feature support) I recommend using crossonic-server.
Release builds exist for these platforms:
- Windows (
.exeinstaller,.zip) - macOS (
.dmg) - Linux (
.AppImage,.tar.gz) - Android (
.apk) - Web (
.zipof static files), with some caveats:- some features are disabled
- poor performance on some platforms/browsers
- limited support for transcoded playback (depends on browser)
- no gapless playback
- sub-optimal image caching
iOS/iPadOS builds will soon be available via TestFlight.
- Desktop and mobile layout
- Configurable home page
- Respects light/dark theme and accent color
- System integration (Android media API, MPRIS, SystemMediaTransportControls, …)
- Android Auto
- Currently only playlists
- Close to tray
- Stream original or transcoded media
- Configurable transcoding settings for WiFi and mobile
- Browse/search songs, albums, artists
- Release types (albums, EPs, singles, live, compilations, …)
- Release versions (Deluxe, Remaster, different release years, etc.)
- Favorite songs/albums/artists
- Playlists
- Download for offline listening
- Original (uses download endpoint)
- Transcoded
- Add songs/albums/artists
- Drag&drop reorder
- Change cover (crossonic-server only)
- Download for offline listening
- Configure ListenBrainz connection (crossonic-server only)
- Full OpenSubsonic support (gracefully handles missing features on the
server)
- API Key Authentication
- Transcoded seek
- Multiple artists/genres/…
- etc.
- Two queue system
- Normal queue
- Automatically populated when listening to an album/artist/playlist
- Priority queue
- For songs you want to listen now before continuing with the normal queue
- Both can be freely modified
- Normal queue
- Shuffle artists by song or by album
- Gapless playback
- Lyrics
- Unsynced
- Synced
- Replay gain
- Load/save queues
- Multi-library support
The OpenSubsonic API supports some features that are out-of-scope for this application:
- Video support
- Podcasts
- Chat
Installation instructions are available on the Crossonic website.
Install Flutter with all dependencies for your desired target platform.
IMPORTANT: Some Flutter versions cause issues e.g. with routing. Always use the Flutter version specified in this line of the release workflow when building this project.
Clone the repository
git clone https://github.com/juho05/crossonic
cd crossonicRun code generation:
dart run build_runner build- Install
libmpv - Install
ayatana-appindicator3-0.1orappindicator3-0.1
sudo apt install mpv libmpv-dev libayatana-appindicator3-devsudo pacman -S mpv libayatana-appindicatorIn the directory of the repository run:
flutter build linuxIn the directory of the repository run:
flutter build windowsIn the directory of the repository run:
flutter build macosIn the directory of the repository run:
flutter build apk- Select your development team in Xcode
- Open
./ios/Runner.xcworkspacein Xcode - Select
Runnerin the project navigator - Open the
Signing & Capabilitiestab and configure your signing config
- Open
In the directory of the repository run:
# to build an archive
flutter build ios
# to build a signed ipa file
flutter build ipaIn the directory of the repository run:
flutter build web --wasmNow you can serve ./build/web with a web server like Caddy.
- Use TLS (
https) if not onlocalhost - Ensure that
/sqlite3.wasmis served withContent-Type: application/wasm - Set
Cross-Origin-Opener-Policytosame-origin - Set
Cross-Origin-Embedder-Policytorequire-corporcredentialless
Copyright (c) 2024-2026 Julian Hofmann (+ Crossonic contributors)
Source code files in this repository are subject to the terms of the Mozilla Public License, v. 2.0, unless explicitly stated otherwise. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.





