roku-dev-studio

This server provides a Model Context Protocol (MCP) interface for AI agents to control, debug, and develop on Roku devices through the Roku Dev Studio application.

문서

Roku Dev Studio icon  Roku Dev Studio

Platform CI Version Electron License roku-dev-studio MCP server

Roku Developer Tools for macOS, Windows, and Linux — Remote Control, App Side-loading, ECP automation, RALE / App Connector, Network Inspector, Action Scripts, MCP server for AI agents (Cursor, Claude, VS Code), and a rds CLI. Supports both local network and internet-bridged devices.

A comprehensive cross-platform desktop application for controlling and developing on Roku devices over your local network or via remote server using the External Control Protocol (ECP).

This repository is an npm workspace monorepo. Run npm install and npm start from the repository root so workspaces link correctly. Installing runs a postinstall (npm run build:libs) that compiles the shared roku-dev-studio-platform and roku-dev-studio-api packages to their dist/ outputs, which the app and remote server import. Use npm run typecheck for a full TypeScript check across every workspace and npm test to run unit tests. CI runs these plus per-package build/syntax smoke checks on each push and pull request. Setup, scripts, and distributable builds are documented in INSTALLATION.md.

Repository layout

LocationWhat it is
apps/roku-dev-studio/Electron desktop app (main process, renderer, packaging). Dev and distributable builds: INSTALLATION.md.
packages/roku-dev-studio-api/Shared Node library + rds CLI: discovery, ECP, screenshots, sideload, RALE, action-script runner, headless validator — package README.
packages/roku-dev-studio-mcp/MCP server that lets AI agents (Cursor, Claude Desktop, VS Code) drive a Roku through this app — package README.
packages/roku-dev-studio-network-inspector/Network Inspector engine: hotspot packet capture (DNS/SNI/HTTP) + local MITM proxy, transport-agnostic so it runs in both the desktop app and the remote server — package README.
packages/roku-dev-studio-remote-server/HTTP/WebSocket relay to control Rokus over the internet — package README.
packages/roku-dev-studio-platform/Shared host-platform helpers (OS identity, modifier keys, path-safe, node-only filesystem helpers) used by the app and other packages so platform logic lives in one place. Built to dist/ on npm installpackage README.
roku-components/BrightScript-side artifacts: TrackerTask.xml (drop into your channel for App Connector / RALE) and the fiddle/ SceneGraph scaffold — components README.

Author: Hareendra Donapati

Glossary

TermOne-line meaning
ECPExternal Control Protocol — Roku's HTTP API on port 8060 (KeyPress, Launch, Query, Deep-Link).
Telnet 8085 / 8080The BrightScript debug console (8085) and dev system commands (8080) on a Developer-Mode Roku.
RALERoku Advanced Layout Editor — Roku's SceneGraph inspection protocol over a TCP socket (default port 49200), spoken by the TrackerTask component.
TrackerTaskThe BrightScript component channel developers add to their app to make it reachable from RALE / App Connector — see roku-components/README.md.
App ConnectorThe Dev Studio tab that talks RALE: list / call your channel's GetExternalControlFunctions, plus built-ins (node lookup, registry editor, update node).
Network InspectorThe Dev Studio tab / engine that inspects a dev channel's HTTP(S) traffic through a local MITM proxy, with optional hotspot packet capture.
SideloadUploading and installing a .zip / .pkg dev channel onto a Developer-Mode Roku via its Dev Password.
Sideload RelayRDS advertising itself as a Roku so one sideload from your IDE / browser fans out (install → launch → console) to many targeted devices.
Action ScriptJSON-described automation that chains keypresses, queries, sideload, App Connector calls, screenshots, conditionals, waits, and variables. Built and run from the Action Scripts tab; also runnable headless via rds.
MCP serverRoku Dev Studio's Model Context Protocol server — lets Cursor / Claude Desktop / VS Code drive a real device through this app while it's open. Toggle clients in Settings → MCP Server.
FiddleThe BrightScript scratch editor (Monaco + brighterscript lint) that wraps your snippet into a temporary channel and runs it on a selected device.
rdsThe terminal CLI shipped by roku-dev-studio-api (rds discover, rds keypress, rds script run, rds rale repl, …).

Supported Platforms

Roku Dev Studio is available for:

PlatformOptions
macOSDMG installer, Portable ZIP archive
WindowsNSIS installer, Portable executable
LinuxDEB package, AppImage

Home
Home

Features

See FEATURES.md for the full tour with screenshots. Quick index:

Remote Control (Floating Remote) · Device Performance · Device Discovery · App Launcher & Management · Device Queries · Dev App Management · Sideload Relay · Console & Debugging · BrightScript Debugger · App Connector (RALE) · Network Inspector · Network Session Viewer · Action Scripts · AI Agents (MCP Server) · BrightScript Fiddle · Log File Viewer · Static Channel Analysis · rds CLI · Remote Server Support · Settings · Developer Features

Remote Server Setup

Roku Dev Studio can control devices over the internet using a remote server bridge, so you can manage devices in Remote Locations without being on the same network as the desktop app. Run the relay (npm run remote-server from this repo, or npm install -g roku-dev-studio-remote-server), then add its URL via Add Remote Location in the device selector.

Full setup (running the server as a service, network/firewall configuration, the HTTP/WebSocket API, and Swagger docs) lives in the remote server package README.

Project structure

.
├── apps/
│   └── roku-dev-studio/                 # Electron desktop app (see INSTALLATION.md)
├── packages/
│   ├── roku-dev-studio-api/             # Shared API + `rds` CLI (npm: roku-dev-studio-api)
│   ├── roku-dev-studio-mcp/             # MCP server bundled into the desktop app
│   ├── roku-dev-studio-network-inspector/ # Network capture + MITM proxy engine
│   ├── roku-dev-studio-platform/        # Shared platform helpers (path-safe, OS identity)
│   └── roku-dev-studio-remote-server/   # HTTP/WS relay (npm: roku-dev-studio-remote-server)
├── roku-components/                     # TrackerTask + Fiddle SceneGraph assets
├── package.json                         # Workspace root (workspaces: apps/*, packages/*)
├── INSTALLATION.md
└── README.md

The Electron app’s own tree (TypeScript main.ts / preload.ts bundled to main.bundled.cjs / preload.bundled.cjs, renderer/, build assets) lives under apps/roku-dev-studio/.

Requirements

For Running the App:

  • Node.js 24.17+
  • npm (bundled with Node.js)
  • Roku device on local network (or remote server for remote access)

For Building:

  • All of the above
  • Platform-specific build tools:
    • macOS: Xcode Command Line Tools
    • Windows: Windows SDK (for NSIS installer)
    • Linux: Standard build tools (gcc, make, etc.)

See Installation for setup and build instructions.

License

This project is licensed under the MIT License.

Third-party components used in this software and their licences:

LibraryPurposeLicence
@tanstack/virtual-coreVirtualized list rendering (telnet console, large script results)MIT
archiverBuilding sideload .zip packagesMIT
brighterscriptBrightScript linting in the Fiddle editorMIT
commanderrds CLI argument parsingMIT
electronDesktop app runtimeMIT
electron-builderPackaging & installersMIT
form-dataHTTP multipart uploadsMIT
modern-screenshotDOM-to-image capture for chart cards / PDF exportMIT
monaco-editorCode editor (Fiddle, action-script step editors)MIT
pdf-libPDF generationMIT
sharpImage processing (icons/build)Apache-2.0
solid-jsReactive framework powering the new rendererMIT
wsWebSocket clientMIT

Their dependencies are used under the terms declared in package-lock.json and each package’s repository.