Enjoy your music library, local/remote folders or music server; with a powerful all-in-one music player.
- Supports Jellyfin, Navidrome/OpenSubsonic, Plex, and Emby servers; local folders, WebDAV including a direct Nextcloud browser login path, Samba and NAS shares.
- Control the player from its Web UI or custom scripts, additionally enable Rufin Connect for cross-device synchronization
- Powerful transition and loudness normalization implementation
- Auto DJ with server or app-matched recommendations and random play filters
- Built-in Last.fm, Libre.fm, ListenBrainz and Discord Rich presence integrations
- Remote tracks are downloadable with automatic download rules and playable while offline
- Casting and audio device selection support
- Advanced smart playlist support with in app activity recording and multiple rule combinations
- Automatic lyrics/cover/metadata lookups
- Built-in metadata editor with search and bulk edits
- Advanced lyric settings with Japanese readings, karaoke mode, offset editor and automatic saving
- Extensive customization support and keyboard shortcuts catalog
- Broad codec support including separable CUE tracks
Screenshots
Observed history
| App | Change | Version | When ↓ |
|---|---|---|---|
| updated | 0.16.6 | 29 Sept 2026 |
Upstream releases
Release notes supplied by the developer. These dates are not Flathub package publication times.
0.16.629 Sept 2026
A quick patch for flatpak.
- Rufin now translates absolute paths to flatpak portal adresses. This fixes discovered playlists not working in fltapak and "Open with" actions.
0.16.528 Sept 2026
This is a mid-sized release that focuses mostly on fixes and refining existing features, but we also have several new features. I also have a buymeacoffee page now!
- Accessibility improvements: A new reduce-animation toggle has been added. You can also select various new display options, such as alternate color rows, larger/smaller columns from Customize menu. The typography setting for lyrics now applies separately to the sidebar and fullscreen mode.
- New columns, such as codec, folder path, bitrate, and more, can be enabled from the Customize menu.
- Long texts in the bottom bar and showcase entries now slide instead of wrapping.
- The search dropdown now dismisses when necessary (e.g., for context menu actions like editing metadata).
- JXL images and animated GIFs are now supported as covers. Covers are also stored in their original format, except for thumbnails when required.
- You can now drag and drop folders and files into Rufin. You can choose to import them as a playlist or as regular folders that can be watched for changes.
- Better integration with the system: Rufin can now be used to open audio files or playlists directly. This also works from the CLI with `rufin track.mp4` or "flatpak run io.github.screwys.Rufin playlist.m3u8".
- For local, WebDAV, and Samba sources, subfolders are browsable in the Folders route. You can now exclude subfolders from the library.
- In-app artwork editing: The Edit Metadata popup now has a tab for replacing artwork. You can also save artwork that Rufin automatically fetched or search for alternatives from within this tab. This also applies to playlists and smart playlists. Additionally, you can regenerate mosaics used in these collections.
- Metadata editing has more fields available for both server and file sources.
- Artist images are now fetched online instead of using album fallbacks when they are missing.
- Listening overview PNG exports are now independent of the current window size.
- Streaming manifests, such as HLS, are recognized separately from ordinary local .m3u/.m3u8 playlists.
- Several fixes for Rufin Connect, mostly related to reducing the amount of resources the feature uses.
- Fixed an issue with the Customize button not applying new column settings to routes.
- Fixed an issue with track info getting clipped based on the fallback font used for CJK text.
- Fixed several issues with WebDAV and Samba sources regarding refresh and separated .cue tracks.
- And several other smaller fixes and improvements.
0.16.022 Sept 2026
This release brings significant UI changes with the new topbar and new fullscreen player, and it also introduces a preview version of "Rufin Connect", which is a cross-device sync engine that will be used for... our upcoming Android version! The Android version will become a native player just like the desktop version is; it will be a standalone app. Rufin Connect will let you sync logins and local folders and continue the music. I intend to keep the feature parity close by reusing existing Rust code (with UniFFI Kotling bindings) and make this ready by the next major release. There is also a Matrix chat for Rufin now, you can drop in to say hi!
- Rufin Connect works by reading and writing to a profile folder. The communication is end-to-end encrypted, and you confirm that both devices encrypt and decrypt by confirming the emojis shown on both devices match during pairing. You have multiple options to configure sync between these devices. By default, Rufin can discover a device on the local network and connect to it; these folders become stored locally. If you want persistent synchronization, you can configure WebDAV/Samba directly from inside the app (or reuse existing configuration if you have it as a source); you can point something like SyncThing to this folder, or you can use an Iroh relay/self-host a personal one. I could only test this myself so much; so I would appreciate any issues with this getting reported. In the future, I intend to use p2panda so that any kind of p2p relay works (i2p, onion network, etc.).
- This also becomes the official release of Controller with more fixes and an updated web UI interface, including removing the JS requirement; so the site becomes usable with JS disabled as well.
- The new topbar handles various problems for us. It now provides visual parity cross-platform since Windows/MacOS needed a separate tray, which is now gone. It also makes room for growing controls, some of which I have moved here. We also now have a proper persistent search bar, which can show recent searches and results in place without needing to go to the search route.
- We now have a lot of themes, including Catppuccin flavors and accent colors. You can also create a custom theme.
- The fullscreen player gets a brand new look and multiple layout options. It can show a dynamic background or a blurred version of the album artwork. It also gets a new tab for related tracks.
- An item that waited in the backlog for quite a bit of time: activity overview. You can see your monthly/yearly (preparing for the future) activity in Rufin and export it as a PNG!
- The visualizer now gets presets and styles and exposes multiple settings as configurable. By default, it now uses the resolved accent color of your theme.
- Right sidebar is separated into modules: you can set the visualizer in the sidebar separately from the lyrics, hide the playback queue, and move each of these 3 up and down.
- Local playback mapping that is used for metadata editing is hardened to handle some failure paths. The path is now also editable directly.
- Playlist interoperability is increased. You can now keep imported playlist files in sync, so the same playlist file can be used between different players. You can also configure multiple options such as using relative or absolute paths or the format of playlist files, as we also support PLS/XSPF now.
- Remote playlists can now be set private or public.
- The context menu gets a submenu for Play so that you can now shuffle collections directly from the context menu without needing to enable shuffle mode.
- Added French translation by Arnaud Constantin
- Added Italian translation by Patrick Canal
0.15.413 Sept 2026
Rufin can now expose its API for headless controls and can also be controlled from a web UI. You can enable Controller through Preferences -> Integrations. The access token is generated automatically; open/copy actions write the token to the link so you don't need to enter the API key each time.
- The web UI is similar to the desktop app even though it is not the exact copy. It supports a substantial number of operations: source switching, adding/removing a source, refreshes, library browsing, drag/multi-selection controls for both pins and queue. It also uses the resolved colors of the app, so your system-level GTK theme overrides work. Application-level settings belong to the app.
- Library refreshes are in a much better place now. You can see changes from another client in Rufin almost instantly thanks to native APIs. Some OpenSubsonic servers do not include each change, which requires a full resync (for example, Funkwhale does not include ratings in this limited refresh API).
- Added disc separation for album detail route.
- Fixed several packaging defects affecting the Windows installer, HTTPS playback for macOS and nixpkgs packages, and stale hash in the AUR binary.








