Your music.Local and free.
WaveFlow plays your audio files the way Apple Music plays the cloud — no subscription, no ads, no telemetry. Auto-generated Daily Mix from your plays, DLNA casting to your speakers, synced lyrics and Hi-Res, all running on your machine.
Available on Linux, macOS and Windows
- Open source GPL-3.0
- No account required
- Zero telemetry
- 3.4K downloads
Features
Everything a modern player should do.
No feature thrown in for hype. Every detail serves your daily listening.
Auto-generated Daily Mix
Three mixes regenerated from your last 90 days of listening, bucketed by tempo: Calm, Groove, Energy.
Plus a rule-based smart-playlist editor: genre, BPM, year, rating, format, Hi-Res, likes.
Audiophile audio engine
Symphonia decoder, native DSD (DSF/DFF), Hi-Res up to 24-bit 192 kHz, CPAL output on three lock-free threads.
ReplayGain, gapless, sub-5 ms latency. Real-time FFT spectrum visualizer in the fullscreen view.
5 interface styles, 70 looks
Studio, Editorial, Lounge, Pulse and Liquid — combine each with the 14 colour themes for 70 combinations, saved per profile.
Bundled fonts, per-style motion, a 'Pick a vibe' onboarding step. Zero Google Fonts request at runtime.
Sandboxed plugin SDK
WASM components on wasmtime with permission-gated host imports — network, storage, audio, UI. Web Radio ships as the first plugin.
50 MB cap, 5 s timeouts, SSRF guard, offline short-circuit. Enable, disable or uninstall in one click.
WaveFlow Wrapped
Your annual recap, told in a few slides: top artists, minutes listened, peak hours, dominant genres.
Computed locally from your history. No data sent, no metric shared by default.
Mood Radio
Five dynamic stations — Focus, Chill, Workout, Party, Sleep — filtered by tempo and energy from your own library.
Plus per-artist radio: one click on any artist starts an infinite flow of similar tracks.
Rich artist pages
Biography, clickable similar artists, full discography and fan count for every artist in your library.
Bios from Deezer or TheAudioDB (opt-in), or write your own — manual overrides work fully offline.
Built-in DLNA / UPnP server
Cast your library to Sonos, Yamaha MusicCast, Kodi, VLC or any UPnP renderer on the LAN. No pairing, zero cloud.
SSDP discovery, ContentDirectory, HTTP Range streaming. Toggle from Settings → Integrations.
Smart crossfade
Classic crossfade, or Smart (skips the fade between two tracks of the same album) or Dynamic (scales to the BPM gap).
Plus a Musicolet-style A-B intra-track loop, and 0.5×–2× playback speed.
Synced lyrics, five providers
A waterfall across Musixmatch, LRCLIB, NetEase, Megalobiz and Genius — sidecar .lrc / .txt files checked first, so local lyrics never hit the network.
Built-in editor with word-mode auto-advance. Save back to tag, sidecar or DB, or export a standalone .lrc / .txt.
Listening stats
GitHub-style 12-month heatmap, top tracks / artists / albums per period, per-genre breakdown, hourly peaks, completion rate.
Hide the KPI cards you don't care about. Annual Wrapped recap and JSON export — computed locally, never sent anywhere.
Search that sorts itself
Type in the top bar and results come back sectioned — artists, albums and titles — so you land on the right one straight away.
Keyboard-driven, debounced and stale-query-safe; opens and closes without ever leaving the page.
Immersive now playing
A redesigned fullscreen view with a tabbed control panel — lyrics, queue and controls in one place — and native OS fullscreen.
Skin-neutral and readable everywhere; long titles scroll as a marquee in the player bar and immersive view.
Discord & Last.fm
Spotify-style Rich Presence on your Discord profile. Last.fm scrobbling with persistent queue and exponential backoff.
Plus OS media controls (MPRIS, SMTC, MediaRemote) for your multimedia keyboard keys.
A library that respects you
Folder watchers, drag-and-drop, hash-based duplicate detection, clickable multi-artist support.
Isolated profiles, custom album artwork, .waveflow archive import/export, scheduled auto-backup. First scan is now ~4× faster.
100% open source
Rust + React code on GitHub, GPL-3.0. Audit it, fork it, contribute. No tracker, no ads.
Tauri 2 + Rust for native, React 19 + TypeScript for the UI. 17 languages supported.
Smart Playlists
Daily Mix, made for you.
Three mixes regenerated from your last 90 days of plays. Artists are bucketed by their average tempo so each mix stays coherent from morning to night.
Lo-fi, ambient, ballads. For working, reading, drifting off.
Pop, rock, hip-hop, indie. The mid-tempo that owns your afternoons.
Dance, drum & bass, metal. For workouts, cleaning, long drives.
Custom smart playlists
Build your own rules.
Beyond the auto Daily Mix, build living playlists from predicates: genre, BPM, year, audio format, POPM rating, likes. The playlist re-materializes whenever new tracks land in your library.
- Genre
- BPM
- Year
- Rating ≥ 3★
- Liked only
- Hi-Res only
- FLAC format
- Duration
// example: { genre: "Jazz", year_min: 1955, year_max: 1965, hi_res_only: true, sort: "random", limit: 100 }
Mood Radio
Five moods. Always your library.
WaveFlow groups your tracks into five dynamic stations based on tempo, energy and spectral signature — then jumps between them as your mood shifts.
Each session draws from your local catalog. No streaming, no sponsored suggestions.
The home you won't leave.
Personalized greeting, at-a-glance stats, Wrapped banner, Mood Radio and Daily Mix — all in one view. Dark mode by default, light mode for those who like it.
Interface styles
Five looks. Seventy combinations.
An interface style reshapes the whole app — layout, typography, glass and motion. Pair any of the five styles with the 14 colour themes for 70 looks, each saved per profile. Switch from Settings → Appearance, or pick a vibe during onboarding.
Studio
DefaultThe Apple-Music-inspired baseline. Clean, dark-first — the look WaveFlow ships with.
Editorial
BroadsheetA magazine layout with Playfair Display serifs, halftone artwork and the ornate WaveFlow Gazette masthead.
Lounge
Warm glassWarm burgundy glass over a blurred cover backdrop — the Apple-Vibrancy backdrop-filter recipe.
Pulse
Neon clubAn OLED neon-club aesthetic with a dual magenta/cyan aurora and a vinyl-spin cover that mirrors playback.
Liquid
VibrancyFull Apple Vibrancy with the 8-layer inset glass recipe — theme-aware, beautiful in light and dark.
All fonts are bundled — Playfair Display, Lora, Space Grotesk, Space Mono, DM Sans. Zero Google Fonts request at runtime.
Artist pages
Much more than a track list.
For every artist in your library: biography, clickable similar artists, full discography, fan count — plus a per-artist radio to keep exploring.
Biographies and similar artists come from Deezer if enabled; otherwise your library is enough.
Network casting
Your amp, no Sonos S2 required.
WaveFlow announces itself on the LAN as a UPnP MediaServer. Any DLNA renderer — Sonos, Yamaha MusicCast, Kodi, VLC — discovers it and plays your library, with no proprietary pairing and no cloud.
WaveFlow
MediaServer:1
- Sonos S2
- Yamaha MusicCast
- Kodi
- VLC
- BubbleUPnP
- 01
SSDP announce
Periodic broadcast on 239.255.255.250:1900 — renderers find WaveFlow with zero configuration.
- 02
DIDL-Lite browse
Your artists and albums show up in the renderer's UI just like a native media library.
- 03
HTTP Range streaming
Progressive playback with HTTP Range — accurate scrub, resume, efficient transfers.
Integrations
Plays nice with your stack.
WaveFlow plugs into what you already use — but never depends on any of these services to run.
- DiscordRich Presence
- Last.fmScrobbling + bios
- LRCLIBSynced lyrics
- DeezerMetadata
- MPRISLinux media keys
- SMTCWindows Now Playing
Plugin SDK
Extend WaveFlow, safely.
Plugins ship as sandboxed WASM components built against the waveflow-plugin-sdk interface. Every capability — network, storage, audio, UI — is gated behind a permission you approve on install. No silent network, no silent filesystem reach.
Sandboxed by design
WIT + wasmtime runtime. Host imports for HTTP, storage, audio and UI — nothing the manifest didn't declare.
Permission gates
Every host import is approved on install. Per-plugin chips for network, storage and assets in Settings.
Guardrails by default
50 MB max size, 5 s timeouts, an SSRF guard with no redirect following, and an offline-mode short-circuit.
One-click management
Installed plugins list with enable, disable and uninstall — version and size at a glance.
Web Radio, bundled in.
Over 30,000 online radio stations
Internet stations via radio-browser.info, streamed through the same cpal engine as the rest of the app — now with live now-playing metadata, per-profile favorites, browse-by-country and an offline catalogue. EQ, ReplayGain and the spectrum visualizer still work over every live stream.
- Browse by country, or jump to local stations in one tap.
- Star your favorite stations per profile — from the player, mini-player or immersive view.
- Live ICY song titles, with artwork from Deezer and synced lyrics for the current track.
- Download the catalogue to browse and search stations fully offline.
WASI runtime on wasmtime. 50 MB plugin cap, 5 s HTTP timeouts, no redirect following, offline-mode short-circuit on every request.
Local-first
You own your music. Let's take it back.
No subscription
Your files, your player, for life. Download the app, that's it.
No DRM
FLAC, ALAC, MP3, AAC, OGG, WAV, DSD — your files open everywhere, forever.
No tracking
No outbound connections beyond optional metadata enrichment. Offline mode is one click away.
No cloud
It all lives on your disk. One SQLite per profile. Zero-effort migration.
Hi-Res & DSD
24-bit decode up to 192 kHz, native DSF/DFF. The Hi-Res badge lights up automatically.
Multiple profiles
One library per person, fully isolated. Exportable .waveflow archive and scheduled auto-backup.
Download
WaveFlow v1.6.0 for your system.
Signed binaries, verifiable with .sig. No third-party installers, no embedded telemetry.
Linux
x86_64 — tested on Fedora 44 and Ubuntu 26.04
macOS
Universal — Apple Silicon and Intel
Windows
x86_64 — Windows 10 22H2 and later
Or install with your package manager
Updates keep flowing through the tool you already use.
Windows · winget
winget install InstaZDLL.WaveFlowArch · AUR
yay -S waveflow-binFedora · Copr
sudo dnf copr enable instazdll/waveflow && sudo dnf install waveflowDebian / Ubuntu · APT
sudo install -d -m 0755 /etc/apt/keyrings curl -fsSL https://packages.buildkite.com/instazdll/waveflow/gpgkey | sudo gpg --dearmor -o /etc/apt/keyrings/waveflow.gpg echo "deb [signed-by=/etc/apt/keyrings/waveflow.gpg] https://packages.buildkite.com/instazdll/waveflow/any/ any main" | sudo tee /etc/apt/sources.list.d/waveflow.list sudo apt update && sudo apt install wave-flow
No Homebrew cask yet on macOS — grab the .dmg above. The Debian package is wave-flow (kebab-case, per the Debian naming spec).
Frequently asked
If yours isn't here, open an issue on GitHub.
Is WaveFlow really free?
Yes, and it always will be. WaveFlow is released under GPL-3.0. No subscription, no premium tier, no ads.
How do I install WaveFlow v1.6.0?
Use the package manager that fits your platform: `winget install InstaZDLL.WaveFlow` on **Windows**, `yay -S waveflow-bin` on **Arch**, the Copr repo on **Fedora** (`dnf copr enable instazdll/waveflow`), or the APT repo on **Debian/Ubuntu** (the package is `wave-flow`). Or grab the binary on the GitHub releases page: the **Linux** AppImage is portable (`chmod +x`), or install the .deb / .rpm. On **macOS**, open the .dmg and drag WaveFlow into Applications — the bundle isn't Apple-Developer-signed, so right-click → Open the first time (or run `xattr -cr /Applications/WaveFlow.app`). On **Windows**, the .msi is silent, the .exe a classic installer.
Which audio formats are supported?
MP3, FLAC, ALAC, AAC, OGG Vorbis, WAV via the Symphonia decoder, plus DSD (DSF / DFF) through a dedicated pipeline. Hi-Res badges light up automatically at 24-bit or ≥ 44.1 kHz.
How do Daily Mixes work?
WaveFlow scans your last 90 days of plays, buckets your artists by average tempo (< 95 BPM, 95-130, ≥ 130) and materializes three deterministic playlists — plus five Mood Radio stations (Focus, Chill, Workout, Party, Sleep) filtered by tempo and energy. A 'Regenerate' button on the home view is all you need to refresh them. And you can build your own smart playlists from rules.
Can I cast to my hi-fi?
Yes. WaveFlow exposes your library as a DLNA / UPnP server. Sonos S2, Yamaha MusicCast, Kodi, VLC or any compatible renderer sees it appear on the network — no cloud, no proprietary pairing. Toggle it from Settings → Integrations.
Does my data leave my machine?
No. Library, plays, playlists and stats are stored locally in SQLite. Only optional metadata enrichment (Deezer, Last.fm, LRCLIB) makes outbound requests — a global offline mode cuts them all in one click.
Does WaveFlow replace Spotify or Apple Music?
For streaming, no. For your local library, yes — with comparable interface quality, auto Daily Mix, Hi-Res, DLNA, and zero cloud dependency.
Does it work with Discord and Last.fm?
Yes. Spotify-style Discord Rich Presence with album artwork. Authenticated Last.fm scrobbling with a persistent queue and automatic reconnect. Both are opt-in and can be disabled at any time.
Can I contribute?
Gladly. The project is on GitHub, written in Rust (Tauri 2) and React 19 + TypeScript. Issues, PRs and translations welcome.
Can I get beta releases?
Yes. WaveFlow has an opt-in beta update channel — switch to it in Settings → Updates to get pre-release builds early, or stay on stable. You can switch back at any time.
What's the memory footprint?
Around 80 MB at idle, 150 MB during playback with a 10,000-track library. The scanner uses a bit more during the initial index pass, then settles back to a steady footprint.
Can I sync my library across machines?
No official cloud, but the SQLite database is a single file you can drop into Syncthing, Dropbox or any self-hosted service. The .waveflow export bundles profile + DB + artwork into a single archive.
Is there an offline mode?
WaveFlow is offline by default — that's the whole point. The global offline mode cuts Deezer, Last.fm, LRCLIB and similar-artist discovery in one click.
Take your music back.
WaveFlow v1.6.0 is out for Linux, macOS and Windows. Install it with winget, the AUR, Copr or APT — or download the binaries on GitHub: AppImage, .deb, .rpm, .dmg, .msi.