Open-source project
staniel359/muffon avatar
staniel359/muffon

muffon: a desktop music client that treats sources as interchangeable

Advanced multi-source music streaming + discovery client for desktop. Free, clean, no login, no ads.

2,237 stars86 forksVueAGPL-3.0

At a glance

What is it?
Rather than being a Spotify alternative, muffon is an aggregator. It pulls audio from nine services and metadata from seven more, and the interesting part is how much of that is currently broken.
Who is it for?
muffon's actual proposition is not streaming but aggregation: audio, video, lyrics, discography and listening history drawn from a dozen services into one interface, with no login, no ads and no download feature by design. That makes it closer to a research tool for music discovery than to a Spotify replacement, and the three services its own README marks as currently not working tell you how much of that surface depends on undocumented APIs.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 11 days ago.
What is it written in?
Mainly Vue, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 7, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Audio from nine services, metadata from seven more

The feature matrix is organised by what each source provides rather than by what the application can do, and that is the clearest statement of the design. Metadata comes from Last.FM. Audio comes from Bandcamp, Odnoklassniki, SoundCloud, Spotify, VK, Yandex Music and YouTube Music. Video is YouTube. Lyrics are Genius and MusixMatch. Discography is Discogs and MusicBrainz.

Three of those carry an inline caveat in the README: Spotify is marked currently not working, Yandex Music is marked currently not working, and MusixMatch is marked currently not working. That is three of the eleven audio and lyrics sources listed as functional, and it is the single most useful piece of information in the README.

Two observations follow. First, the project depends on services that do not publish stable APIs, so a provider can break without a deprecation notice. Second, Last.FM and Discogs and MusicBrainz are the sources likely to be stable, and they are all metadata rather than audio, which means the reliable backbone of the application is discovery rather than playback.

A reader deciding whether this fits should start from that list rather than the feature bullets. If your library lives on Spotify's catalog and you want Spotify audio, that is currently the gap. If you listen on Bandcamp and read credits on Discogs, the combination is intact.

A piracy disclaimer that shapes the feature set

The README leads with a disclaimer marked IMPORTANT and it is worth reading as a design constraint rather than as legal boilerplate. It says muffon was created only for music discovery purposes, that although it uses music streaming services as audio sources the authors do not encourage piracy of any kind, and that muffon therefore does not use streaming services' premium accounts and does not have a download feature. What it provides is the functionality of a basic account, such as low quality streaming.

That single paragraph explains several otherwise puzzling product decisions. No download feature exists. No quality selector exists. Premium-tier audio is not accessible. These are not unfinished features, they are the deliberate ceiling on what the application does.

The closing request follows from the same logic: if you found the music you like, buy a paid account of your preferred streaming service, or preferably support the artists by buying records, merchandise or tickets.

What this means practically is that muffon cannot replace a paid streaming subscription for anyone who cares about audio quality or completeness. It is positioned upstream of the subscription, as a discovery and organisation tool. That framing also explains the recommendation feature, which is based on your library, and the Last.FM scrobbling, which is the long-standing practice of recording what you actually listen to.

The feature list is the actual documentation

There are close to forty bullet points in the features section and they are dense with parenthetical detail that would not survive being turned into prose. Reading them is the fastest way to understand the scope.

The core is listening to artists, albums and tracks, with offline support, an equalizer and track to audio automatch. Around that sits artists pages with tracks, albums, similar artists and shows, albums, tracks with similar tracks and albums, and tags for all three.

Then the library-oriented features: a queue with shuffle and loop and album adding, a music library with import from account and compatibility checking, music services integration for Last.FM and Spotify, recommendations for artists and tracks based on your library with filters, and search across artists, albums, album groups, tracks, lyrics, tags, videos, video channels and video playlists through all of the sources above.

The social half is substantial and worth calling out because it is not what most people expect from a music player. There is radio by tags, artists and top, scrobbling to Last.FM, Discord Rich Presence with customisable buttons, posting with comments, following, messaging, a feed including a global one, communities, and sharing of just about every object type including playlists and communities.

There are also playlists with account import, favourites, bookmarks, listened and watched history, external links out to every provider, new and upcoming releases, a multitag search across artists and albums, theming with dark mode, background and transparency, and history broken into activity, player and browser.

Discord Rich Presence, posting, messaging, feeds and communities mean this is closer to a social music platform than a player, and that is a large surface area for a volunteer project to maintain.

Vue and Electron, with a build pipeline you can read

The technical stack is two entries: Vue and Electron. The repository tree confirms the shape, with `src/` for the Vue application, `electron/` for the main process, `public/` for static assets, `vite.config.js` and `index.html` for the frontend build, and `electron-builder.yml` for packaging.

The `package.json` is where the real detail is. The desktop entry point is `electron/main.js`, the module type is ESM, and the scripts are split into a development path and a packaging path. For development there is `start:vue` running Vite and `start:electron` launching Electron with `--disable-gpu`. For building there is `build:vue` for the frontend bundle and `build:electron` calling electron-builder with the `--dir` flag for an unpacked output. Publishing is `package:electron` with the always flag, wrapped by `release` which builds the Vue side first.

Two details are worth noting for anyone contributing or forking. The `preinstall` script runs `npx only-allow pnpm`, so npm or yarn installs are refused outright, and there is a `pnpm-workspace.yaml` alongside a `pnpm-lock.yaml`. And `postinstall` and `postuninstall` both run `electron-builder install-app-deps`, which is what rebuilds native modules against your local Electron version.

The Electron choice has the usual consequences for file size and memory, and it is worth weighing before installing on a laptop that is already memory constrained. The upside is that a Vue codebase runs identically on Windows, macOS and Linux, and all three are listed as supported along with both architectures.

Fourteen languages, and a version gap between the manifest and the releases

The localisation effort is genuinely impressive for a project of this size. The README lists fourteen languages with contributor credits: Belarusian, German, English, Spanish, French, Hebrew, Italian, Japanese, Korean, Polish, Brazilian Portuguese, Russian, Turkish and Chinese. Several list two contributors, which suggests some languages are maintained actively rather than translated once and left.

The Russian and Belarusian entries and several of the source services suggest a user base concentrated in Eastern Europe and the former Soviet region, which also explains the presence of Odnoklassniki and VK as audio sources. Those are services with substantial catalogues in those markets and effectively nothing elsewhere.

Now the version detail, which is a real discrepancy worth naming. The three most recent releases are v2.4.0 from 2026-01-29, v2.3.0 from 2025-08-19 and v2.2.0 from 2025-04-14. The `package.json` declares version 2.5.0. So the manifest is one release ahead of the newest tag, which most likely means 2.5.0 is in preparation rather than that a release was withdrawn.

The licensing is AGPL-3.0 in both the GitHub metadata and the package manifest, which for a project of this type is a deliberate choice: anyone who modifies it and distributes the result must publish their modifications. The last push was on 2026-09-26 and the project is not archived, so work is continuing even between tagged releases.

Installing, and the SmartScreen friction on Windows

Downloads go through the GitHub releases page, and the repository carries no package publishing setup for Linux or macOS, so this is a download-an-installer project rather than a distribution-aware one. The homepage field points at a Netlify address, which is the project's documentation or web presence rather than a download mirror.

The README has a Troubleshooting section for a reason. On Windows 10, if you see the SmartScreen warning during installation, the instructions are to click More info and then Run anyway. The explanation is cut off in the visible text but the reason is well known: an unsigned or unrecognised executable triggers the reputation check, and a project without a commercial code signing certificate cannot clear it.

That is the practical friction point for new users on Windows, and it is worth knowing in advance rather than discovering mid-install. The other platform notes are thinner, which suggests Windows is where the user base concentrates, consistent with the localisation list.

There is also a `docs/` directory in the tree and a `semantic/` directory alongside `semantic.json`, which suggests the project uses semantic versioning conventions driven by a tool rather than by hand. For anyone scripting releases, that is the mechanism to look at.

Editorial conclusion

muffon's actual proposition is not streaming but aggregation: audio, video, lyrics, discography and listening history drawn from a dozen services into one interface, with no login, no ads and no download feature by design. That makes it closer to a research tool for music discovery than to a Spotify replacement, and the three services its own README marks as currently not working tell you how much of that surface depends on undocumented APIs. Read the source list before you install, because a feature you want may be attached to a provider that is currently down. For anyone building on this idea themselves, the AGPL-3.0 license and the Vue plus Electron stack make it a legitimate starting point.

Frequently asked questions

What is replacing Spotify?

Nothing in this repository, and muffon does not set out to be that. It is an aggregator that draws audio from Bandcamp, SoundCloud, VK, YouTube Music and others while using Last.FM, Discogs and MusicBrainz for metadata, with no login and no ads. Spotify is one of its listed sources but the README marks it currently not working.

Which music sources actually work in muffon right now?

The README marks three as currently not working: Spotify, Yandex Music and MusixMatch. The sources listed without a caveat are Last.FM for metadata, Bandcamp, Odnoklassniki, SoundCloud, VK and YouTube Music for audio, YouTube for video, Genius for lyrics, and Discogs and MusicBrainz for discography.

Can muffon download music or play in high quality?

No, and that is a deliberate design choice rather than a missing feature. The README states it does not use streaming services' premium accounts and has no download feature, providing only basic account functionality such as low quality streaming. The stated purpose is music discovery, not a substitute for a paid subscription.

Is muffon free and does it need an account?

The feature list says absolutely free, no ads, and no login, with the caveat that some features require an account. Downloads come from the GitHub releases page. The license is AGPL-3.0, so anyone distributing a modified version has to publish those modifications.

What platforms and languages does muffon support?

Windows 10 and 11 on x64, macOS on x64 and arm64, and Linux on x64 and arm64. The interface is translated into fourteen languages including English, Russian, Chinese, German, Spanish, French, Japanese and Korean, several of them maintained by more than one contributor.

Official sources

  1. License: AGPL-3.0
  2. Project website
  3. README
  4. Releases
  5. staniel359/muffon 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/staniel359-muffon.svg)](https://hysenlabs.com/projects/staniel359-muffon)