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)
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
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
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
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
Dev App Status: View currently sideloaded app information
Progress Tracking: Real-time upload progress for sideloading
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
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
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 tabIntegration 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
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
BuilderExecutor
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
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 — Monaco editor + live debug consoleSame 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
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
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
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)
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