Roon Extension and Android App: it'roXs!

Never used Extensions before, so I was not sure what should happen. Always thought that extensions must be installed on the Core which is not possible in case of a ROCK. I was wrong.

I cloned the GitHub repository, started it and it shows up in Roon under Settings->Extensions. But this is not a real solution for me, it must be running on my Synology.

Tried to get the ‘comassky/itroxs’ Docker image running on my Mac and my Synology. It starts, but it does not show up in Roon under Extensions. Strange!

Next I installed the theappgineer/roon-extension-manager Docker image on my Synology. It worked immediately and I was able to install the it’roXs extension (Category:Playback; Playback extension:it’roXs).

@Boris_Schaedler Thanks! For me the app is great to pause, skip songs and to know whats playing at the moment. When I’m not sitting in front of my computer, I usually use Roons iPad app, but it feels as it was written for the first generation iPad ~10 years ago. :frowning: This is a much faster way for basic Roon control.

Did you set the network mapping 8090:8090 ?

Yes, tried it also with other local ports.

Thanks for the docker update!

Did you notice that you can long click on the volume buttons for continous volume up and down? I’m not sure about a slider, it would need more space and is less precise…

Thanks for your feedback @olfu :slightly_smiling_face:

I don’t get extensions…I do appreciate those who have directed me to the various notes etc, but I don’t find most of it to be written in plain English. It’ computer jargon to me (generally).

I did have that Google extension working a month or so ago, I’ve only just thought about it now & it doesn’t show under extensions in Roon. I’m not missing that either way!!

I don’t think I’m slow with technology at all (but I’m don’t work in the computer industry either), perhaps I’ve just not got the time to read through all the literature and try to make sense of it all.

I’ll have a go time permitting next weekend.

Cheers. :musical_note:


I think there is a bug in the android app.

I can’t see cover art.

Remote commands are ok. (next, volume up/down etc etc)

Could you please send me a screenshot (same email address where you send the log to)? And a debug log right after skipping a song when the album art is loaded.

My bad … it’s my mistake …

Everything is working !

I change the docker image and use alpine base image, so 350mo => 40mo :slight_smile:

Yes but i think add a slider (shown when touch the volume value, between + and - ?) can be a faster way to set a volume.

Maybe both method are good :slight_smile: unit + / - and slider for fast volume set.


What is: 350mo => 40mo???

Yes, I think hiding the slider after a button click would be a good solution!

I optimize the docker image, previously 350mb, 40mb for now :slight_smile:

1 Like

I found a nice way to make the installation of an extension very easy :sunglasses:

It is possible to bundle nodejs apps into one executable file, nothing to install or so, just executable files which can be run on windows, macos or linux (

I had to adjust my extension a little bit to make it work, but it seems to work now!

If you want to try, you can find the executables here:
The sha256.txt file contains the sha256 fingerprints of the files, so you can verify after downloading.


  • Linux:
    Make the file roon-extension-itroxs-linux executable after downloading: chmod a+x roon-extension-itroxs-linux
    Run the file in a terminal.

  • Windows:
    You can double-click the file roon-extension-itroxs-win.exe to run it. Some warnings will appear because the file is not signed and so on. Just run it anyway. If you are afraid, ask your virus scanner or test it in a virtual machine (or upload to On my Win10 machine the firewall popped up, make sure the firewall does not block the extension.

  • macOS:
    Safari added some file name extension to the roon-extension-itroxs-macos file (.dms or so), rename it back to roon-extension-itroxs-macos. Make the file executable: chmod a+x roon-extension-itroxs-macos. Open Finder and select Open from the context menu of the file. macOS also displays some warnings, run it anyway :wink:

After running the extension, enable it in Roon settings. Now the Android app should be able to connect to the extension (enter the IP address of the machine on which the extension is running in the apps settings). Make sure your firewall does not block the app!

Have fun :slightly_smiling_face:

Very nicely done @Boris_Schaedler! The extension installed for me without issue on MacOS using the bundled approach described above.

I noticed that the track info does not always reflect the latest track change. It seems to always refresh fine when the notification is already visible. But when first swiping down to make the notification visible it sometimes shows the last track shown before. It’s not consistent though, more than 50% of the time it is fine, and I can’t discern a pattern.

In each case opening the full app or cycling through the endpoints forces a refresh, so not a real issue for me.

Thanks @ToneDeaf

The reason for this behavior is probably a lost connection between app and extension. I’m still working on the ‘reconnect strategy’, so this topic is still a little bit ‘under construction’.

Did you check your devices energy saving settings? E.g. battery optimization? Turn it off for the app.

There is also an update for the app available (v0.09) which addresses these issues. Can you please try and report if the app behaves better? The app now checks more often, if the connection to the extension is still alive…

Thank you!

Hello @Boris_Schaedler,

I turned off battery optimisation on the same device (OnePLus 3T, Android 9), and although I believe it occurs less often, occasionally it still does not refresh on track change. I’ll pm with some screenshots and further info so as not to pollute this thread with all the detail.

Just realise that it’roXs! will (of course, duh) happily :slightly_smiling_face: work on devices that do not have a Roon control installed, and maybe are unable to do so - it’roXs! may provide (very restricted) playback functionality in such cases. This could be interesting perhaps for providing limited access to guests, children etc. in the current absence of profile-based security in Roon. Just thinking out loud.

You can also send a debug log. When it does not refresh correctly, open the app and select ‘Send Debug Log’ from the bottom right menu. This could help to understand what’s going on on your device. My Pixel 4 XL just updates fine on every track change. Just curious, does your OnePlus have an always on display?

By the way: A queue view and browsing functionality is on my todo list. I’ll keep your profile-based functionality in mind.

1 Like

Will have a go at sending debug if/when I catch something later on. Not sure about always on display. Conflicting info online, and have not used, but will see what I can find.

Love the concept of it’roXs! and what it does already!

I have an update for you :sunglasses: I added a volume slider! It appears when you press the volume up or down button.

Since the update via PlayStore takes quite a long time at the moment, you can download the latest version of the app here (if you can’t wait):

Have fun!

1 Like

Hi, I have downloaded your app and installed the extension in roon. I have the roon core on an synology diskstation. I entered the IP Adresse in the app (like but it says connect failed: ECONNREFUSED (Connection Refused) (-1)

I have forwarded port 8090 in Synology.

What can I do?