Cassette, a native iOS and macOS music player for Navidrome, Subsonic and OpenSubsonic servers

Cassette's player on iPhone, playing Vampire love story by Jardin Public, the screen tinted red by the cover art.
Paints the page with this cover's color.

A native iPhone and Mac app for the music on your own server.

Built for Navidrome, and for anything else that speaks Subsonic. Free and open source.

In the app

In the app

Native

Swift and SwiftUI from top to bottom. It scrolls, animates and plays like the apps that came with your iPhone, Liquid Glass included.

  • Swift 6
  • SwiftUI
  • No web view

Self-hosted

Talks to Navidrome, Gonic, Ampache or any OpenSubsonic server through SwiftSonic, its own open-source client library. A reverse proxy or Cloudflare Access in front is fine.

  • OpenSubsonic
  • Custom headers
  • Keychain

Integrated

Lock screen, Control Center and AirPlay all work. Your own server behaves like Apple Music, without the subscription.

  • Now Playing
  • AirPlay
  • ListenBrainz

Free

Open source under MPL-2.0, with nothing to sign up for. No ads and no analytics. It is funded by the people who use it.

  • MPL-2.0
  • No account
  • No tracking

Testers

people in the public TestFlight beta
1,300+
stars on GitHub
150+
trackers or analytics in the app
0

An Android port is on the way, written by a contributor. The app is funded by the people who use it, on Ko-fi.

  • “I’ve tested 5–6 Navidrome apps. Yours is the absolute best one.”

    TestFlight tester

  • “This is now going to be my daily driver.”

    TestFlight tester

  • “It feels native to iOS and is beautifully done.”

    TestFlight tester

Features

  1. Offline

    Download albums and playlists. Your library, search and queue keep working without a connection.

  2. Lossless

    FLAC and other lossless files play as they are, with a badge to show it. ReplayGain and crossfade too.

  3. Lyrics

    Synced lyrics, straight from your server when it has them.

  4. Rediscover

    Smart shuffle digs out the tracks you haven’t played in a while.

  5. Recap

    Your listening stats, worked out on your own device.

Works with NavidromeGonicAirsonicAmpacheany OpenSubsonic server

Mac

Also on Mac

The same Swift codebase as the iPhone app, laid out for a desktop, with a sidebar and the keyboard shortcuts you would expect.

  • Cassette's library on Mac: recently added and recently played albums in a grid, sidebar on the left.
  • Cassette's full-screen player on Mac, with synced lyrics next to the cover.
  • An album page in Cassette on Mac, with the sidebar and the mini player.
  • Cassette's listening recap on Mac: minutes listened and top artists.

Install

iPhone

The beta is public on TestFlight. Open the link on your iPhone to join it.

Join the TestFlight beta

Mac

Install it with Homebrew. Updates come through Homebrew as well.

brew trust CassetteLab/cassette
brew tap CassetteLab/cassette
brew install --cask cassette

FAQ

Questions

What is Cassette?

A native iPhone and Mac app for listening to the music on your own Subsonic or OpenSubsonic server, such as Navidrome. You can stream your library or download it for offline listening.

Which servers does Cassette work with?

Any server that implements the Subsonic or OpenSubsonic API: Navidrome, Gonic, Airsonic, Ampache and others. Your music stays on your server.

Is Cassette free and open source?

Yes. It is free, and the source code is published under the MPL-2.0 license. There is no account, no advertising and no analytics.

Can I listen to my music offline?

Yes. Download albums and playlists, and your library, search and queue keep working without a connection.

How do I install Cassette on iPhone or Mac?

On iPhone, join the public TestFlight beta. On Mac, install it with Homebrew: brew tap CassetteLab/cassette, then brew install --cask cassette.

What audio formats does Cassette support?

FLAC and other lossless formats, marked with a badge in the player, as well as the usual lossy formats. AirPlay, lock screen and Now Playing controls are supported.