Control Roku devices with a web browser

9fb74e2 Reference homepage

~pistos pushed to ~pistos/remoteku git

a month ago

d97f342 Clarify backend startup instructions

~pistos pushed to ~pistos/remoteku git

a month ago


A web app that lets you control Roku devices on your local network




As per the Python documentation, create a Python virtual environment:

python3 -m venv venv

Enter the Python virtual environment:

. venv/bin/activate

Install the dependencies:

python -m pip install -r requirements.txt


Install the dependencies:

cd frontend
npm install

#Getting Started

Two daemons need to be running: the backend and the frontend.

Start the backend (from the root of the repository, and within the Python virtual environment):


Start the frontend (in another shell/terminal):

cd frontend
npm run serve

Visit http://ip.of.serving.host:8080 in a browser.

As per Vue CLI documentation and webpack documentation, a different frontend port than 8080 can be specified thus:

npm run serve -- --port 8081


Upon visiting the web app, the app scans the local network for Roku devices, and lists them by IP address. Choose one, and then a graphical representation of a physical Roku remote control will be presented. Below the remote control is a text field used for quick text entry on the Roku. Below that is a grid of Roku apps that are installed on the chosen Roku.

For most buttons on the virtual remote, clicking/tapping on them will send the button press to the Roku. (At this time, not all button presses are implemented.) The keyboard of the browsing device can also be used; see Keyboard Shortcuts section, below.

After a text field is activated on the Roku, the text field in the remoteku web app can be used to quickly send keystrokes to the Roku (in a batch) to fill in the text field on the Roku.

#Keyboard Shortcuts

Key Button pressed
Up arrow Up
Down arrow Down
Left arrow Left
Right arrow Right
Enter OK
Backspace Back
Esc Back
Space Play/Pause
Page Up Rewind
Page Down Fast Forward