Skip to main content

roku-cli

Interactively control your Roku device from the command-line with vim-style key bindings.

https://travis-ci.org/ncmiller/roku-cli.svg?branch=master

Who needs this?

This was made for lazy people who live on the command line.

(Story time) I was sitting on the couch with my laptop, Netflix on in the background, when suddenly and without warning, the credits are rolling - it’s time to find something else to watch before “Real Rob” starts playing. The remote is all the way over on the coffee table. I can’t be expected to stop what I’m doing, put my laptop down, use the remote, sit back down, and resituate myself with my laptop. There has to be a better way…

Luckily, python-roku exists, which makes it easy to control my Roku with Python. Add a simple interactive CLI, and now I’m Roku-ing in style without ever leaving the terminal.

There are a few practical advantages of roku-cli vs. the remote:

  • Responsiveness - Moving around the Roku has never been faster

  • Easy text entry - No more hunting around the on-screen keyboard with the arrow keys

  • Control any Roku in the house - If you have multiple Roku’s, you can select which one you want to control

  • Stay on the command line - No more context switching between your computer and the real world

Installation

pip install rokucli

Or to install the latest source:

git clone https://github.com/ncmiller/roku-cli.git
cd roku-cli
python setup.py install

Supported with Python 2 and 3 on Linux and Mac OS. Also works with Cygwin on Windows. Sorry, no native Windows support.

Usage

To launch the CLI:

$ roku

With no arguments, Rokus within the LAN will be discovered using SSDP. If only one Roku is found, then it will be selected, otherwise you’ll be asked to select one:

Found the following Roku devices:
[1]   192.168.1.116:8060 (Roku 3-4230X SW v7.2.0.4100)
[2]   192.168.1.147:8060 (Roku 3-4200X SW v7.2.0.4100)

Multiple Rokus found. Select the index of the Roku to control:
Select (1 to 2) >

Alternatively, if you already know the IP address of your Roku, then launch the CLI with the IP as the first argument:

$ roku 192.168.1.118

This method is much faster than SSDP.

From there, you’ll be in interactive mode, and you can input keys to control your Roku:

+-------------------------------+-------------------------+
| Back           B or <Backsp>  | Replay          R       |
| Home           H              | Info/Settings   i       |
| Left           h or <Left>    | Rewind          r       |
| Down           j or <Down>    | Fast-Fwd        f       |
| Up             k or <Up>      | Play/Pause      <Space> |
| Right          l or <Right>   | Enter Text      /       |
| Ok/Enter       <Enter>        |                         |
+-------------------------------+-------------------------+
(press q to exit)

Metadata

Release files for rokucli 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rokucli 1.0.6
File Size Uploaded
rokucli-1.0.6.tar.gz 5.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rokucli 1.0.6
File Interpreter ABI Platform
rokucli-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 12.2 kB

Release files / rokucli-1.0.6.tar.gz

Download URL rokucli-1.0.6.tar.gz
Size 5.8 kB
Tags Source
SHA-256 checksum
How to use checksums
d40707b3e1a06d73d230c7daf8419fed2b34c49cbb6c488918b428fb51fcf089
BLAKE2b-256 checksum
How to use checksums
3db5d484dfde39bb93778664c350b35b7c43c8c62701496f26f54e33cb86f6dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

Release files / rokucli-1.0.6-py3-none-any.whl

Download URL rokucli-1.0.6-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cce90a44ef52dcf62f4a0c1d2dd800222286ba4048ef620d36440d59c63b6897
BLAKE2b-256 checksum
How to use checksums
b8b55874decbaff279248f269cbbdde8f7a060aa2f0e911938d2798fd7cc9577
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page