Open-source project
RetroMusicPlayer/RetroMusicPlayer avatar
RetroMusicPlayer/RetroMusicPlayer

Retro Music Player plays only what is on the phone, and documents the rest by name

Best Material You Design music player for Android

5,403 stars947 forksKotlinGPL-3.0

At a glance

What is it?
Retro Music Player is a GPL-3.0 Android music player written in Kotlin that plays local files and refuses downloading or streaming. Its feature list is long and specific, its documentation usually stops at the feature name, and both of those facts matter when you decide whether it can run your library.
Who is it for?
Retro Music Player fits someone with a folder of local audio who wants themes, smart auto playlists, Chromecast, and car support. It does not fit anyone whose music lives on a streaming service, and it does not fit a Windows desktop.
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 3 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 November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • RetroMusicPlayer/RetroMusicPlayer5,403 ★ · +78
Star history
Repository2026-09-232026-11-14
RetroMusicPlayer/RetroMusicPlayer5.3k5.4k

78 Stars in the last 52 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Local files only, stated as a scope limit rather than a missing feature

Retro Music Player closes its own page with a note that matters more than any feature bullet: it is a local music player app and does not support music downloading or online music streaming. Everything else in the app assumes your music is already sitting on the device.

That note removes a category of work rather than adding one. What is left is local library handling, and it is thorough: browse by songs, albums, artists, playlists and genre, play songs by folder, filter by music duration, and edit tags. Playback basics are covered too, with gapless playback, volume controls, a sleep timer, and a play queue you can reorder.

The consequence for a reader is narrow and firm. If your library lives on a streaming service and you expected the app to pull it down, it will not, and no setting changes that. If your library is a folder of files on the phone, the app was built for exactly that, down to the tag editor.

Home ranks what you played instead of listing what you own

The player screen has five destinations: Home, Songs, Albums, Artists, Settings. Home is the one that most players of this kind do not have. It is where you see recently played and top played artists, recently and top played albums, and your favorite songs.

A second surface runs on the same idea. Smart Auto Playlists cover recently played, most played, and history, so the lists follow what you actually listen to rather than what you assembled by hand. The playlist work around them is direct: create, edit and import playlists, drag to sort a playlist or the play queue, and reorder the playing queue when it is running.

For a reader, the effect is that opening the app does not mean picking a folder to browse, it means reading a ranked view of your own listening. What the project does not say is how far back that ranking reaches, whether it decays, or whether it can be cleared, so treat the ordering as a convenience rather than a documented chart.

Ten now playing themes stacked on three base themes

Colour arrives in two layers. The three base themes are Clearly White, Kinda Dark, and Just Black, the last one aimed at AMOLED displays, and the accent colour is picked from a palette.

On top of that sits the now playing screen with ten listed themes: Normal, Fit, Flat, Color, Material, Classic, Adaptive, Blur, Tiny, and Peek. Album art can also get a carousel effect, and the lyrics screen comes in two layouts, Over Cover and Replace Cover, each shown in light, dark, and black.

Android versions gate a third layer. The wallpaper accent picker needs Android 8.1 or newer, Material You needs Android 12 or newer, and Monet themed icons need Android 13 or newer. The badge row declares Min API: 21, which is the floor for installing the app at all.

That leaves a real gap for anyone on an older phone. Below Android 12 the base themes and the ten now playing themes are still there, and the dynamic colour layers quietly are not, with nothing in the project explaining what takes their place.

Four install routes, one package id, and a channel for release news

There are four documented ways to get the app and they all resolve to the same package, code.name.monkey.retromusic.

The Play Store listing is the mainstream route. F-Droid carries the same package at f-droid.org/en/packages/code.name.monkey.retromusic/. Obtanium is wired up through an apps.obtainium.imranr.dev redirect that names the repository, the author, and the app. The GitHub Releases page is the fourth, for anyone who would rather take a tagged build directly.

Two things to settle before you pick. Minimum API is 21, which is the badge value and the real installation floor. And the project runs a separate Telegram channel, @retromusiclog, described as the place for important updates, which is its own answer to the question of how release news reaches people who installed from a third-party store.

Default branch is dev while the license badge still points at master

The default branch is dev. The license badge in the badge row still points at master, resolving to blob/master/LICENSE.md. It is a small mismatch, and it tells you where to look when a link on the project page goes missing after a branch move.

The layout is a normal Gradle Android project with a few extras worth knowing. app/ holds the application and appthemehelper/ sits beside it as its own entry, which is where theme work has a home. build.gradle.kts, settings.gradle.kts, gradle.properties, gradlew, and gradlew.bat are the build entry points. ci_signing_setup.sh is a checked in script for release signing, fastlane/ carries release automation, renovate.json is present for dependency updates, and spotless.license.kt sits at the root as well.

The documentation set is split between the repository and a hosted page. CONTRIBUTING.md, CODE_OF_CONDUCT.md, AGENTS.md, and FAQ.md sit at the top level, while the user facing FAQ lives at retromusic.app/faq.html.

Car, headset, and lock screen support arrive as a checklist

Vehicle and headset support is presented as a list of checkboxes: Chromecast support, Android Auto support, Driving Mode, Headset/Bluetooth support, lock screen playback controls, home screen widgets, gapless playback, and volume controls.

That list is the whole of the documentation for those items. No setting names, no Android version requirements, no indication of which audio formats Chromecast will take, and no explanation of what Driving Mode changes about the interface. The sleep timer, the music duration filter, and folder based playback are named in the same way, which is to say named and not specified.

The consequence for someone building a daily driver around them is that behaviour gets discovered rather than read. Whether the lock screen controls reach the queue, whether Android Auto browses playlists as well as albums, and whether the duration filter has a numeric field anywhere in the app are all open questions here. Audio formats are the same: this is described as a local player and no file type list appears in the project documentation at all.

Maintainer handover and translation both run through public channels

The project is openly recruiting. The top of the page asks for more contributors and maintainers, points at two personal accounts for a maintainer conversation on Telegram and Twitter, and states that all contributions are welcome.

Translation is the most accessible way in. The app claims 30 or more languages, routes contributors through a Crowdin project, and keeps crowdin.yml in the repository root. Bugs go to an issue tracker or the Telegram help and feedback group. Feature suggestions go to an issue with detail, or to a separate Telegram suggestions group. Two different chats for two different jobs, which is worth knowing before you post.

What none of that gives you is a review time. The page says the app is regularly updated for bug fixes and new features, and the release dates are the only evidence available to check that against.

Two tags on one day after a nine month gap

The release history pushes back on the update claim. Three tags are visible: v6.6.0 on 2025-10-28, then v6.6.1 and v7.0.3 both dated 2026-08-13. A patch level fix and a major version jump landing on the same day, after roughly nine and a half months with no tag, describes a project that ships in bursts rather than on a rhythm.

Commits tell a different story from tags. The most recent push is dated 2026-10-04, about seven weeks after that release day, so work has continued since the last version without a new number attached to it.

For a reader choosing an install source this is the practical part. A tagged build from the releases page hands you the same list with an exact version you can name. And anyone tracking a specific version should note that the default branch is dev and will not match any release, while two tags sharing one date means the higher number is the one to take.

Editorial conclusion

Retro Music Player fits someone with a folder of local audio who wants themes, smart auto playlists, Chromecast, and car support. It does not fit anyone whose music lives on a streaming service, and it does not fit a Windows desktop. Before installing, check Min API 21 against your phone, pick between a store build and a tagged release, and read the FAQ page for the parts this project page leaves out.

Frequently asked questions

What is Retro Music Player?

A Kotlin music player for Android released under GPL-3.0, with Min API 21 and the package id code.name.monkey.retromusic. It plays local files only, since the project states it does not support music downloading or online music streaming.

How do you use Retro Music Player with a local library?

Browse by songs, albums, artists, playlists and genre, or play songs by folder. The Home tab shows recently and top played artists and albums plus favorite songs, and smart auto playlists cover recently played, most played, and history.

Does Retro Music Player have a Windows version?

Nothing in the project describes one. The install routes are the Play Store, F-Droid, Obtanium, and GitHub Releases, and several features are Android specific, including Android Auto, Monet themed icons on Android 13 or newer, and a wallpaper accent picker on Android 8.1 or newer.

Are MP3 players still around in 2026?

This one still ships: the newest tags are v6.6.1 and v7.0.3, both dated 2026-08-13, and the most recent push is dated 2026-10-04. It is a local player with Chromecast, Android Auto, Bluetooth, and lock screen playback controls.

What is an alternative to Retro Music Player?

The project names no other apps. Its own position is that it skips downloading and streaming, and it is distributed through the Play Store, F-Droid, Obtanium, and GitHub Releases, with translations handled through a Crowdin project.

Official sources

  1. License: GPL-3.0
  2. Project website
  3. README
  4. Releases
  5. RetroMusicPlayer/RetroMusicPlayer on GitHub
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.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/retromusicplayer-retromusicplayer.svg)](https://hysenlabs.com/projects/retromusicplayer-retromusicplayer)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/retromusicplayer-retromusicplayer.svg)](https://hysenlabs.com/projects/retromusicplayer-retromusicplayer)

Was this useful?