⚠ Currently in work in progress — Available soon
Transform your Raspberry Pi into a multiroom audio system with Spotify Connect, Internet Radio, Bluetooth, AirPlay 2, Podcasts, CD playback, and Mac streaming.
| Spotify Spotify Connect receiver — see what's playing with artwork, and control playback directly |
|
| Radio Browse 50,000+ stations, save favorites, add custom stations, their image, and identify tracks with Shazam |
|
| Bluetooth Pair any device and stream audio |
|
| AirPlay Stream from any Apple device (iPhone, iPad, Mac) |
|
| Podcasts Search, subscribe, and resume episodes with variable speed (0.5x–2x) |
|
| CD Player Play audio CDs with automatic track listing and metadata lookup |
|
| Mac Stream your Mac's system audio with low latency (requires Milō Mac) |
- Download the latest
.img.xzfrom Releases - Flash it with Raspberry Pi Imager (select "Use custom" → choose the
.img.xzfile) - Insert the SD card and power on your Raspberry Pi
- Connect to the Milō WiFi network that appears (open, no password)
- A setup page opens automatically — follow the wizard to configure language, WiFi, audio card, and screen
- Milō reboots and is ready to use
After setup:
- Web interface → http://milo.local
- Spotify → Select "Milō" in Spotify app
- AirPlay → Select "Milō" in your iPhone/iPad/Mac AirPlay outputs
- Bluetooth → Connect to "Milō · Bluetooth"
- Mac → Install Milō Mac, then select "Milō" in audio outputs
Flash the same image on additional Raspberry Pis. On first boot, the device detects your existing Milō server on the network and automatically configures itself as a client.
Install from Raspberry Pi OS Lite instead of using the pre-built image
Flash Raspberry Pi OS (64-bit) Lite (Debian Trixie) with Raspberry Pi Imager. In "Edit Settings", set hostname and username to milo.
wget https://raw.githubusercontent.com/leodurandfr/Milo/main/install.sh
chmod +x install.sh
./install.shFor multiroom clients, set hostname and username to milo-client:
wget https://raw.githubusercontent.com/leodurandfr/Milo/main/milo-client/install-client.sh
chmod +x install-client.sh
./install-client.shUninstall:
./install.sh --uninstall # Server
./install-client.sh --uninstall # ClientControl Milō from your other devices:
| macOS | Menu Bar app + audio output | Milō Mac |
| iOS | Fullscreen web interface | Milō iOS |
| Android | Fullscreen web interface | Milō Android |
| Backend | Python, FastAPI, asyncio |
| Frontend | Vue 3, Pinia, Vite |
| Audio | ALSA, CamillaDSP, Snapcast, mpv, go-librespot, shairport-sync, bluez-alsa, ROC |
| Platform | Raspberry Pi OS (64-bit), systemd |
- 📚 Documentation Index — All documentation
- 🏗️ Architecture — How Milō works
- 💻 Developer Guide — Contribute to the project
- 🔌 API Reference — REST API endpoints
- 🧩 Components — Vue components