Skip to main content

Homegrown Controller - Misonos

  • June 17, 2026
  • 0 replies
  • 14 views

I'm a long time Sonos user/advocate/enthusiast. I still have ZP100's running multiple rooms in my house and my CR100 is somewhere in storage. I wrote my first SMAPI server 14 years ago. I've always had an idea of what I wanted from a controller. I finally took a weekend and with the help of my buddy Claude we built something that works pretty good. Please take a look - especially if you are still on S1 - and let me know what you think. Happy to answer questions — it's a personal/hobby project, not affiliated with Sonos.


https://github.com/agtilden/misonos is an open, source-available alternative to the Sonos app that runs entirely on your own network — no cloud account, fast LAN control, and installable to your phone's home screen as a PWA.

 Music sources (all in one browser/search UI):

  • YouTube Music — search + playback, and your Library / playlists / "My Supermix" (via your own pasted cookies)
  • Live Music Archive (archive.org / etree) and a dedicated Grateful Dead browser
  • [Phish.in](http://Phish.in)
  • Podcasts — search (Podcast Index + Apple), follow shows, and a New Episodes feed; plays straight from the RSS enclosure
  • Album art across every source (proxied + cached, with iTunes fallback

 Library & playback:

  • Favorites + mixed-source playlists
  • Repeat / shuffle / crossfade, sleep timer, and full alarms (chime or your queue)

 Zones & sound:

  • Group editor with per-room drag/drop, playing indicators, quick play/pause, "pause all zones"
  • Per-zone EQ (bass/treble/loudness) with built-in + custom presets
  • Fake (this device) Zone lets you stream to the device the controller is running on (obviously not a real zone but useful if you want to listen on your phone or computer for a bit)


Under the hood: TypeScript monorepo — React + Vite PWA talking to a small Node "bridge" that does SSDP discovery + Sonos SOAP over your LAN.

Runs via Docker on Linux or native Node (incl. macOS). Install to your phone over Tailscale HTTPS.