OpenDMG
Spotifly icon

Spotifly for Mac

Lightweight Spotify player with fast, minimal playback controls.

By ralph. Free and open source, MIT licence.

Get it with OpenDMG View source on GitHub

Spotifly at a glance

Released
3 October 2026
Download size
3.5 MB
Works on
Apple silicon and Intel
Licence
MIT
Category
Audio and Music
Developer
ralph
GitHub stars
166

About Spotifly

Native Spotify client

Screenshots

Spotifly screenshot 1Spotifly screenshot 2

How to install Spotifly on a Mac

  1. Get OpenDMG. It is a free app store for open source Mac apps. Download OpenDMG.
  2. Search for Spotifly and press Get. OpenDMG downloads version from ralph's own GitHub release.
  3. Open it. The download is checked against its SHA-256 fingerprint and its signature is checked on your Mac before it lands in Applications.

Updates to Spotifly show up in OpenDMG and install with one button. No account is needed.

Prefer to do it by hand? The developer's file is on GitHub: Spotifly-1.3.0.zip (3.5 MB).

What is new in Spotifly

Latest stable release of Spotifly (v1.3.0)

## What's New

The lead of each changelog entry. The full 1.3.0 section, with what is behind each line, is in [CHANGELOG.md](https://github.com/ralph/Spotifly/blob/v1.3.0/CHANGELOG.md#130---2026-10-03).

### Added
- Back (⌘[) and Forward (⌘]) in the Navigate menu.
- A playlist's cover can be set and removed.
- Autoplay.
- A free account browses, and is told why this Mac does not play.
- Tracks Spotify will not play are greyed out, and stepped over.
- Spatial Audio for Spotify's stereo.
- Spotify Connect handover in both directions.
- The next track is fetched before the current one ends.
- Add to Queue reaches the device that is playing.
- A theme switch in Settings.
- Tests for the Swift playback stack, which arrived with none.
- Environment hooks for testing without anyone at the keyboard, all inert unless set; `DEVELOPMENT.md` lists them.
- A Debug build logs a Connect handover's state whole, as the base64 `TransferState` it came as (`Transfer data: …`), since the parsed one keeps only what this player acts on.

### Changed
- Whether the now-playing bar shows playing comes from the player's snapshot alone.
- "Show all tracks" is a page of the search, and the route's drill-down path is gone.
- Every localization key is visible to the compiler, and a test finds strings no code uses.
- Views no longer write the store.
…

More Audio and Music apps

All Audio and Music apps