Skip to content

Features

  • Libraries: add a music folder from the web app's folder browser, or from the CLI. Scans run in the background with progress, pick up added, changed, moved and removed files, and keep track ids stable when files are moved or renamed.
  • Browsing: tracks, artists, albums and genres, with sorting and paging. Opening an artist, album or genre lists its tracks.
  • Profiles (optional, for a household): each person has their own profile, like Plex Home. At home a device asks "Who's listening?" (with optional PINs); away, a sign-in service in front (Authelia, Authentik…) says who it is. Admins change the server; anyone listens. Each person can mark the libraries that are theirs (My library in Settings → Libraries): those come first in the sidebar and in Your music's Most played lists, the rest fold away under Other libraries. See Profiles and sign-in.
  • Search: the header's search box searches the whole library at once (artists, albums, songs, genres, and every playlist), best matches first, a section for each kind found. Chips narrow it to one kind, all of it; searching from a list (Albums, Songs…) opens on that kind. With more than one library, a menu on the results searches another library or all of them, and a search that finds nothing says which other libraries have it. A genre found across all libraries opens its songs from every library, and its Mix draws from your libraries (as the other all-library lists do). / jumps to the search box. The library menu shows how many of each a library has, and the app reopens the library used last.
  • Back and Forward: beside the logo in the header, dimmed when there's nowhere to go; they remember where Forward leads across a reload. On a phone Back takes the logo's place on pages you've gone into (an album, an artist, search results), not on the sidebar's own pages.
  • Two outputs: play on the server (mpv; listed under its name in the app, see PLAYER_NAME) or on This device (the browser). Queue, seek and volume work the same on both; browser playback also shows on the phone's lock screen.
  • Queue: play a song, play it next or add it to the end from its menu. In the expanded player, drag songs (or use the arrow keys on their handle) to reorder the queue, remove them with ×, or save the whole queue as a playlist.
  • Shuffle and repeat: either side of the play controls, in the player bar (from tablet width up) and in Now Playing (every size). Shuffle mixes the songs still to come, leaving those played alone; turning it off puts them back in order. Playing something while shuffled starts with the song you picked. Repeat cycles off → all (Next and Previous wrap around) → this song (each time round counts as a play). Both work the same on either output.
  • Playlists: create them, add songs from a song's menu (the song playing has one too, in the player bar and Now Playing), reorder by dragging, rename and delete. Playlists span every library; a song that leaves the library stays listed, dimmed, and links up again when a scan finds it. From tablet width up, a playlist shows when each song was added ("Yesterday", "3 days ago", then the date; the full date and time on hover). With profiles on, each playlist is someone's (shared, or private) or the household's; see Profiles and sign-in.
  • Liked songs: the heart on any song (on its row, in its ⋮ menu, the player bar and Now Playing) adds it to Liked Songs, newest first, from every library. It's first under Playlists and in the sidebar, can be downloaded, and is in the car. Each profile has its own (the household's, with profiles off). On a phone the heart takes the length's place in song lists, and the playing song's wave sits on its cover.
  • Smart playlists: worked out from the library each time they're opened. Each library has Most played (all time), Most played lately (the last 30 days), Recently added, and Mixes: one per genre it plays most and a Best of each decade, 50 songs weighted towards favourites, the same all day until New mix. Most played also spans every library. Any of them can be saved as an ordinary playlist.
  • Your own mixes: New mix (on Mixes) builds one from rules: genres and artists (and ones to leave out), release years, when you last played them (or never), when they were added, how long they are, which to favour (most or least played, recently added) and how many a day. A preview beside the rules shows how many songs fit and today's pick as you change them; when nothing fits, it says what dropping each rule would let in. Edit rules… in a mix's ⋯ menu changes one later, AI-made ones included (they can keep favouring the songs Claude picked).
  • AI playlists (optional): the ✨ button at the end of the search box turns it into a prompt. Describe a playlist ("upbeat 80s songs for a run", "forgotten favourites") and Claude picks and orders songs from the library on screen, with the model chosen in Settings → Server (Opus 5.5, Sonnet 5.5 or Haiku 5.5); the page shows roughly what it cost. It's a preview: play it, try again, save it as a playlist (those songs), or save it as a mix: its rules pick fresh songs every day, like the other mixes, favouring the ones Claude picked, with no further calls to Claude. Off unless switched on with an Anthropic API key (see AI playlists).
  • Importing playlists: Settings → Import playlists reads a playlist file from another app (Spotify, other streaming services' CSV exports, or M3U from music players and servers), shows how each song matched the library, and imports the playlists you pick. Songs you don't have come in dimmed and link up when a scan adds them. See Importing playlists.
  • Requesting music with Lidarr (optional): with Lidarr connected, Request music (in each library's sidebar, and under any search that finds nothing) searches Lidarr for artists and albums, each marked with what you and Lidarr already have; Request has Lidarr download an album, and admins can add a whole artist (all albums, new albums only, or none yet). An artist's page lists their Missing albums. Admins can request music, and so can profiles allowed to (see Lidarr). Lidarr's import webhook scans the library as soon as the files land. See Lidarr.
  • Album artwork: a cover.jpg-style image next to the tracks, else a picture embedded in them, else MusicBrainz and the Cover Art Archive (can be turned off).
  • Artists and album details: artist photos (their folder's, Fanart.tv's, or Wikimedia Commons'), a few lines about artists and albums from Wikipedia (credited, with a link), and albums' type and first release date from MusicBrainz. A cover or photo can be changed by hand (another edition's cover, a photo from the sources, or your own upload), and any artist or album can be looked up again now with Refresh metadata.
  • AirPlay: shows the AirPlay source's track and cover, and pauses the server's player when it starts.
  • Stats (Settings → Stats): plays, listening time, songs and artists heard, plays each day or month, the time of day and day of the week the listening happens, the top artists, songs, albums and genres, and highlights (streaks, favourite decade). Over the last 30 days, this year or all time; with profiles, yours or everyone's, and admins can choose any one profile's. Counted from the play history: a song counts once it has played to the end.
  • Yearly recaps (Settings → Stats → Your 2026 recap, once a year has 30 plays): your year as a full-screen story, like Spotify Wrapped. Minutes listened (against last year, over a wall of your year's album covers), top artist, songs, albums and genres, the artists new to you (with their pictures), your busiest month and day, your listening personality, streaks and decades, then a summary card to save as an image, play, or save as a playlist of your top songs. It plays along on this device: 30 seconds of each of your top songs, one after another with a fade, the top artist's and new artist's songs when their slides come up (what this device was playing carries on after, and it stays muted while the server's speakers play). Tap or swipe through it, or use the arrow keys; it moves on by itself unless reduced motion is on. Earlier years are linked beside it, and admins can open anyone's.
  • Offline use: a service worker keeps the songs played in the browser, plus album covers, so they play without a connection: 1 GB by default, more or less per device under Settings → Offline (up to what the browser allows), where the songs kept can be played, removed one by one or all at once. The app itself opens without a connection too (its last copy; online, every load gets the latest). While the server can't be reached (no network, or it's down or out of reach away from home), the header says Offline and music plays on This device; back online, choose the server under Output to play there again. Browsers only allow service workers over HTTPS or on localhost.
  • Downloads: an album, playlist or mix's Download button keeps it on the device on purpose, with its covers and song list, so it opens and plays offline (Downloads in the sidebar; the app opens there with no connection). Downloads are kept apart from played songs: they never make room for others and don't count against that limit, and removing played songs leaves them. Online, a downloaded playlist or album follows its changes (checked every few hours) and a mix becomes each day's pick; songs it drops are removed from the device. Remove one from its page, or all from Downloads or Settings → Offline. In the Android app the app keeps them itself (see Android app).
  • Patchy connections (a phone on cellular), playing on This device: the next few songs in the queue (three, or 0–20 under Settings → Offline → Download ahead) are downloaded ahead into that cache (not when the phone asks to save data), so a dropout between songs doesn't stop the music. A stream that drops mid-song is tried again from where it stopped, until the connection is back (or for 5 minutes, then it pauses; Play tries again). Only a song the browser can't play is skipped, and after three in a row it stops.
  • Home Screen app with light, dark and synthwave themes (or the system's), and an icon that follows Android's themed icons.
  • Playback history: play counts, history and last played date are recorded in the database.
  • Playback log (classic app): Settings → Playback log records playback events in this browser, to copy into a bug report.