Features

Everything Roku Dev Studio does, in one place. Pick one from the left.

Remote Control

  • Full D-Pad Control: Navigate menus, select items, go back/home
  • Media Controls: Play, pause, rewind, fast-forward, volume control
  • Optional Keyboard Remote: Enable in Settings → General → Roku Remote - Use Keyboard (off by default); arrow keys, Enter, Backspace, Escape, Space work as the remote on the Remote tab or Dev App tab for the open device
  • Visual Remote Interface: On-screen remote with all buttons
  • Works Locally & Remotely: Control devices on local network or via remote server
  • Floating Remote: A draggable mini remote you can pop open on any tab that doesn't already show a full remote (e.g. Query, App Connector)
Remote Control tab

Device Performance

Remote Section

  • Live charts: On Remote, turn on Show Device Performance for a quad layout with CPU (CPU % or a per-Process table), memory with a System / Graphics mode switch (system usage vs texture memory) plus a View Graphics Bitmaps (r2d2) modal, and object charts (count or memory view where available)
  • Chart history: Every chart keeps a rolling time series (length set in Settings); the CPU Process view is built from successive proc-stat snapshots (Roku OS 15.2+)
  • Export Chart Data: Per-chart export as CSV, JSON (the full retained series, not just the latest sample), or an image
  • Chart Info: Per-chart modal explaining what each series measures and where the data comes from
  • When it applies: Reflects the running app when Developer Mode is on and your sideloaded dev channel is in the foreground
  • Settings → Device Performance: Tune chart sample interval and history window; optional "Remember Show Device Performance" per device
  • Action Scripts: Capture chart cards into run results — e.g. PNGs included in exported PDFs
Remote Section with Show Device Performance on — CPU, memory, and object charts

Device Discovery

  • Automatic SSDP Discovery: Automatically finds Roku devices on your local network
  • Subnet Scanning: Fallback discovery method when SSDP multicast is unavailable
  • Remote Device Discovery: Discover devices on remote networks via server bridge
  • Real-time Updates: Devices appear as they're discovered

App Launcher & Management

  • Installed Apps Browser: View and launch all apps installed on the device
  • App Icons: Display actual app icons loaded from the device in a grid layout
  • Custom App Launch: Launch any app by entering App ID
  • Deep-Linking: Launch apps with specific content (movies, shows, channels)
  • HDMI Inputs: Switch to HDMI inputs on TV devices
  • Remote Launch: Launch apps on remote devices via server
App Launcher tab

Device Queries

  • Device Info: Get device name, model, serial, software version, network info
  • All Apps: List all installed apps with details
  • Active App: Get currently running app information
  • Media Player: Query current media playback status
  • SceneGraph Nodes: Query all nodes or root nodes
  • SG Rendezvous: Get SceneGraph events and track/untrack
  • FW Beacons: Query firmware beacons
  • Plugins & Memory: Get plugin info and memory usage
  • System Commands: Execute system-level commands via telnet (port 8080)
  • Command History: View and re-run previous commands
  • Custom Queries: Run any custom ECP query endpoint
Device Queries tab

Dev App Management

  • Remote Sideloading: Upload and install dev channels to local or remote devices
  • Auto Screenshot: Automatically capture screenshots after keypresses, text input, and Dev App Launch
  • Launch Dev App: Launch sideloaded dev channel with one click
  • Delete Sideload: Remove sideloaded channel remotely
  • Dev App Status: View currently sideloaded app information
  • Progress Tracking: Real-time upload progress for sideloading
Dev App tab

Try Demo App

  • No channel of your own required: Sideload the bundled Roku Dev Studio Showcase channel to any Roku in Developer Mode. It exercises Remote Control, App Connector (real two-way function calls), Network Inspector traffic, Console Monitor findings, and MCP/AI-agent control, so you can explore RDS without building a channel of your own
  • One-click sideload: Enable Show Try Demo App Button in Settings → General to add a title-bar button; pick a developer-mode device in the picker and RDS packages, sideloads, and launches it
  • Guided callouts: A post-launch tips list points you at the exact App Connector functions (PlayContentById, SetProxy, TriggerConsoleFinding, and more) that light up each feature

Sideload Relay

  • One build → many devices: With the relay on, Roku Dev Studio advertises itself as a Roku over SSDP; point your IDE (VS Code BrightScript / Eclipse / roku-deploy) or a browser at this machine, upload once, and RDS fans the build out (install → launch → console) to every targeted device — local or at a remote location
  • Enable in Settings → Sideload Relay (off by default): set a Relay Dev Password and pick targets in Setup Devices
  • Browser upload page: A themed drag-and-drop .zip uploader is served at the relay address for sideloads without an IDE
  • Auto-connect: Every target's device tab and Console open at the start of the run, and the console connects before the install — so a failed install is still visible, and the Console is already listening when the channel compiles; the debugger still attaches after install. Live fan-out progress streams on telnet 8085
  • Source approval: A sideload from another machine prompts for allow / deny on the RDS host; remote browser uploads also require the Relay Dev Password

Console & Debugging

  • Telnet Console Access: Direct access to Roku console logs (port 8085)
  • Remote Console: Access console logs on remote devices via server
  • Real-time Output: See console log output in real-time
  • System Commands: Execute system commands via telnet (port 8080)
  • Log Export: Save console logs to file
Console tab

Ports Window

  • Standalone per-device window: Open it from the Console card header (Open Ports Window); one tab per port
  • Built-in tabs: 8080 SceneGraph console (plugins, free, sgnodes, fps_display, …), 8087 screensaver console, and 8081 debug protocol — debugger controls with a live trace of the protocol traffic
  • Custom Port: Open any other port as a text console (Cloud Emulator devices tunnel 9999 and 49152–65535)
  • The window holds the socket: One-shot consumers in the main window (Query tab, Action Scripts, Toggle FPS) reuse the port it has open instead of dialing their own; everything is released when the window closes

Console Monitor

  • Grouped issue modal: Shows the matching findings in tabs by category, like the screenshot: Type/Runtime, SceneGraph/Component, JSON, and Other, with per-group counts at a glance
  • Automatic BrightScript issue detection: Scans console output for recognized crash / error patterns and expands each issue into What / Cause / Fix guidance plus occurrence lines
  • Crashes & Issues: Crashes show severity and full backtrace with a Copy Crash + Backtrace action; clicking an issue or an occurrence row jumps straight to the matching line in the log
  • Works live and on saved logs: Available from both the Console tab and the Log File Viewer via the Monitor button
  • Launch & performance beacons: A Performance section pairs Roku's [beacon.signal] Initiate / Complete lines into durations for App Compile, App Launch, Dialog Launch, EPG Launch, Video Start, Live Start, Channel Change, and Channel Exit — flagging an EPG launch beyond the 5 s certification window
Console Monitor — grouped issues by category with per-group counts Console Monitor — expanded issue with What / Cause / Fix guidance and occurrences Console Monitor — clicking an occurrence jumps straight to that line in the log

BrightScript Debugger

  • Socket debug protocol (port 8081): Tick the per-device Enable Debugger checkbox (Dev App tab / Fiddle) and RDS sideloads with the protocol turned on; while the flag is on it also attaches automatically whenever the running channel reports it is waiting for a debugger — on local, lab-server and Cloud Emulator devices alike
  • Execution control: Attach / Detach, Continue, Pause, Step Over / In / Out, and Restart (re-sideload with debugging + reattach)
  • Breakpoints: Add / edit / remove, including conditional breakpoints (Roku OS 11.5+); STOPs already in the channel are discovered automatically
  • Threads & Call Stack, Variables, Watch: Inspect the call stack and live variables at a stop, and track watch expressions across stops
  • Lives in the Telnet Console sidebar: Toggle the debug sidebar from the Console tab; works on local and remote devices (server-capability-gated)

App Connector (using RALE)

  • RALE Connection: Connect to TrackerTask in your dev app (default port 49200)
  • Function Discovery: Auto-discover everything GetExternalControlFunctions exposes in your scene
  • Remote Execution: Execute any BrightScript function with parameters; positional functionParams array
  • Return Values: Get function return values in real-time
  • Update Node: After Get Node by ID, open the Update Node modal to selectNode, setField, or removeField on the matched node
  • RALE built-ins: Node lookup plus a full registry editor
  • Integration Guide modal: In-app TrackerTask tutorial with BrightScript snippets and a Save TrackerTask.xml button
  • Remote Function Calls: Works on local and remote devices via server
App Connector tab
App Connector tab
Integration Guide modal
Integration Guide modal

Network Inspector

  • MITM proxy: A local proxy decrypts your dev channel's HTTPS so you can inspect full request / response headers and bodies — enable it in Settings → Network Inspector
  • Hotspot capture (optional): Records SNI / DNS metadata for all device traffic via OS packet capture (macOS BPF, Windows Npcap)
  • Session list & filters: Filter by host, method, status, type, kind, path (comma = OR), group by host, jump to errors
  • Inspect & export: View request/response overview, headers, and bodies; copy a body or export as cURL / HAR; save captured packets as .pcap
  • Traffic rules: Block, throttle, or mock responses per host / path

Available for locally connected devices; engine lives in roku-dev-studio-network-inspector.

Network Session Viewer

  • Open a saved capture: File → Open Network Session (Ctrl/Cmd+Shift+N) loads a .rds-network-inspector.json bundle, a HAR 1.2 file, or a .pcap
  • Same UI, read-only: Browses the session with the identical two-pane list/detail view as the live Network Inspector tab

Action Scripts

  • Script Builder: Create scripted sequences with keypresses, send-text, ECP query/POST, launch, sideload, delete-sideload, screenshots, App Connector calls, RALE commands, Device Performance chart capture, and waits
  • Variables (script v2): Set Variable step or assignToVar stores values; reference as ${name} in later steps
  • Conditionals (script v2): If / Else if / Else branches sourced from media-player state, active app, a RALE node field, or a stored variable
  • Wait conditions: Fixed delay, or wait until media-player state or a RALE node field condition is met
  • Script Executor: Import / paste / validate, run with pause / resume / stop, per-step skip, inline screenshots
  • PDF export: Run results — including screenshots and Device Performance chart cards — exportable as PDF
  • Headless / CLI: Same scripts run from the terminal via rds script run
  • Standalone window: File → View and Manage Action Scripts opens the Builder over your saved-scripts library independent of any connected device
Action Scripts Builder
Builder
Action Scripts Executor
Executor

AI Agents (MCP Server)

  • Model Context Protocol: Bundled roku-dev-studio-mcp server lets Cursor, Claude Desktop, and VS Code drive a real Roku through this app while it's open
  • Settings → MCP Server: Toggle a client to add or remove its roku-dev-studio MCP entry. View MCP Tools opens a reference modal listing every exposed tool grouped by capability area
  • Two surfaces: Direct device ops for one-shot actions (including network_inspector_find for full-content search across captured requests / responses and device_performance_metrics for time-sliced CPU / memory / object series with chart selection, time window and downsampling) plus Action Scripts for multi-step / conditional flows that drop into the Builder for human review
  • Toasts on agent actions: Destructive ops surface a non-blocking toast so you always see what the agent did
  • Passwords stay local: Sideload / screenshot / delete-sideload reuse the password the device panel remembered — the agent never sends one
Settings → MCP Server panel

See the dedicated MCP page for the full tool catalog, connection architecture, and security notes — or the MCP package README for exact parameter schemas.

BrightScript Fiddle

  • Open Fiddle: File → Open Fiddle (Ctrl/Cmd+Shift+B) or the Open Fiddle button on the Query tab
  • Monaco + brighterscript: BrightScript editor with live linting; Run is disabled while errors are present
  • One-click run: Wraps your snippet into a minimal SceneGraph channel, sideloads it on the selected device, and streams the debug console into the Fiddle window
  • Auto-cleanup: Stop / window close removes the Fiddle channel from the device
Fiddle window
Fiddle window — Monaco editor + live debug console
Fiddle channel on the Roku
Same snippet running on the Roku

Log File Viewer

  • Open saved logs: File → Open Log File (Ctrl/Cmd+Shift+O) opens a dedicated window with the same find / structured-log / URL-detection chrome as the live Console tab

Static Channel Analysis

  • Wraps Roku's own sca-cmd: Runs Roku's static-analysis CLI against a packaged channel — RDS downloads the tool at runtime, never ships it
  • Filters: Severity (Info / Warning / Error) and category (Manifest, Deprecated APIs, RAF, Channel Store, Authentication, Billing, Deep Linking, Analytics, Performance, Monitoring, …)
  • Results table: Cert Requirements chips link straight to the relevant section of Roku's certification / ad-requirements / Roku Pay docs; Documentation links open Roku's API reference
  • Terminal + Table tabs: Live raw tool output alongside a structured, filterable results table; View JSON / Save the full report
  • Requires Java 21+: RDS detects your Java install and reports version compatibility

File → Static Channel Analysis (Ctrl/Cmd+Shift+S)

rds CLI (terminal)

  • Ships with roku-dev-studio-api: rds discover, rds device info, rds keypress, rds launch, rds ecp query, rds sideload, rds screenshot, rds script validate / run, rds rale repl, rds appconnector connect — works direct over LAN or against a --relay server URL

Remote Server

Run the RDS Relay Server on a machine at another site to reach the real Roku devices on its LAN

  • Internet Bridge: Control Roku devices over the internet via a Relay Server
  • Full ECP Proxy: Complete ECP protocol implementation through the Relay Server
  • Device Discovery: Automatically discovers all Roku devices on the remote network
  • All Features Supported: Remote control, queries, sideloading, console, and RALE work remotely
  • Swagger API: Interactive API documentation for the Relay Server
  • Add Location → RDS Relay: Enter the Relay Server's address and port (4951 by default)
  • Forget it on App Quit/Close: A location added with the box ticked is dropped when the app quits and again at next startup (crash safety), along with any Sideload Relay targets pointing at it; its device tabs are never remembered for auto-connect
Remote server Swagger UI at /api-docs

Setup lives on the Remote Server & Cloud Emulator page.

Roku Cloud Emulator

Cloud-hosted virtual Rokus from your Roku Cloud Emulator (RCE) account — nothing to install or run at the other end

  • Add Location → RCE: An account name plus a Personal Access Token from the RCE web UI's Token tab; a User Info view shows the organization, user, and device / snapshot counts
  • Device lifecycle: Devices list as shutdown / pending / running. Start one with an optional snapshot, firmware version, and Max Run Time (up to 48 hours); Stop it when done
  • Same tabs as a real device: Remote and ECP queries, sideloading and screenshots, the Telnet console, App Connector (RALE), and the BrightScript Debugger all run over the cloud device's ports bridge
  • Screen Relay: Live video of the device screen in the Dev App tab, with volume and mute, plus a Session Screenshots gallery
  • Wake & Dev Mode: A Wake Device button and a Dev Mode status indicator for the running device
  • Custom console ports: The Ports Window accepts an RCE port (9999 or 49152–65535) alongside the standard 8080 / 8085 / 8087
  • Forget it on App Quit/Close: Drops the account together with its token, the same way as a relay location

Setup lives on the Remote Server & Cloud Emulator page.

Settings

Ctrl/Cmd+, — seven sections

  • General: Developer Mode, Privacy Mode (mask IPs/serials), Debug Logging to file, Roku Remote - Use Keyboard, Auto Connect to Devices, Auto Hide SideBar, Language, Show Try Demo App Button, Show Crash Reports
  • Action Scripts: Default folder for run artifacts (screenshots, exported PDFs)
  • Device Performance: Chart sample interval, chart history window, "Remember Show Device Performance" per device
  • Timing & Network: Connection / query / telnet timeouts and other knobs
  • Network Inspector: Enable the local MITM proxy and hotspot packet capture
  • Sideload Relay: Advertise RDS as a Roku and fan one sideload out to many devices
  • MCP Server: Toggle roku-dev-studio in your AI client(s)
Settings General
General
Settings Action Scripts
Action Scripts
Settings Device Performance
Device Performance
Settings Timing & Network
Timing & Network

Language Switching

  • 6 languages: English, Español, Українська, Polski, Română, Português — pick one from Settings → General → Language, or leave it on System Default to follow the OS
  • No restart needed: Switching retranslates the whole app, including already-open windows, immediately

Crash Reporting

  • Actionable failure reports: An uncaught error in the app itself (not your device) shows a report modal instead of failing silently, with a prefilled GitHub issue link
  • Redacted by default: IPs and MAC addresses are stripped from the report before display, copy, or submission
  • Toggle in Settings → General: Show Crash Reports is on by default; turn it off to suppress the modal

Developer Features

  • Developer Mode: Enhanced debugging and development features (Ctrl/Cmd+Shift+D)
  • Privacy Mode: Mask IP addresses and serial numbers in UI (Ctrl/Cmd+Shift+P)
  • Debug Logging to file: Optional file-based debug logging in app userData (Ctrl/Cmd+Shift+L)
  • Encrypted dev-password storage: "Remember password" persists via Electron safeStorage — macOS Keychain, Windows DPAPI, secret-service, or kwallet
  • Settings persistence: Preferences and device connections saved between sessions
  • Quick Remote (Dev App tab): Compact remote strip plus drag-drop sideload right next to the screenshot pane
  • Secret Screens modal: One-click presets for Roku's hidden screens
  • Device details modal: Hardware photos are fetched through the main process so the modal always opens, with a placeholder when no photo resolves
  • Open from toast: File-related toasts (saved logs, exports, screenshots) carry an Open action that launches the file through the OS
  • TrackerTask Export: Save TrackerTask.xml from the App Connector → Integration Guide
  • Clear Cache and Reload: Wipe Chromium cache without restarting the app