roku
Control Roku devices via CLI. Discovery, remote control, app launching, search, and HTTP bridge mode for real-time control.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/gumadeiras/rokuRoku CLI
Fast TypeScript CLI for controlling Roku devices via the ECP API.
Installation
npm install -g roku-ts-cli@latest
Quick Start
# Discover devices and save an alias
roku discover --save livingroom --index 1
# Use the alias
roku --host livingroom device-info
roku --host livingroom apps
Commands
| Command | Description |
|---|---|
roku discover | Find Roku devices on network |
roku --host <ip> device-info | Get device info |
roku --host <ip> apps | List installed apps |
roku --host <ip> command <key> | Send remote key |
roku --host <ip> literal <text> | Type text |
roku --host <ip> search --title <query> | Search content |
roku --host <ip> launch <app> | Launch app |
roku --host <ip> interactive | Interactive remote mode |
Interactive Mode
roku livingroom # interactive control
roku --host livingroom interactive # same thing
Use arrow keys, enter, escape for remote-like control.
Bridge Service
Run a persistent HTTP bridge as a native OS service:
# Install and start the service
roku bridge install-service --port 19839 --token secret --host livingroom --user
roku bridge start --user
# Service management
roku bridge status --user
roku bridge stop --user
roku bridge uninstall --user
Send commands via HTTP:
# Send key
curl -X POST http://127.0.0.1:19839/key \
-H "Content-Type: application/json" \
-H "Authorization: Bearer secret" \
-d '{"key":"home"}'
# Type text
curl -X POST http://127.0.0.1:19839/text \
-H "Content-Type: application/json" \
-H "Authorization: Bearer secret" \
-d '{"text":"hello"}'
# Launch app
curl -X POST http://127.0.0.1:19839/launch \
-H "Content-Type: application/json" \
-H "Authorization: Bearer secret" \
-d '{"app":"plex"}'
# Health check
curl http://127.0.0.1:19839/health -H "Authorization: Bearer secret"
Bridge Endpoints
| Endpoint | Body |
|---|---|
POST /key | {"key": "home"} |
POST /text | {"text": "hello"} |
POST /search | {"title": "Stargate"} |
POST /launch | {"app": "plex"} |
GET /health | — |
GET /health?deep=1 | Deep health check (probes Roku) |
Aliases
# Save device alias
roku discover --save livingroom --index 1
roku alias set office 192.168.1.20
# Save app alias
roku alias set plex 13535
# List aliases
roku alias list
# Use aliases
roku --host livingroom launch plex
Remote Keys
home, back, select, up, down, left, right, play, pause, rev, fwd, replay, info, power, volume_up, volume_down, mute
Notes
- Roku must be on the same network as the CLI
- Bridge service runs as a native launchd (macOS) or systemd (Linux) service
- Use
--userflag for user-space service (no sudo required) - Use
--tokenfor authentication in bridge mode
Source
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-gumadeiras-roku": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
gotrain
MTA system train departures (NYC Subway, LIRR, Metro-North). Use when the user wants train times, schedules, or service alerts for MTA transit. Covers MTA Subway, LIRR, and Metro-North across the greater New York area.
jq
Command-line JSON processor. Extract, filter, transform JSON.
little-snitch
Control Little Snitch firewall on macOS. View logs, manage profiles and rule groups, monitor network traffic. Use when the user wants to check firewall activity, enable/disable profiles or blocklists, or troubleshoot network connections.
office-quotes
Generate random quotes from The Office (US). Provides access to 326 offline quotes plus online mode with SVG cards, character avatars, and full episode metadata via the akashrajpurohit API. Use for fun, icebreakers, or any task requiring The Office quotes.
calcurse
A text-based calendar and scheduling application. Use strictly for CLI-based calendar management.