Connecting clients
Immerle ships two clients of its own: the app (web, desktop, iOS, Android) and
iml (terminal), both built against Immerle's native API. That's where
the full feature set lives: on-demand catalog & providers, Jam sessions,
federation, Hall of Fame, discovery playlists, radio & podcasts, playlist and
purchase import, offline downloads, live admin tools, and everything else this site documents.
Subsonic/OpenSubsonic is also fully supported, so any client for that ecosystem works too, but the Subsonic API is an older, fixed protocol that was never designed for most of the above, so a Subsonic client only ever sees the "plain music server" subset. Treat it as a fallback for when you'd rather keep using an app you already have.
See Compare clients for a side-by-side of what each option gets you, and Choosing a client for install links per platform.
The Immerle app (recommended)
One codebase for web, desktop (macOS, Windows, Linux), iOS and Android.
- Web needs nothing extra: the server embeds and serves it directly at
http://<host>:4533. Sign in with the account you created during installation and you're done. - Desktop and Android installers are attached to every
release (
.dmg,.exe,.AppImage/.deb,immerle.apk). - iOS isn't published to the App Store yet; build it yourself with EAS
(
npx eas build --profile production --platform ios) or run a dev client locally. Seeui/README.mdin the repo for the exact commands.
It's capability-aware: it probes the server on connect and only shows the features that instance actually has enabled, so it degrades gracefully against an older server or one with things turned off, no broken buttons.
Multi-device playback
Sign in on more than one device and the app keeps them in sync: the play queue, current track and position are shared, so picking up your phone resumes wherever your laptop left off. From the player, "cast to device" picks one device as the sole active player (the others pause instead of doubling audio), and the picking device keeps play/pause/skip/seek control over it remotely, same idea as Spotify Connect. Pick "Everywhere" to go back to every device playing independently.
Crossfade
Under Settings → Playback quality, each listener picks how long one track blends into the next: off, or 2 to 12 seconds (4 by default, remembered per device). On web and desktop the two tracks overlap; on iOS and Android, where the player handles one track at a time, the end fades out and the next track fades in. Only a track ending on its own blends: skipping, seeking or pausing cuts the fade.
iml: terminal client
A UI-less TUI: search songs/albums/playlists and play them without ever leaving the terminal. It renders text, not a GUI, so it barely touches memory or CPU, handy for just having music running in the background without competing with a game or anything else demanding for resources.
Install it (Go 1.26+ needed to build), or grab a prebuilt binary from the latest release, see Choosing a client:
make install-cli # go install ./cmd/iml, lands `iml` on your $GOBIN/$PATH
Run iml, enter your server URL and credentials once, the session is saved
to ~/.immerle/config.json and reused after that (iml logout clears it).
| Key | Does |
|---|---|
| type | search (matches songs, albums and playlists, "Liked Songs" / "J'aime" included) |
/song, /album, /playlist | scope the search to one type |
↑ / ↓, Enter | move the selection, play it |
Esc / / | leave / focus the search bar (playback keys below only work outside it) |
Space | play / pause |
n | next track |
+ / - | volume up / down |
r | cycle repeat: off → all → one |
s | toggle shuffle |
q | quit |
Subsonic / OpenSubsonic clients
Point any compatible client at:
- Server / URL:
http://<host>:4533 - Username / Password: your Immerle credentials
Tested:
- Supersonic (desktop)
- Symfonium (Android)
- DSub (Android)
Any other Subsonic/OpenSubsonic client should work for browsing, search, streaming, transcoding, playlists and scrobbling, just without the Immerle-only features listed above. If something doesn't work, open an issue.