[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-105284":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":21,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":10,"trendingCount":14,"starSnapshotCount":14,"syncStatus":13,"lastSyncTime":31,"discoverSource":32},105284,"Sonora","Bretteroo\u002FSonora","Bretteroo","A beautiful self-hosted web controller for Sonos S1 and S2 systems","https:\u002F\u002Fsonoracontroller.com\u002F",null,"JavaScript",51,2,0,1,3,40.03,"GNU Affero General Public License v3.0",false,"main",true,[23,24,25,26,27,28],"audio","dashboard","home-assistant","self-hosted","sonos","sonos-controller","2026-11-01 00:13:29","\u003Cdiv align=\"center\">\n\u003Cimg src=\"docs\u002Fsonora-wordmark.png\" alt=\"Sonora\" width=\"75%\">\n\n**A self-hosted web controller for Sonos systems**\n\n\u003Cp>\n\u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-AGPL--3.0--only-1e5aa8?style=flat-square\" alt=\"license: AGPL-3.0-only\">\u003C\u002Fa>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSonos-S1%20%7C%20S2-000000?logo=sonos&logoColor=white&style=flat-square\" alt=\"Sonos: S1 and S2\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-%E2%89%A5%203.11-3776AB?logo=python&logoColor=white&style=flat-square\" alt=\"Python 3.11 or newer\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFastAPI-backend-009688?logo=fastapi&logoColor=white&style=flat-square\" alt=\"FastAPI: backend\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReact-19-1f6f8b?logo=react&logoColor=white&style=flat-square\" alt=\"React: 19\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVite-8-646CFF?logo=vite&logoColor=white&style=flat-square\" alt=\"Vite: 8\">\n\u003C\u002Fp>\n\n\u003Cp>\n\u003Ca href=\"https:\u002F\u002Fko-fi.com\u002Fbretteroo\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-Support%20Sonora-13C3FF?style=flat-square&labelColor=555555&logo=data:image\u002Fsvg%2Bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTEyIDIxcy03LjQtNC41LTkuNC05LjFDMS4xIDguMyAzLjMgNC42IDcgNC42YzIgMCAzLjYgMS4xIDUgMi45IDEuNC0xLjggMy0yLjkgNS0yLjkgMy43IDAgNS45IDMuNyA0LjQgNy4zQzE5LjQgMTYuNSAxMiAyMSAxMiAyMXoiLz48L3N2Zz4=\" alt=\"Support Sonora\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp>\n\u003Ca href=\"https:\u002F\u002Fwww.producthunt.com\u002Fproducts\u002Fsonora-5?embed=true&amp;utm_source=badge-featured&amp;utm_medium=badge&amp;utm_campaign=badge-sonora-f49fe434-3ca0-40ee-afac-589c74d241eb\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Cimg alt=\"Sonora - The open source Sonos™ web controller you've always wanted. | Product Hunt\" width=\"250\" height=\"54\" src=\"https:\u002F\u002Fapi.producthunt.com\u002Fwidgets\u002Fembed-image\u002Fv1\u002Ffeatured.svg?post_id=1286847&amp;theme=neutral&amp;t=1792625507433\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n_Sonora gives you more ways to play._\n\n[📚 Features](#-features) | [🎨 Themes](#-themes) | [🚀 Get Started](#-get-started) | [💙 Contributions](#-contributions) | [👏🏻 Credits](#-credits) | [🔒 License](#-license)\n\n\u003C\u002Fdiv>\n\n---\n\n#  \u003Cimg src=\"app\u002Ffrontend\u002Fsrc\u002Fassets\u002Fsonora.png\" style=\"height: 1.5em;\"> Sonora\n\nSonora is the Sonos controller you've always wanted.\n\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fliquidglass\u002Fspread.webp\" alt=\"Liquid Glass theme: Home, Now Playing and a music service\">\n\nSonora's browser-based approach _finally_ brings desktop control to Linux users and web control to _all_ Sonos devices.\n\nMost features included in Sonos' desktop and web apps are included in Sonora...plus some new ones!\n\nA human designed Sonora and Claude Code built it.\n\nSonora is not affiliated with Sonos, Inc. and was created by an enthusiastic end user.\n\n---\n\n## 📚 Features\n\n- 🔊 **S1 and S2 in one controller**\n  - Control every Sonos speaker ever made from a single app.  (Room groupings and music services remain separate.)\n- 🖥️ **Any browser, any screen**\n  - Responsive design. No client to install. Linux users finally have a way to play!\n- 🎨 **Theme engine**\n  - Sonora comes with several themes, including three relatively close recreations of Sonos' own Windows, Mac, and web apps.\n- 🎵 **All your music**\n  - Enjoy streamed music services, local libraries, Sonos Favorites, and all your old playlists.\n- 🎤 **Lyrics**\n  - Follow along with the words to whatever's playing, timed to the music where possible,\n- 🏠 **Every room**\n  - Grouping, volume, EQ, sleep timers, and alarms are all included.\n- 📱 **A new virtual speaker: \"This browser\"**\n  - Play audio through your browser as if it were one more room.\n- 🧭 **S2 upgrade advisor**\n  - Find out what it would take to upgrade your system to S2 or S2.1.\n- 🌐 **VPN-Friendly**\n  - Control speakers when you're away from home over your existing VPN connection\n- 🩺 **Diagnostics**\n  - View response times and radio conditions for every room to troubleshoot connection issues.\n- 🏡 **Local first**\n  - Talks to your speakers on your own network. Signing in to Sonos is optional, as it is on their apps.\n- 🗣️ **Multilingual**\n  - Twenty languages.\n- ⚖️ **AGPL-3.0-only**\n  - Because free software should stay that way.\n- 🤖 **Guaranteed Non-Slop**\n  - I built this because I wanted it for myself.  I use it daily, and it is good.\n\n## 🚀 Get Started\n\nSonora needs to be installed on your home network on any machine that has access to your Sonos devices. Sonora is lightweight and runs well on even an older Raspberry Pi.\n\nDocker is the recommended way to run Sonora: one command to install, one to update, and nothing else to set up on the machine.\n\nIf you run Home Assistant or Unraid, Sonora can also be installed as an app there.\n\nImages are provided for `linux\u002Famd64` and `linux\u002Farm64`. Sonora is lightweight enough to run on an older Raspberry Pi.\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Install With Docker (recommended)\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n### Install Sonora\n* Install [Docker Engine](https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Finstall\u002F) with [Docker Compose](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002Finstall)\n  - If you're on macOS, enable Host Networking within Docker Desktop - it's disabled by default.\n* Download [`docker-compose.yml`](docker-compose.yml) into a folder of its own.\n* Then, from the folder holding `docker-compose.yml`:\n\n```\ndocker compose up -d\n```\n\nFind it at \u003Chttp:\u002F\u002Flocalhost:50205>.  (Get it?)\n\n### Future Updates\n\nFrom the same folder:\n\n```\ndocker compose pull && docker compose up -d\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Install in Home Assistant\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nYou'll need Home Assistant OS or a Supervised install. Container and Core installs can't run apps, so use Docker there instead.\n\n### Install Sonora\n* In Home Assistant, go to **Settings > Apps** and choose **Install App**.\n* Open the **⋮** menu at the top right, choose **Repositories**, and add `https:\u002F\u002Fgithub.com\u002FBretteroo\u002FSonora`.\n* Find **Sonora** in the store, then install and start it.\n* Turn on **Show in sidebar**.\n\nSonora then appears in Home Assistant's sidebar for every user. Phones and other computers can also open it directly at \u003Chttp:\u002F\u002Fhomeassistant.local:50205>, without signing in to Home Assistant.\n\n### Future Updates\n\nHome Assistant offers each new Sonora release as an app update, alongside its own updates.\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Install on Unraid\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n### Install Sonora\n* In Unraid, open the **Apps** tab. If it offers to install Community Applications, do that first.\n* Search for **Sonora** and click **Install**.\n* Click **Apply**. The defaults suit most servers.\n* Open \u003Chttp:\u002F\u002Fyour-server:50205>, or choose **WebUI** from Sonora's icon on the **Docker** tab.\n\n### Future Updates\n\nOn the **Docker** tab, click **Check for Updates**, then **apply update** next to Sonora.\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Install Without Docker\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nYou'll need:\n* Python 3.11 or newer, with its `venv` module. On Debian, Ubuntu and Raspberry\n  Pi OS that's a separate package: `sudo apt install python3-venv`.\n* Node.js 20.19 or newer (or 22.12 or newer), to build the interface.\n* git.\n\n### Install Sonora\n\n```\nsudo mkdir \u002Fopt\u002Fsonora\nsudo chown $USER: \u002Fopt\u002Fsonora\ngit clone https:\u002F\u002Fgithub.com\u002FBretteroo\u002FSonora.git \u002Fopt\u002Fsonora\ncd \u002Fopt\u002Fsonora\u002Fapp\u002Ffrontend\nnpm ci\nnpm run build\ncd \u002Fopt\u002Fsonora\npython3 -m venv .venv\n.venv\u002Fbin\u002Fpip install --require-hashes -r app\u002Frequirements.lock\n```\n\n### Future Updates\n\n```\ncd \u002Fopt\u002Fsonora && git pull\ncd app\u002Ffrontend && npm ci && npm run build\ncd \u002Fopt\u002Fsonora && .venv\u002Fbin\u002Fpip install --require-hashes -r app\u002Frequirements.lock\nsudo systemctl restart sonora\n```\n\n### Test it\n\n```\ncd \u002Fopt\u002Fsonora\u002Fapp && \u002Fopt\u002Fsonora\u002F.venv\u002Fbin\u002Fpython -m backend\n```\n\nFind it at \u003Chttp:\u002F\u002Flocalhost:50205> (Get it?).\n\nThis keeps its data (sign-ins, themes) in `~\u002F.config\u002Fsonora`. The systemd service below keeps its own in `\u002Fvar\u002Flib\u002Fsonora`, so you'll sign in once more after switching to it.\n\n\n### Make it persistent with systemd\n\nHere's how to start Sonora when the machine boots (and keep it running) with systemd. \n\nIf your OS doesn't use systemd, ask a robot how to do this.\n\nSave this as `\u002Fetc\u002Fsystemd\u002Fsystem\u002Fsonora.service`:\n\n```\n[Unit]\nDescription=Sonora\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nDynamicUser=yes\nStateDirectory=sonora\nEnvironment=SONORA_DATA_DIR=\u002Fvar\u002Flib\u002Fsonora\nWorkingDirectory=\u002Fopt\u002Fsonora\u002Fapp\nExecStart=\u002Fopt\u002Fsonora\u002F.venv\u002Fbin\u002Fpython -m backend\nRestart=on-failure\nProtectSystem=strict\nProtectHome=yes\nPrivateTmp=yes\n\n[Install]\nWantedBy=multi-user.target\n```\n\nThen `sudo systemctl daemon-reload && sudo systemctl enable --now sonora`.\n\nFind it at \u003Chttp:\u002F\u002Flocalhost:50205>\n\nTo use a different port, add `Environment=SONORA_WEB_PORT=\u003Cport>` to the `[Service]` section.\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Settings and Firewalls\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nSonora reads these from the environment when it starts. In `docker-compose.yml` they go under `environment:`, where `SONORA_WEB_PORT` is already set; in the systemd unit, as `Environment=` lines.\n\nYou shouldn't have to set any of these, ever, unless you've got some really unique shenanigans goin' on.\n\n| Variable | Default | What it does |\n| --- | --- | --- |\n| `SONORA_WEB_PORT` | `50205` | The port the page is served on. |\n| `SONORA_WEB_HOST` | `0.0.0.0` | The address to listen on. The default is every one. |\n| `SONORA_EVENT_PORT` | `50206` | The port the speakers connect to with live updates. `0` picks any free port. |\n| `SONORA_DATA_DIR` | `~\u002F.config\u002Fsonora` | Where sign-ins, installed themes and caches are kept. `\u002Fdata` in Docker. |\n| `SONORA_ALLOWED_HOSTS` | | Extra names Sonora answers to, comma-separated, such as a reverse proxy's or a tunnel's (`sonora.example.net`, or `.example.net` for every name under it). Addresses, `localhost`, `.local` names and the machine's own name already work. |\n| `SONORA_LOG_LEVEL` | `INFO` | How much goes in the log. |\n\nIf the machine running Sonora has a firewall, it needs to let in:\n\n* TCP `50205` (or your `SONORA_WEB_PORT`) from the devices you control it from.\n* TCP `50206` (or your `SONORA_EVENT_PORT`) from the speakers. Without it Sonora still works, but it won't see changes made elsewhere until you reload.\n* UDP from the speakers, which is how they answer when Sonora looks for them.\n\nDocker's `network_mode: host` is required for the same reason: the speakers have to be able to reach Sonora, not just the other way round.\n\u003C\u002Fdetails>\n\n## 🎨 Themes\n\nSonora ships several themes. Six of them, Hi-Fi, Liquid Glass, Material Girl, Severed, Solarized, and Sonofuture, come in both light and dark.\n\nYou can make your own themes, too! [THEMES.md](THEMES.md) shows how.\n\n\u003Cdetails open>\n\u003Csummary>\u003Cb>Coromar\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nSonora's own default: light concrete, navy glass, tilt-up concrete walls, and stacked stone veneers. Inspired by the seaside office building Sonos calls home.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fcoromar\u002Fspread.webp\" alt=\"Coromar theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fcoromar\u002Fspread-mobile.webp\" width=\"45%\" alt=\"Coromar theme on a phone: Home and the full-screen player\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Sedona\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nRed rocks and a mesa horizon against a desert skyline. Gaze at sedimentary rock while you listen to progressive rock.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fsedona\u002Fspread.webp\" alt=\"Sedona theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fsedona\u002Fspread-mobile.webp\" width=\"45%\" alt=\"Sedona theme on a phone: Home and the full-screen player\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Outrun\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nA synthwave sunset, neon, lasers, and a nostalgic feeling. Quintessential Outrun.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Foutrun\u002Fspread.webp\" alt=\"Outrun theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Foutrun\u002Fspread-mobile.webp\" width=\"45%\" alt=\"Outrun theme on a phone: Home and the full-screen player\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Solarized\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\n\u003Ca href=\"https:\u002F\u002Fethanschoonover.com\u002Fsolarized\u002F\">Ethan Schoonover\u003C\u002Fa>'s famous palette for nerds.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fsolarized\u002Fspread.webp\" alt=\"Solarized theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fsolarized\u002Fspread-dark.webp\" alt=\"Solarized theme in dark: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fsolarized\u002Fspread-mobile.webp\" width=\"70%\" alt=\"Solarized theme on a phone: Home and the full-screen player, light and dark\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Hot Dog Stand\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nFor the OGs. Windows 3.1's most infamous contribution to the world of UX. Ketchup, mustard, and a side of eye strain. Not recommended.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fhotdog\u002Fspread.webp\" alt=\"Hot Dog Stand theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fhotdog\u002Fspread-mobile.webp\" width=\"45%\" alt=\"Hot Dog Stand theme on a phone: Home and the full-screen player\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Liquid Glass\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nThe visual design language made popular by Apple. Modern and clean. Floating panels of frosted, specular glass above a drifting mesh wallpaper, capsule controls, and concentric corners.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fliquidglass\u002Fspread.webp\" alt=\"Liquid Glass theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fliquidglass\u002Fspread-dark.webp\" alt=\"Liquid Glass theme in dark: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fliquidglass\u002Fspread-mobile.webp\" width=\"70%\" alt=\"Liquid Glass theme on a phone: Home and the full-screen player, light and dark\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Sonofuture\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nThe Sonos controller reimagined. Every room at a glance, with drag-to-group, and settings arranged by task. Every capability of the desktop apps, on shorter paths.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fsonofuture\u002Fspread.webp\" alt=\"Sonofuture theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fsonofuture\u002Fspread-dark.webp\" alt=\"Sonofuture theme in dark: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fsonofuture\u002Fspread-mobile.webp\" width=\"70%\" alt=\"Sonofuture theme on a phone: Home and the full-screen player, light and dark\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Hi-Fi\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nYour house as a rack of audio components: a turning record, a glowing display, knobs, and a cassette deck for the queue. Brushed silver by day, black anodized at night.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fhifi\u002Fspread.webp\" alt=\"Hi-Fi theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fhifi\u002Fspread-dark.webp\" alt=\"Hi-Fi theme in dark: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fhifi\u002Fspread-mobile.webp\" width=\"70%\" alt=\"Hi-Fi theme on a phone: Home and the full-screen player, light and dark\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Material Girl\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nBuilt on Google's Material 3 Expressive design system. Shape-shifting covers, a floating player tinted by what's playing, and wavy lines in all the right places.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fmaterialgirl\u002Fspread.webp\" alt=\"Material Girl theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fmaterialgirl\u002Fspread-dark.webp\" alt=\"Material Girl theme in dark: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fmaterialgirl\u002Fspread-mobile.webp\" width=\"70%\" alt=\"Material Girl theme on a phone: Home and the full-screen player, light and dark\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Severed\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nA desk terminal for doing mysterious and important work. Soothing scanlines and a phosphor glow pour over your music library. Uniquely suited for macrodata refinement.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fsevered\u002Fspread.webp\" alt=\"Severed theme: Home, Now Playing, and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fsevered\u002Fspread-dark.webp\" alt=\"Severed theme in dark: Home, Now Playing, and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fsevered\u002Fspread-mobile.webp\" width=\"70%\" alt=\"Severed theme on a phone: Home and the full-screen player, light and dark\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Sonos Web\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nA recreation of Sonos' own web player, brought into the future (or is it the past?) with support for S1.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fweb\u002Fspread.webp\" alt=\"Sonos Web theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fweb\u002Fspread-mobile.webp\" width=\"45%\" alt=\"Sonos Web theme on a phone: Home and the full-screen player\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Sonos macOS Desktop\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nA web recreation of the Sonos desktop controller for macOS.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fmacos\u002Fspread.webp\" alt=\"Sonos macOS Desktop theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fmacos\u002Fspread-mobile.webp\" width=\"45%\" alt=\"Sonos macOS Desktop theme on a phone: Home and the full-screen player\">\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Sonos Windows Desktop\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nA web recreation of the Sonos desktop controller for Windows.\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fwindows\u002Fspread.webp\" alt=\"Sonos Windows Desktop theme: Home, Now Playing and a music service\">\n\u003Cbr>\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fscreenshots\u002Fwindows\u002Fspread-mobile.webp\" width=\"45%\" alt=\"Sonos Windows Desktop theme on a phone: Home and the full-screen player\">\n\u003C\u002Fdetails>\n\n\n## Three generations of hardware\n\nSonos launched its first devices in 2005. They were, and still are, awesome.\n\nIn 2020 Sonos \u003Ca href=\"https:\u002F\u002Fen.community.sonos.com\u002Fproduct-updates\u002Fintroducing-s2-new-app-and-os-for-sonos-6841762\">announced the move\u003C\u002Fa> to \"S2\", a minimum hardware spec paired with a new, separate control app.\n\nIn August 2025 there was another split, marked by a new \u003Ca href=\"https:\u002F\u002Fsupport.sonos.com\u002Fen-us\u002Farticle\u002Flegacy-product-update\">\"S2.1\" (my term)\u003C\u002Fa> hardware tier.  As of August 2025, only S2.1 devices receive new features.\n\nSonora controls speakers from all three generations.  A wall still exists between S1 and S2 speakers, though. (You can't group rooms across systems and streaming service links remain independent across systems.)\n\n### Sonos Platforms Through The Years\nSome S1 speakers can be software-upgraded to S2.  You'll need to use an official Sonos S1 controller to do so.  \u003Ca href=\"https:\u002F\u002Fsupport.sonos.com\u002Fen-us\u002Farticle\u002Fupdate-to-the-latest-sonos-app-using-the-s1-controller\">Here's how\u003C\u002Fa>.\n\u003Cimg src=\"docs\u002Fsonos-hardware-generations-2026.svg\" width=\"100%\">\n\n### 🪄 Sonos Upgrade Advisor\n\nSonora includes an upgrade advisor that will help you understand:\n - Which S1 devices can be upgraded to S2 via software\n - Which devices would need to be replaced for S2 support\n - How to go all-in on S2.1 if you'd like to _try_ to future-proof your system.\n\nMake sure you're sitting down - it'll show the MSRP cost estimates to do so. 🫠\n\n## 🧐 Why Sonora exists\n\nWhen I switched from Windows to Linux years ago, I lost a native desktop Sonos controller.  Without realizing it, I mostly stopped using my Sonos devices as a result.\n\nI sit in front of a computer for several hours a day, and context-switching to jump on my phone and drill through menus to play music was _just_ annoying enough that I eventually stopped bothering.\n\nI waited patiently for over a decade for Sonos to release a Linux desktop controller, scouring GitHub for any mature open source options every few months, finding none.\n\nThen Claude Code came along and changed everything.  Claude helped me build the Sonos controller I'd always wanted in about two months.\n\nSonora is platform agnostic and controls both S1 and S2 devices from any OS with a browser.  I've been meticulous in working to recreate as much of Sonos' smooth interface as possible, and have included a theming engine so you can make Sonora look (and behave) however you'd like.\n\nSonos has built something wonderful, and Sonora helps even more of the world experience it.  I'm really proud of it!  I hope you like it.\n\n## Using Sonora\n\nIt's really not that hard. You'll figure it out!\n\n### Music services\n\nTo play a service that needs an account login, like AccuRadio or Spotify:\n\n1. Add the service in Sonos' own app in the Sonos S1 or S2 controller (or both).\n2. Add the service a second time, this time in Sonora using the same credentials. (Sonora will prompt you to do this for each unlinked account.)\n\nAnonymous services that don't require logins (like Audacy) only need step 2.\n\n> [!NOTE]\n> A notable few music services will not allow themselves to be used with apps like Sonora.  **SoundCloud** is one example. For services like these, you can navigate their menus and initiate playback with an official Sonos controller, but will have only basic playback controls with Sonora.\n\n### Virtual Room\n\nYou'll see a room called \"This browser\".  That's just what it sounds like - a virtual speaker for streaming audio to your browser.\n\nThis is experimental; many services will only permit streaming to a Sonos device.\n\n## 💙 Contributions\n\nIssue reports are welcome. If you find a bug, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FBretteroo\u002FSonora\u002Fissues\u002Fnew?template=bug_report.yml\">open an issue\u003C\u002Fa> and say which theme you were using, which system (S1 or S2), which music service, what you did, and what you saw.  Screenshots help!\n\nMy goal for Sonora is for it to feel every bit as polished as an official Sonos product.\n\nThere are many streaming services, each sending out a variety of content types (live streams, playlists, individual tracks, albums, podcasts, audiobooks, etc) and testing across all of them has taken up the bulk of development time.  I'm sure there are still some lingering display issues or bugs out there, but with over 100 streaming services supported by Sonos, I can't subscribe to everything.  Your reports help!\n\n## 👏🏻 Credits\n\n> “I love that people are experimenting enough to build third-party solutions when we haven’t shipped something ourselves yet.”\u003Cbr\u002F>- Sonos CEO Tom Conrad, \u003Ca href=\"https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fsonos\u002Fcomments\u002F1qofc3w\u002Fcomment\u002Fo29qixo\u002F\">Jan 28, 2026\u003C\u002Fa>\n\n- Sonora stands on the shoulders of giants.  It is a functional synthesis of Sonos research from others that have come before.  These projects documented how the speakers worked long before Sonora existed.\n\n  - \u003Cb>Sources of Information:\u003C\u002Fb>\n    - \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsvrooij\u002Fsonos-api-docs\">Unofficial Sonos docs\u003C\u002Fa>\n    - \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsvrooij\u002Fsonos-net\">sonos-net\u003C\u002Fa>\n    - \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FSoCo\u002FSoCo\">SoCo\u003C\u002Fa>\n    - \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsvrooij\u002Fnode-sonos-ts\">node-sonos-ts\u003C\u002Fa>\n\n  - \u003Cb>Sources of Inspiration:\u003C\u002Fb>\n    - \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsonos-web\u002Fsonos-web\">Sonos Web\u003C\u002Fa>\n    - \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjanbar\u002Fnoson-app\">Noson\u003C\u002Fa>\n    - \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpascalopitz\u002Funoffical-sonos-controller-for-linux\">Unofficial Sonos Controller for Linux\u003C\u002Fa>\n\n- Sonos has been working tirelessly to create hardware and the software that drives it for over 20 years.  Their early decision to create a (relatively) open platform with a local-first design allows Sonora, and tools like it, to exist and function.\n- The themes that follow Sonos' apps were made by using and measuring them. They contain none of Sonos' code, artwork, or translations.\n- Service logos, product pictures, and cover art are fetched while Sonora runs and belong to their owners.\n- Lyrics come from \u003Ca href=\"https:\u002F\u002Flrclib.net\u002F\">LRCLIB\u003C\u002Fa>, a free, community-run library. Big ups to the LRCLIB project.\n\n## 🔒 License\n\nThis project is licensed under AGPL-3.0-only: the GNU Affero General Public License, version 3, and no later version. The full text is in\n[LICENSE](LICENSE).\n\nSonora is not affiliated with, endorsed by, or supported by Sonos, Inc. \"Sonos\" is a trademark of Sonos, Inc.\n","2026-10-31 04:26:20","CREATED_QUERY"]