That Pi in your drawer?
It's already a €400 streamer.
Flash an SD card. Your Pi wakes up as a full streamer, ready for Home Assistant.
Every protocol. Every source. Every room. Free.
Works like any commercial speaker. Control power and pairing from the UI, PWA or Home Assistant.
Stream from any Apple device directly to your Pi with zero configuration.
Snapcast integration for perfectly synchronized audio across every room.
Full UPnP renderer and server via upmpdcli — works with every media client.
Insert a disc or USB drive — playback starts automatically with full metadata and cover art via GnuDB and MusicBrainz.
PulseAudio TCP sink — any Linux machine running PulseAudio or PipeWire streams to the Pi natively, no extra client needed.
Not just a media player card. Services, outputs, Bluetooth, power: complete odio stack as native HA entities.
Install the web app on any device for a native-feeling control experience.
Your existing subscriptions, on your Pi. No extra cost.
Your Pi appears as a Spotify Connect device. Control from any Spotify client.
Full catalog via upmpdcli. Hi-res included.
Full catalog via via upmpdcli. MQA and lossless.
Got an amp or speaker with no smart features — either it never had any, or the manufacturer dropped support? Plug a Raspberry Pi running odio into its input. It now speaks AirPlay, Spotify Connect, Bluetooth, DLNA, MPD — every modern source, on your network. Even a Pi B from 2012. Free, self-hosted, no account, no cloud.
You’ll want a DAC for a proper listening experience.
Built for makers. Minimal Debian, user session, near-zero system changes. Nothing locked — underneath it’s still your Debian, yours to extend, break, fix, repurpose.
Open for developers. Every node exposes a REST API. Playback, volume, sources, Bluetooth, services — all programmable over HTTP.
Any player, automatically. The API talks to audio apps through a standard protocol. odio ships a curated stack; add or remove players — the API just sees what’s running.
UI replaces your remote. Power, volume, play/pause, next, source. Browsing catalogs stays with Spotify, BubbleUPnP, myMPD — pick your tool.
Custom clients, automations, voice control (Piper, Whisper), parental controls your kid will learn to bypass. The API is the product. Your setup, your rules.
The same features. Very different terms.
| Feature | odio | Volumio (free) | Commercial |
|---|---|---|---|
| License | 100% open source | Partially closed source | Proprietary |
| Price | Free | Freemium — Premium at €60/year | €200–€2000+ device |
| Account required | No | Yes | Yes |
| Cloud dependency | None | Yes (account, Premium, plugins) | Yes |
| Minimum hardware | Raspberry Pi B (armv6l, 2012) | Raspberry Pi 3 | Dedicated hardware only |
| Music library management | Streamer first: use your favorite app | Built-in library browser | Built-in (locked ecosystem) |
| Bluetooth A2DP | ✅ Included | 💰 Premium only | ✅ Included |
| AirPlay | ✅ Included | ✅ Free plugin | Varies |
| Spotify Connect | ✅ Included | ✅ Free plugin | Varies |
| Qobuz | ✅ Included (via upmpdcli) | 💰 Premium only | Varies |
| Tidal / Tidal Connect | ✅ Included (via upmpdcli) | 💰 Premium only | Varies |
| UPnP / DLNA | ✅ Included | ✅ Included | Varies |
| Multi-room | ✅ Included (Snapcast) | 💰 Premium only | Varies |
| CD playback | ✅ Included with metadata | 💰 Premium only | Varies |
| Source switching | Not needed: all sources mix simultaneously | Required: one source at a time | Required: one source at a time |
| Network audio sink | ✅ PulseAudio / PipeWire TCP | ❌ | ❌ |
| Home Assistant | ✅ Native integration | Unofficial community plugin | Varies |
| Voice assistant / AI | ✅ Via Home Assistant (Piper, Whisper) | 💰 CORRD (Premium) | 💰 or locked ecosystem |
| Installation | Image flash or one command (curl | bash) | Image flash | Plug and play |
| Upgrade | apt upgrade | OTA / reflash between major versions | Vendor-controlled OTA |
| Long-term stability | No reinstall from Buster to Trixie | Reflash between major versions | EOL decided by vendor |
Two paths. Same destination.
Use Raspberry Pi Imager with a custom repository URL. Configure hostname, SSH & WiFi, then flash.
Debian 13 (trixie) and Ubuntu compatible. The installer handles all dependencies and services.
Tip: set up DAC and overclocking (armhf) in /boot/firmware/config.txt beforehand to save a reboot.
Need help? Check the documentation for detailed guides and API reference.
odio is still in beta - stable for daily use, but expect rough edges on existing installs. Try it on your hardware, report bugs and help grow the list.
Verified on - add yours ↗
In 2016, I almost bought a smart amp. The ones with the inputs I needed — phono included — were expensive, and one thought kept nagging me: the day the manufacturer decided my hardware wasn’t worth supporting anymore, that money would be gone. So I bought a dumb amp instead. A €35 Raspberry Pi B+, a HiFiBerry DAC, a wooden box. I’d do the smart part myself — a free machine between the amp and the rest of the world, where no one else held the lease.
Over the years I tried everything: Volumio, RuneAudio, Mopidy, Pi MusicBox. Three times Volumio. Each time the same story: Locked appliances, Bluetooth that barely worked, audio cracks, half-broken setups. Never quite right. Never quite mine.
During the first COVID lockdown, I finally stopped tweaking other people’s system and built what I actually wanted. The Pi B+ is still running. It’s 2026.
Hardware doesn’t become obsolete. Someone decides it is.
In 2022, Sonos pushed a software update that permanently degraded its older speakers, hardware that worked perfectly the day before. Not a technical necessity. A choice. Pay for new hardware or accept a worse product you already bought.
Two years later, a mandatory app rewrite silently removed dozens of features overnight. Same hardware. Same network. Alarms gone. Local library, gone. The product you bought runs on software you don’t control, updated on a schedule you didn’t choose.
And it’s not always a software update. A Marantz A/V receiver from 2012 still plays, still amplifies, still has its web radio menu — but the directory service behind it now charges a yearly fee to add a single station. A PURE Evoke radio became a dumb radio overnight when its directory was shut down. The hardware never broke. The backend did, on purpose.
Every mandatory account to stream audio inside your own home is a lock you didn’t choose. Every €60/year subscription for Bluetooth, a 25-year-old protocol, is a rent on something you already own. Every dropped Pi model is a device that becomes e-waste not because it stopped working, but because a roadmap said so.
Every streaming session has become data, to be collected, profiled, monetized. It’s not a side effect, it’s their model. For the entire lifetime of your device.
odio is a refusal. Not of progress, but of the model where someone else holds the keys to what you own and use that to steal and sell your data. A DAC plugged into a thirty-year-old amp, a Pi bought last decade, still running in 2026 because every layer is replaceable, every protocol is open, and nothing in the stack depends on a company staying alive or benevolent. That same hardware now speaks AirPlay, Spotify Connect, Tidal, and talks to Home Assistant through an API that didn’t exist two months ago. Free software is not just a philosophy here. It is the engineering condition for durability and sustainable hardware, and the only foundation on which you can keep building without starting over.
Keeping a 10+ yo board alive in 2026 is not nostalgia. The most sustainable device is the one already manufactured.
odio exists because the tools it depends on — MPD, PulseAudio, Shairport Sync, Snapcast, upmpdcli — were built by people who chose openness. The same deal applies here.
Every line is readable. Every binary is reproducible. Bug reports, patches, and opinionated configuration choices are all welcome.