Auxio: a local Android music player built on Media3 ExoPlayer
A simple, rational music player for android. Built off of modern media playback libraries, Auxio has superior library support and listening quality compared to other apps that use outdated Android functionality.
At a glance
- What is it?
- Auxio is a GPL-3.0 Android music player for local files, built on a patched Media3 ExoPlayer and taglib for metadata. It is opinionated by design, and the README says so.
- Who is it for?
- Adopt Auxio if you keep a local library on your phone or SD card and want tag-aware browsing without streaming or account features. Skip it if you need cloud sync, an iOS build, or a player that accepts large feature additions; the README states feature additions and major UI changes are less likely to be accepted.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 22 days 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 27, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Auxio solves for people with local music files
Auxio is a local music player for Android. It does not stream, and it does not read from a cloud library. The README states it is "Completely private and offline", and the only permissions it asks for are storage (READ_MEDIA_AUDIO, READ_EXTERNAL_STORAGE), foreground service and wake lock for background playback, and notifications for ongoing playback and music loading.
The target user is someone whose music sits on the device or an SD card and who cares about how that library is organised. The feature list is specific about this: disc numbers, multiple artists, release types, precise or original dates, sort tags, and an artist system that unifies artists and album artists. Those are metadata problems, not playback problems, and they are the ones most players handle badly.
The project is also explicit about what it is not. The README calls the UX "Opinionated" and says it prioritises ease of use over edge cases, and the contribution guidelines say feature additions and major UI changes are less likely to be accepted. If you want a player you can reshape, this is the wrong starting point.
The playback and metadata stack behind the interface
Playback runs on Media3 ExoPlayer, Google's current media playback library for Android, rather than the older MediaPlayer API. The README frames this as the reason Auxio has "superior library support and listening quality compared to other apps that use outdated Android functionality".
The build section adds a detail that matters for anyone reading the source: Auxio depends on a patched version of Media3 that enables extra playback features, and on taglib for metadata parsing. Both are pulled in as git submodules, which is why the repository carries a .gitmodules file and why cloning has to use --recurse-submodules. The patched Media3 is not a stock dependency you can swap out.
Feature claims that follow from that stack include automatic gapless playback, full ReplayGain support on MP3, FLAC, OGG, OPUS and MP4, external equalizer support such as Wavelet, embedded cover art, playback state persistence, and Android Auto. The ReplayGain format list is a real limitation as much as a feature: it names five container or codec families, and files outside them are not covered by that claim.
The metadata layer is where the taglib dependency earns its place. Disc numbers, multiple artists, sort tags and original dates are not fields the stock Android media scanner exposes well, so parsing tags directly is the mechanism that makes the browsing model possible.
Installing Auxio on Android and playing a first album
The README does not give a manual APK install procedure. It points at two distribution channels through badges: F-Droid and Accrescent. Those are where a user should get the app. If you want the APK directly, the Releases page is linked at the top of the README with the current tag, v4.1.5.
After installing, the app asks for the storage permission listed in the README, READ_MEDIA_AUDIO or READ_EXTERNAL_STORAGE depending on Android version. Grant it, and the library scan runs against whatever audio the system can see. There is no account, no sign-in, and no network step.
If you are building from source instead of installing, the README's build instructions start with tooling. It requires cmake and ninja-build, an NDK at version 28.2.13676358, and Java 21. The README gives this example for Java:
sudo pkg -S jdk21-openjdkThe same block appears with pkg -S android-studio for Android Studio, which is a FreeBSD pkg invocation rather than an apt or dnf one, so the exact package-manager line will differ on your system. Clone with submodules, since Media3 and taglib are submodules:
git clone --recurse-submodules https://github.com/OxygenCobalt/Auxio.gitThen build and install onto a connected device:
./gradlew assembleDebug
./gradlew installDebugThe README states that Auxio should then appear in the app list. To verify the device is visible first, it suggests running adb devices from the platform-tools directory:
cd ~/Android/Sdk/platform-tools
./adb devicesTo put test audio on the device, the README gives an adb push example:
cd ~/Android/Sdk/platform-tools
./adb push ~Music/ /sdcard/MusicThat path is copied from the README as written, including the tilde without a slash.
Where Auxio gets in your way
The build is the first real constraint. The README states plainly that you are "unable" to build this project on Windows, because the custom Media3 build runs shell scripts that only work on unix-based systems. If your development machine is Windows and you want to patch Auxio, you need WSL, a Linux box, or a container. That is not a documentation gap; it is a stated property of the build.
The second constraint is the feature policy. The README says feature additions and major UI changes are less likely to be accepted, and links a wiki page titled "Why Are These Features Missing?" from the contributing section. A player with an opinionated UX will make choices you disagree with, and the project has pre-committed to not relitigating them.
The third is scope. There is no iOS target in the repository, and there is nothing in the README to suggest one. There is no streaming, no cloud library, no sync. ReplayGain is documented for MP3, FLAC, OGG, OPUS and MP4 only. And the README does not document rollback or downgrade, so if a release regresses on your device, the README is silent on how to go back; the Releases page is the place to look for an older build.
Finally, the default branch is the development version. The README says so directly, and points at master for stable code. Anyone who clones the default branch and treats it as a release is reading unreleased work.
Auxio compared with VLC for Android
The obvious alternative for a local Android library is VLC for Android, and the difference is philosophical rather than technical. VLC is a general media player: it handles video, network streams, subtitles, and a long list of containers, and its Android interface exposes a large amount of that. Auxio is a music player that reads tags and builds a library view, and it has no video mode at all.
The practical consequence is where each one spends its complexity. If your files are well tagged and you want album artist, disc number and original date to mean something in the browser, Auxio's taglib-based metadata layer is doing work VLC's scanner does not do in the same way. If your files are badly tagged, or you also want to watch a video file, or you stream from a network share, VLC is the better fit and Auxio's opinionated library model will frustrate you.
A second comparison point is extensibility. VLC accepts a wider range of contributions and has a much broader platform footprint. Auxio's README states that feature additions are less likely to be accepted, which is a deliberate trade: a smaller surface, fewer settings, and a UI the maintainer controls. Choose based on whether you want a player that does one thing or a player that does everything.
Maintenance, releases and the GPL-3.0 licence
The repository is not archived, and the last push was on 2026-08-04. That is the same date as the v4.1.5 release, and the two releases before it, v4.1.4 and v4.1.3, landed on 2026-07-28 and 2026-07-09. The release cadence visible in the tags is roughly weekly to monthly over that window, but the project does not state a support policy, a release schedule, or how long older versions stay available.
The upgrade path for most users runs through F-Droid or Accrescent rather than manual APKs, since those are the two channels the README advertises. Builders carry more ongoing cost: the patched Media3 submodule and the taglib submodule both need to be updated in step with the app, and the NDK version is pinned at 28.2.13676358 in the instructions. A toolchain bump means revisiting the build setup.
On licensing, Auxio is GPL-3.0. The README states you can use, study, share and improve it, and redistribute or modify it under the terms of the GNU General Public License, version 3 or later. The practical implication for anyone embedding Auxio in another product is copyleft: derivative distributions carry the same licence obligations. The README also links a Licenses wiki page, and the repository carries a NOTICE file alongside LICENSE. This is a description of the stated terms, not legal advice; read the licence text and the wiki page if you plan to redistribute.
Editorial conclusion
Adopt Auxio if you keep a local library on your phone or SD card and want tag-aware browsing without streaming or account features. Skip it if you need cloud sync, an iOS build, or a player that accepts large feature additions; the README states feature additions and major UI changes are less likely to be accepted. Before installing, check the Releases page and the F-Droid listing for the current version, and confirm which branch you are reading: the default branch is the development version, and stable code lives on master.
Frequently asked questions
Is Auxio free to use?
Yes. Auxio is licensed under GPL-3.0, and the README states you can use, study, share and improve it, and redistribute or modify it under the terms of the GNU General Public License, version 3 or later. The README also links a GitHub Sponsors page for optional donations.
What is Auxio?
Auxio is a local music player for Android. The README describes it as "A simple, rational music player for Android" with a fast, reliable UI and no streaming or account features, and says it is completely private and offline.
What is a good alternative to Auxio on Android?
VLC for Android is the natural comparison: it is a general media player covering video, network streams and many containers, while Auxio is a music-only player focused on tag-aware library browsing. The right pick depends on whether you need video and streaming or a local music library.
Is Auxio the best open-source music player for Android?
The README does not rank players, so that cannot be answered from it. What the README does claim is playback based on Media3 ExoPlayer, taglib-based metadata parsing, and support for disc numbers, multiple artists, release types, sort tags and ReplayGain on MP3, FLAC, OGG, OPUS and MP4.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/oxygencobalt-auxio)