Coda is a focused native Android client for Navidrome and compatible OpenSubsonic servers. It keeps artwork, albums, and the listening queue at the center of the experience.
Coda is an independent community project and is not affiliated with or endorsed by Navidrome.
- Artwork-led native Android design with album-derived colors.
- Album-first browsing with chronological discographies, multidisc releases, ratings, and search.
- A visible queue with saved position and handoff between compatible clients, plus album continuation across Coda for Android and macOS. New handoffs from paused Now Playing reveal the Home offer without interrupting ordinary browsing.
- Album Resume Play keeps the whole album queued at the saved track; Append adds the remainder.
- Clearing the queue returns directly to the browsing screen beneath Now Playing.
- Queue cache prototype: prepare the remaining queue with one tap, using the existing audio cache.
- Original-format streaming on Wi-Fi, server-configured Opus on cellular, and scrobbling.
- Android Auto, notification and Bluetooth controls, and a dedicated immersive Now Playing view.
- Android 9 or newer.
- A Navidrome server or compatible OpenSubsonic implementation.
- Network access to that server; HTTPS is recommended outside a trusted network.
Download the APK from the latest GitHub release and open it on your phone. Allow installation from your browser or file manager if prompted.
Install JDK 17 and Android SDK 36 with its build tools. Configure the SDK path through ANDROID_HOME
or sdk.dir in local.properties.
Then build the debug app:
./scripts/gradle.sh assembleDebugThe APK is written to app/build/outputs/apk/debug/app-debug.apk.
Run the automated checks with:
./scripts/verify.shCoda contains no analytics, advertising, or tracking SDK. Server credentials are encrypted using Android Keystore.
Artwork and a rolling audio window are cached on the device; the queue download icon expands that window to the remaining queue. On cellular, unmarked upcoming tracks use Opus unless their originals are fully cached. The current track keeps its format for uninterrupted playback. Disconnecting clears the account's credentials and caches. Temporary network failures trigger delayed cache retries; interrupted playback retries while playback is still requested.
Copyright 2026 iamtoolino.
Coda's source code is licensed under the Apache License, Version 2.0. Bundled libraries retain their respective licenses.



