Releases: marthofdoom/harmony
Release list
1.0.5 — a real music player everywhere (pre-release)
Pre-release for personal testing (public releases remain on hold pending persistent auth).
Music player, on desktop, web and Android
- Play an album, playlist or artist and the whole list becomes the queue — Play / Shuffle buttons, or double-click / tap a row to play from it.
- Play Next / Add to Queue everywhere; Now Playing shows the full queue with jump, reorder, remove, Clear, and add-queue-to-playlist.
- Shuffle / repeat, Previous restarts after 3s, failed tracks are skipped, the queue survives a restart.
Federation: one queue per device, owned next to the device
- The Harmony instance that can reach a speaker/TV now runs that device's queue and auto-advances it — casting keeps going with your phone or browser closed (Chromecast's frozen position is covered by a play clock).
- A peer's device ("via") gets the whole queue handed to that peer. Desktop, web and phone all see and control the same queue.
- Switching output moves the queue and position.
Per surface
- Desktop: MPRIS (media keys, GNOME/KDE media controls, lock screen), Ctrl+Space/←/→ shortcuts, click the bar for Now Playing, peers' devices in the output picker.
- Web: Media Session, ⋯ menus for touch, keyboard shortcuts, queue survives reload.
- Android: background playback (notification, lock screen, Bluetooth keys), mini player, device volume/seek. Fixes consecutive-track playback.
Accounts: syncing now updates the connection status immediately and reports what synced / was kept / didn't work here (and rolls back logins that don't work on this device).
Verified: 728 tests; real GTK + GStreamer run (also inside the installed Flatpak); MPRIS over D-Bus; web in headless Chromium (desktop + phone width); Android on an API 34 emulator (album auto-advance, background, media keys, restore). Not yet verified on a real WiiM, Chromecast or phone.
Harmony 1.0.4 (pre-release) — cross-device account sync
Pre-release test build. Sync your streaming logins between devices.
- Desktop (Preferences → Accounts → "Sync from another instance") and Android (Sync tab → "Sync accounts from a server") can now pull the accounts held by another Harmony instance — e.g. your always-on server. Web already had this.
- Syncing only copies connections that actually work on the source, and never overwrites a login that's already working on the device you're syncing to.
- Requires the same personal key set on both instances.
Install: flatpak install --user Harmony-1.0.4.flatpak · sideload Harmony-1.0.4.apk · sudo dpkg -i harmony-server_1.0.4_all.deb
Still a pre-release — public-stable 1.0 stays reserved pending the persistent-auth work.
🤖 Generated with Claude Code
Harmony 1.0.3 (pre-release) — play queue + Lidarr
Pre-release test build. Playback now uses a proper active play queue.
- Playing an album/playlist loads it as the queue and keeps playing while you browse elsewhere — the next song no longer comes from the page you're on.
- The phone app now plays consecutive songs (was stopping after one).
- Add to Queue / Play Next on songs, albums, artists, playlists; shuffle / repeat / reorder + tap-to-jump on the Now Playing view.
- Lidarr "Get with Lidarr" on the web/server client (right-click an album/artist → Lidarr acquires it).
Install: flatpak install --user Harmony-1.0.3.flatpak · sideload Harmony-1.0.3.apk · sudo dpkg -i harmony-server_1.0.3_all.deb
Still a pre-release — public-stable 1.0 stays reserved pending the persistent-auth work.
🤖 Generated with Claude Code
Harmony 1.0.2 (pre-release) — Now Playing parity + cast progress
Pre-release. Now Playing is consistent across desktop, web, and phone, and the cast progress bar is fixed.
- Now Playing view on web + Android to match the desktop: large cover art beside the whole playing playlist/album, current track lit, tap/click to jump.
- Stop button on the web player too.
- Chromecast progress bar now advances on desktop and web (driven from the track length while the device streams the relay).
Install: flatpak install --user Harmony-1.0.2.flatpak · sideload Harmony-1.0.2.apk · sudo dpkg -i harmony-server_1.0.2_all.deb
Still a pre-release — the cast-progress fix wants a real Chromecast to confirm.
🤖 Generated with Claude Code
Harmony 1.0.1 (pre-release) — playback polish
A pre-release stabilizing 1.0 after hands-on testing — kept as a pre-release, not billed as finished-stable.
- Now Playing view — the whole playing playlist/album beside large cover art; double-click a track to play from there.
- Stop button in the Now Playing bar; double-click a track plays on this device.
- Skip no longer occasionally jumps two tracks.
- Chromecast now shows a moving progress bar and a working volume slider.
Install: flatpak install --user Harmony-1.0.1.flatpak · sideload Harmony-1.0.1.apk · sudo dpkg -i harmony-server_1.0.1_all.deb
🤖 Generated with Claude Code
Harmony 1.0.0 — Browse the music
Harmony 1.0.0 turns search into browsing: every artist, album, and track now has its own page, on the desktop app, the web/PWA client, and Android.
Highlights
- Artist pages — a short Wikipedia bio, a chronological discography, and for a band a Wikipedia-style member-chronology chart (each member's tenure across a year axis, with album markers you can click).
- Album pages — the full track listing with a navigable artist.
- Track pages — the performers who played on the recording (not the songwriters), where MusicBrainz has them; it degrades to the credited artists otherwise.
- Smarter search — searching an artist leads with their albums in release order. Searching a person — say a band's former singer — shows the albums they actually performed on: the band's records only during their time in it, not the ones before they joined or after they left. Album matches are chronological; track matches stay by popularity.
- Navigate everywhere — click an artist or album name, right-click a row for “Go to artist/album”, and double-click a track to play it on the active device.
Under the hood, a MusicBrainz + Wikipedia metadata layer is built once in the engine and shared by every client.
Install
- Desktop (Flatpak):
flatpak install --user Harmony-1.0.0.flatpak - Android: sideload
Harmony-1.0.0.apk - Server (Debian/Ubuntu):
sudo dpkg -i harmony-server_1.0.0_all.deb
🤖 Generated with Claude Code
Harmony 0.7.27 — credential-copy hardening
Hardened credential sharing between instances so a copied YouTube login can't leave a peer labelled "signed in" against a dead token (the state that showed as authenticated-but-no-playlists). The auth type is now validated against the real token on both export and import, and a superseded auth file is cleaned up.
Artifacts
harmony-server_0.7.27_all.debHarmony-0.7.27.flatpakHarmony-0.7.27.apk
Harmony 0.7.26 — Discover page redesign
The Discover page has been rebuilt to match the rest of the app — proper Adw.PreferencesGroups, combo/spin rows, and status pages in a tidy centered column, replacing the old raw-box layout with colon-labels and a legend. Recommendations and the AI playlist builder now read consistently, with clearer empty states and copy.
Artifacts
harmony-server_0.7.26_all.debHarmony-0.7.26.flatpakHarmony-0.7.26.apk
Harmony 0.7.25 — single active stream
One active stream per instance, done right:
- Choosing a device in the Now Playing bar moves the whole playing queue to it — stopping the old device — instead of leaving audio behind or starting a second stream. It resumes from the current track, order preserved.
- Starting playback anywhere stops any other active device (single stream).
- The Devices page reflects whatever's playing the moment you open it, no need to touch the controls first.
Artifacts
harmony-server_0.7.25_all.debHarmony-0.7.25.flatpakHarmony-0.7.25.apk
Harmony 0.7.24 — cast metadata
Casting to a Chromecast / Google TV now sends the full track details — title, artist, album, and cover art — so the device's on-screen player shows what's playing instead of just streaming audio. (Both the desktop and web cast paths.)
Artifacts
harmony-server_0.7.24_all.debHarmony-0.7.24.flatpakHarmony-0.7.24.apk