Control devices beyond your LAN

Remote Server & Cloud Emulator

Two ways to reach Roku devices that aren't on your local network: run the RDS Relay Server at the other site for the real devices on its LAN, or add a Roku Cloud Emulator account for cloud-hosted virtual devices. Both appear as Remote Locations in the app and get the same tooling as local devices.

A lightweight Node.js server that runs on a computer at the remote site so Roku Dev Studio can control the real Roku devices on that LAN over the internet — no physical access needed. This tab covers its architecture, setup, capabilities, and API.

Architecture

Desktop App
(Your Computer)
↔
Remote Server
↔
Roku Device
(Remote Location)
Shared stack: The desktop app and remote server both use the same roku-dev-studio-api library for discovery and ECP. Local traffic talks to the Roku directly; remote traffic goes through a relay client hosted on the server.

1. Run the Relay Server

Option A — from this repo
git clone https://github.com/paramount-engineering/roku-dev-studio.git
cd roku-dev-studio
npm install
npm run remote-server     # listens on port 4951 by default
Option B — from npm
npm install -g roku-dev-studio-remote-server
roku-remote-server        # or: roku-remote-server 4951
Option C — self-contained copy for the remote machine
npm run deploy:remote-server   # from the repo root → ~/Desktop/RDS-Remote-Server-Copy

Rebuilds the server and its roku-dev-studio-api dependency into one folder with a local tarball, so npm install --omit=dev on the remote box never needs the unpublished workspace packages. Copy the folder over and follow the README.txt inside it.

Package: npmjs.com/package/roku-dev-studio-remote-server

2. Configure the network

  • Open the chosen port (default 4951) on the host running the relay
  • For internet exposure, prefer a VPN or tunnel rather than a public-internet port
  • Built-in protection: start the server with RDS_RELAY_TOKEN=<secret> and every route except /health — the telnet WebSocket upgrade included — requires Authorization: Bearer <secret> or ?token=<secret>; without it, anyone who can reach the port has full control of every Roku on that network

3. Connect from the desktop app

  • Click Add Remote Location in the device selector
  • Enter the server URL (e.g. http://remote-server-ip:4951)
  • Click Connect to discover remote devices

Capabilities

Internet Bridge

All ECP commands work through the server

Device Discovery

Finds every Roku on the remote network

Telnet Relay

BrightScript console streamed live, plus the 8080 / 8087 system consoles

File Upload

Sideload dev apps to remote devices

Network Inspector

Capture and MITM proxy on the remote LAN, streamed live

Debugger

Attach, step, breakpoints, and variables over the relay

Swagger API

Interactive API documentation, powered by Swagger/OpenAPI 3.0, at http://localhost:4951/api-docs.

Remote server Swagger UI at /api-docs

Running as a service

Starter service files ship with the package for all three platforms:

  • macOS: a Launch Agent plist (com.roku-dev-studio.remote-server.plist)
  • Linux: a systemd unit (roku-remote-server.service)
  • Windows: run at logon via Task Scheduler, or wrap with NSSM

Full step-by-step service setup, the complete API endpoint reference, and security considerations are in the remote server package README.

Roku's cloud-hosted virtual devices. There is no server to run — Roku Dev Studio talks to the RCE Core API and to each running device's own Device API directly, so a cloud device gets the same tabs as a physical one.

  1. In the Roku Cloud Emulator web UI, create a Personal Access Token (Token tab).
  2. In Roku Dev Studio, open Remote Locations → Add Location → RCE, name the account and paste the token. Tick Forget it on App Quit/Close if the token should not be stored.
  3. Devices list as shutdown / pending / running. Start one — optionally choosing a snapshot, firmware version, and Max Run Time (up to 48 hours) — then open its tab.

Remote & ECP

Keypresses, deep links, and queries via the device's ECP proxy

Sideload

Dev App installs and screenshots via the device's installer

Console & Debugger

Telnet, the debugger, and RALE over the device's ports bridge

Screen Relay

Live device video with volume and mute, plus a screenshots gallery

Client library: roku-dev-studio-rce (Core API + Device API).