Music Assistant Mobile App: A KMP Client Still in the Saddle
The (official) Music Assistant Mobile app is a cross-platform client application designed for Android and iOS. Developed using Kotlin Multiplatform (KMP) and Compose Multiplatform frameworks, this project aims to provide a unified codebase for reliable music management across multiple platforms.
At a glance
- What is it?
- The official Music Assistant mobile client uses Kotlin Multiplatform and Compose Multiplatform to serve Android and iOS, but it is not production-ready. This review covers its architecture, setup, limitations, and who should wait.
- Who is it for?
- Adopt this app if you are an existing Music Assistant Server user who wants an early, unified mobile client and can tolerate instability, missing app-store releases, and a strict server version window. Do not adopt it if you need offline playback, static group creation, or a stable production app.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What This App Solves and Who It Is For
The Music Assistant mobile app targets people who run a Music Assistant Server and want a native-feeling remote control and local player on their phone or tablet. The server aggregates music from various providers and manages players, but its official mobile client has been missing. This project fills that gap with a single Kotlin Multiplatform codebase for Android and iOS. The intended user is a Music Assistant enthusiast, not a casual music listener. The README is explicit that the app is not for offline playback, which already narrows the audience. It is also not for anyone who expects a finished product: the project is under heavy development and not published to any app store. Early adopters will sideload APKs or join TestFlight.
The Architecture: One Codebase, Two Platforms
The app is built with Kotlin Multiplatform (KMP) and Compose Multiplatform, which means the UI and business logic are shared between Android and iOS. The README describes a unified codebase for reliable music management across platforms. The project distinguishes between common features and platform-specific implementations. On Android, the app uses a media service for background playback and a notification for quick controls. On iOS, it uses native AudioQueue (CoreAudio) for audio output, supporting FLAC, Opus, and PCM. For streaming, the app uses the Sendspin protocol over WebRTC or WebSocket. On iOS, WebRTC data channel transport is used for low-latency streaming. This split is a realistic approach: you cannot fully abstract audio and car integrations, so the project keeps the core shared and the edges native.
Getting It Running: Commands and Requirements
There are no build commands in the README, but the installation path is clear. Android users download the APK from the latest release on GitHub. iOS users join a TestFlight program. The app requires Android 8.0 or later and iOS 18.5 or later. For Android Auto, there is a dedicated document, docs/ANDROID-AUTO.md, that explains how to enable Android Auto with sideloaded debug or self-signed builds, including the Unknown sources flow. That document also describes shell-based testing of MEDIA_PLAY_FROM_SEARCH intents. The app configuration and usage are documented in docs/app-documentation/index.md. You must have a Music Assistant Server, and the app supports the latest and one previous stable server versions at the time of each release. This is a hard constraint: if you run an older server, the app may not work.
Car Integration: Android Auto and CarPlay Are Not Equal
Car support is a core focus, but the two platforms are at different maturity levels. Android Auto has support for the built-in player and voice playback via Google Assistant and Gemini App Actions. The README says this works in the car and on the phone, with a single symmetric code path. It also lists a full phrase reference and testing notes. Apple CarPlay support exists but is described as very early state, with a lot of bugs expected. This asymmetry matters: if you are an iPhone user, do not expect a reliable in-car experience yet. The in-car experiences are dedicated exclusively to the local player; managing external players is out of scope. That is a clear boundary. If your primary use case is controlling multiple speakers from the car, this app will not do it.
Limitations and Wrong Tool Cases
The most obvious limitation is the explicit disclaimer: this app is not intended to provide offline playback. That means no listening on a plane or in a dead zone. Another limitation is that static group creation is not supported, only managing dynamic and static groups. The README says no static group creation, which is an odd omission for a music manager. Also, the server compatibility window is narrow: only the latest and one previous stable server versions. If you are behind on server updates, the app may break. The project is not in a production state, so crashes and missing features are expected. For anyone who needs a stable, store-published music client, this is the wrong tool. Also, if you do not run a Music Assistant Server at all, this app is useless.
Alternatives: What Else You Could Use
The closest alternative is the Music Assistant web interface, which runs in a browser and works on any device. The web UI does not require a dedicated app install and can control players and browse the library, but it lacks native audio playback and car integration. For local playback on Android, you could use a generic UPnP or DLNA client, but those do not integrate with Music Assistant's player groups or the Sendspin protocol. On iOS, the default Music app or third-party players like VLC can play local files, but they cannot control Music Assistant players. The key difference is that this mobile app is the only client that combines server control, local playback, and car integration in one package. If you need offline playback, no alternative in the Music Assistant ecosystem provides it, so you would need to use a different music server entirely.
Maintenance and Upgrade Cost
Because the project is under heavy development, the upgrade cadence is high. The release history shows frequent builds: iOS builds 48 and 49 were pushed on the same day, and Android 0.12.0 was released the same day. That suggests rapid iteration, which is good for bug fixes but bad for stability. Each release is tied to a server version window, so upgrading the app may force you to upgrade the server as well. The README warns that releases support the latest and one previous stable server versions. This means you must track both app and server releases. The license is Apache-2.0, which is permissive and allows commercial use, modification, and redistribution, but you should read the license text for specifics. There is no mention of a contribution guide or CI setup in the README, so the maintenance cost for a user is mostly about keeping up with releases and re-testing your setup.
Editorial conclusion
Adopt this app if you are an existing Music Assistant Server user who wants an early, unified mobile client and can tolerate instability, missing app-store releases, and a strict server version window. Do not adopt it if you need offline playback, static group creation, or a stable production app. Before using, verify your Music Assistant Server version matches the supported range, check the known limitations in the app documentation, and test Android Auto or CarPlay only if you accept bugs. The project is under heavy development, so plan to track releases and re-test frequently.
Community notes