Swarpius — a self-hosted, open-source AI assistant for Roon

Hi all,

I’m a long-time Roon user (have not posted here before) and have been working on a personal project since the start of the year for using an LLM for intelligent chat-based control of Roon. Of course there are similar projects out there, but my effort ended up growing and getting more and more polished, to the point I felt I’d like to share it with anyone who is interested.

It’s called Swarpius and is free and open-source. Given a suitably capable model, it can handle some pretty complex multi-step requests quite reliably, such as:

- *“Play the five biggest UK hits of 1981 in the kitchen”*

- *“What’s this song about?”*

- *“Queue 25 random tracks from all my Led Zeppelin albums”*

- *“Play some classic jazz tracks”*

- *“I’m feeling sad, play something to cheer me up”*

It can also handle anything the Roon API exposes - zone grouping, transport controls etc. You can also assign aliases to zones.

The things that might make this one interesting compared to alternative AI-related extensions:

- **Model agnostic** — Use any LLM. Anthropic, OpenAI, Gemini, or a local model via Ollama / LM Studio. You can plug in your own key

- **Self-hosted** - Run it on your own hardware. If you self-host the LLM and the backends, there’s no communication outside your network at all

- **Flexible usage** — You can install it via Docker, run it from source, or run it standalone on Windows, Mac (Apple Silicon) or Linux via fully signed installers. The UI is browser-based, but if running from source you can also run it in CLI mode

- **Optional web search** — so when needed it can look up info that helps it carry out requests

- **Optional TTS** — spoken replies via text-to-speech

The GitHub project can be found here. You can also download the installers from there for the easiest and quickest way to run it, or from here.

Here’s a screenshot of the main UI:

There’s also a developer mode with extensive diagnostic and analytics views (see the GitHub repo for more shots):

Please feel free to try it out if you are so inclined. Feedback would be most welcome :slight_smile:

Many thanks,

Yogesh

P.S. Standard disclaimer - this is an independent project, not affiliated with or endorsed by Roon Labs.

4 Likes

Thanks for sharing your work here. It looks like you’ve put some thought and effort into Swarpius. I’m interested in the ability to run everything locally, aggregated quality metrics, and CLI mode.

Thanks for your reply! Happy to answer any questions if you have them. Feedback welcome if you do try it out!

Interesting project. Got it up running in a Proxmox LXC (Debian Trixie). Since i don’t have access to the available LLM providers, i had to let Opencode implement my Opencode Go subscription as provider first. Currently using mimo-v2.5 as LLM. I have already running a SearXNG server for my Hermes agent. So web search is working too. Have to check out “Live Diagnostics & Conversation Analysis” next.

Sounds useful and it is a shame Roon aren’t delivering similar functionality as core to the product. Five years ago I retired from corporate IT, but haven’t much of a clue what any of that is or means. Admittedly I have had zero interest in IT since retiring, so I think it is time to brush up on what is current. :grinning_face_with_smiling_eyes:

I‘m a retired software developer too :zzz: I never lost interest in software development, but didn‘t code much since my retirement. This changed completely during the last 12 months. The AI agentic coding stuff is mind-blowing.

Adding a new LLM provider to Swarpius would have taken many hours of understanding and modifying the code. With AI and Opencode, it took only 15 minutes. Completely vibe-coded with a few prompts.

1 Like