About Roxee

Roxee is remote control software for your computer. It is written in perl using Tk. I have every reason to believe this program will work with XBMC if the Boxee Pair/Connect methods are removed. If you want to try it, please let me know, and we will see if we can get it working. If we can, I would be happy to update roxee with an XBMC mode.

The Boxee implements a Zeroconf discovery protocol. Roxee uses a program called dig to find your Boxee and connect to it. dig was chosen above Net::DNS simply because it is already installed on more systems. If dig is not installed on your system, but nslookup is, roxee will query via nslookup. You can use the -s command-line option to specify a specific name or IP address and avoid Zeroconf all together. Zeroconf is also known as Bonjour and Avahi. dig is availble in different package names on different systems. The most common package name is dnsutils.

More information can be found in the roxee manual.


The purpose of roxee is to make your keyboard and mouse on your computer behave as if it were running Boxee locally. The roxee manual contains more information on which features are supported, but here are a few:


Everything you need to run roxee is in one perl file. If you want to register it with your desktop, you can also download icon and desktop files to complete your installation.

Download this file and put it anywhere. All you need to do is to make sure it is executable, and you are ready to go. On Windows, with ActiveState, you may want to rename this "".
Roxee icon. Thie file is entirely optional. You can put it in /usr/share/pixmaps or wherever your system stores application icon files.
This file contains the data used by some desktop evironment to automatically register software with your launch bar. It is commonly installed /usr/share/applications.


There are no special requirements for a roxee installation. You can download it and install it where ever you want. If your perl is not located as /usr/bin/perl, then you will either need to change the first line of roxee to point to the correct perl, or run /path/to/perl roxee to run roxee.

The first time you run roxee, and this is very important, you have to pair it with our Boxee. The new Boxee JSON protocol only allows authorized clients. The process is simple:

  1. Start your Boxee and go to any non-media playing page (The Home or Settings pages work really well).
  2. Run roxee with the pair option: roxee --pair
  3. Read the 4-digit code from your boxee screen and type it into the roxee prompt which reads "Enter code from Boxee:", then press Enter.
  4. Your Boxee screen should say "Done", and your computer should have a roxee window running. You can focus in the roxee window and press Enter, it should be passed to your Boxee to accept the "Done" dialog button.
  5. That is it, you are ready to use roxee.

You must repeate this process for each computer you wish to connect to your Boxee. roxee uses your computer's hostname as a device ID to keep intruders from sigining onto your boxee.

Non-core perl module requirements

The following perl modules are very common, so it might be best to try running roxee to see if it works. If not, you will need to install these modules:

Probably called perl-tk by your distribution. This module is not installed by default on MAC OSX and I don't know of what is required to get it working. Please contact me with any information. This module is installed by default with ActiveState.
Probably called perl-libwww by your distribution. This module is installed by default on MAC OSX. This module is installed by default with ActiveState.

Both of these modules are included with the ActiveState perl distribution, So, using ActiveState should be sufficient to get roxee working.

Program notes

Boxee has two different protocols for remote control:

  1. Legacy XBMC HTTPAPI which will be removed from a future version.
  2. New JSON API

Neither protocol has support for the full functionality of roxee, and so the new JSON API is used for everything it can do, and the legacy XBMC HTTPAPI is used for generic keyboard interaction. Hopefully, this ability will be added to the JSON API before the HTTPAPI is retired. Either that, or for Boxee to at least open the Event Server.

Last modified: 1 June 2011

William Totten (

Copyleft: (C) 2011, William Totten