roku-dev-studio

Este servidor proporciona una interfaz de Model Context Protocol (MCP) para que los agentes de IA controlen, depuren y desarrollen en dispositivos Roku a través de la aplicación Roku Dev Studio.

Documentación

Roku Dev Studio icon  Roku Dev Studio

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

Herramientas para desarrolladores de Roku para macOS, Windows y Linux: Control Remoto, Side-loading de aplicaciones, automatización ECP, RALE / App Connector, Inspector de Red, Action Scripts, servidor MCP para agentes de IA (Cursor, Claude, VS Code) y una CLI rds. Compatible con dispositivos en red local y dispositivos conectados por internet.

Una aplicación de escritorio multiplataforma integral para controlar y desarrollar en dispositivos Roku a través de tu red local o mediante un servidor remoto usando el Protocolo de Control Externo (ECP).

¿Por qué Roku Dev Studio? (vs. las herramientas oficiales de Roku)

El desarrollo de Roku normalmente está dividido en un montón de herramientas oficiales separadas y de un solo propósito: la herramienta de control remoto de Roku, el instalador de sideload basado en navegador, telnet sin procesar, RALE, sca-cmd — que no se comunican entre sí. Roku Dev Studio no reemplaza los protocolos propios de Roku (ECP, RALE, telnet, sca-cmd) — los envuelve todos en una sola interfaz gráfica, una CLI (rds) y un servidor MCP:

TareaSin Roku Dev StudioCon Roku Dev Studio
Control remotoLa herramienta de control remoto oficial de Roku, o llamadas ECP keypress sin procesar mediante curl/PostmanUna pestaña: D-Pad completo, teclado remoto y un mini-control remoto flotante
SideloadingEl instalador basado en navegador del dispositivo o una extensión de VS Code — una IP a la vezSideload Relay — un solo envío desde tu IDE instala, lanza y captura la consola en cada dispositivo objetivo
Consola de depuracióntelnet <ip> 8085 en una terminal sin procesar o mediante un IDE — sin búsqueda/filtrado/guardado en ningún casoUna consola estructurada con búsqueda, filtrado y registros guardados
Depuración de BrightScriptEl protocolo de depuración por socket, utilizable principalmente mediante la extensión de un solo IDEUn depurador independiente: puntos de interrupción, ejecución paso a paso, pila de llamadas, variables, observación
Inspección de aplicaciones (RALE)RALE solo inspecciona nodos de SceneGraph — sin forma de llamar a un canal o intercambiar datos con élApp Connector — extiende RALE con la capacidad de llamar a las funciones propias de tu canal y pasar datos de ida y vuelta (estilo GET/POST), desbloqueando automatización que no existía antes
Tráfico de redUn proxy MITM configurado por separado (Charles/mitmproxy/Fiddler) con configuración manual del dispositivoProxy MITM local integrado + captura de paquetes por hotspot opcional
Análisis estáticoSalida de sca-cmd contrastada manualmente con los documentos de certificación de RokuEjecuta sca-cmd por ti, con enlaces a los requisitos de certificación directamente a la documentación de Roku
Ubicaciones remotas / laboratoriosSe requiere presencia física — ECP solo funciona en la red localUn servidor remoto incluido conecta ECP a través de internet
Pruebas repetiblesScripts hechos a mano alrededor de ECP y RALEAction Scripts — crea un flujo (pulsaciones de teclas, consultas, condicionales, esperas) desde una interfaz gráfica, o ejecútalo sin interfaz mediante rds
Acceso para agentes de IANada oficialUn servidor MCP incluido permite que Cursor, Claude Desktop o VS Code controlen un dispositivo real

¿Por qué he construido Roku Dev Studio?

Este repositorio es un monorepo de npm workspace. Ejecuta npm install y npm start desde la raíz del repositorio para que los workspaces se vinculen correctamente. La instalación ejecuta un postinstall (npm run build:libs) que compila los paquetes compartidos roku-dev-studio-platform y roku-dev-studio-api a sus salidas dist/, que la aplicación y el servidor remoto importan. Usa npm run typecheck para una verificación completa de TypeScript en cada workspace y npm test para ejecutar pruebas unitarias. CI ejecuta estas más verificaciones de compilación/sintaxis por paquete en cada push y pull request. La configuración, los scripts y las compilaciones distribuibles están documentados en INSTALLATION.md.

Estructura del repositorio

UbicaciónQué es
apps/roku-dev-studio/Aplicación de escritorio Electron (proceso principal, renderizador, empaquetado). Compilaciones de desarrollo y distribuibles: INSTALLATION.md.
packages/roku-dev-studio-api/Biblioteca Node compartida + CLI rds: descubrimiento, ECP, capturas de pantalla, sideload, RALE, ejecutor de action-script, validador sin interfaz — README del paquete.
packages/roku-dev-studio-mcp/Servidor MCP que permite que agentes de IA (Cursor, Claude Desktop, VS Code) controlen un Roku a través de esta aplicación — README del paquete.
packages/roku-dev-studio-network-inspector/Motor del Inspector de Red: captura de paquetes por hotspot (DNS/SNI/HTTP) + proxy MITM local, independiente del transporte para que funcione tanto en la aplicación de escritorio como en el servidor remoto — README del paquete.
packages/roku-dev-studio-rce/Cliente del Emulador en la Nube de Roku (RCE) — API Core (cuentas / dispositivos / instantáneas) y API de Dispositivo (proxy ECP, sockets de puentes de puertos) para Rokus virtuales alojados en la nube, utilizado por las ubicaciones RCE de la aplicación — README del paquete.
packages/roku-dev-studio-remote-server/Relé HTTP/WebSocket para controlar Rokus a través de internet — README del paquete.
packages/roku-dev-studio-platform/Ayudantes compartidos de plataforma host (identidad del SO, teclas modificadoras, path-safe, ayudantes de sistema de archivos solo para Node) utilizados por la aplicación y otros paquetes para que la lógica de plataforma viva en un solo lugar. Compilado a dist/ en npm install — README del paquete.
roku-components/Artefactos del lado de BrightScript: TrackerTask.xml (colócalo en tu canal para App Connector / RALE), el andamiaje SceneGraph fiddle/ y demo/ (el canal Roku Dev Studio Showcase incluido detrás de Try Demo App) — README de componentes.

Autor: Hareendra Donapati

Glosario

TérminoSignificado en una línea
ECPProtocolo de Control Externo — la API HTTP de Roku en el puerto 8060 (KeyPress, Launch, Query, Deep-Link).
Telnet 8085 / 8080La consola de depuración de BrightScript (8085) y los comandos del sistema de desarrollo (8080) en un Roku en Modo Desarrollador.
RALEEditor Avanzado de Diseño de Roku — el protocolo de inspección de SceneGraph de Roku a través de un socket TCP (puerto predeterminado 49200), hablado por el componente TrackerTask.
TrackerTaskEl componente BrightScript que los desarrolladores de canales añaden a su aplicación para hacerla accesible desde RALE / App Connector — consulta roku-components/README.md.
App ConnectorLa pestaña de Dev Studio que habla RALE: lista / llama a los GetExternalControlFunctions de tu canal, además de funciones integradas (búsqueda de nodos, editor de registro, actualización de nodos).
Inspector de RedLa pestaña / motor de Dev Studio que inspecciona el tráfico HTTP(S) de un canal de desarrollo a través de un proxy MITM local, con captura de paquetes por hotspot opcional.
SideloadSubir e instalar un canal de desarrollo .zip / .pkg en un Roku en Modo Desarrollador mediante su Contraseña de Desarrollo.
Sideload RelayRDS anunciándose como un Roku para que un solo sideload desde tu IDE / navegador se distribuya (instalar → lanzar → consola) a muchos dispositivos objetivo.
Action ScriptAutomatización descrita en JSON que encadena pulsaciones de teclas, consultas, sideload, llamadas de App Connector, capturas de pantalla, condicionales, esperas y variables. Se construye y ejecuta desde la pestaña Action Scripts; también se puede ejecutar sin interfaz mediante rds.
Servidor MCPEl servidor de Protocolo de Contexto de Modelo de Roku Dev Studio — permite que Cursor / Claude Desktop / VS Code controlen un dispositivo real a través de esta aplicación mientras está abierta. Alterna clientes en Configuración → Servidor MCP.
FiddleEl editor de borradores de BrightScript (Monaco + lint de brighterscript) que envuelve tu fragmento en un canal temporal y lo ejecuta en un dispositivo seleccionado.
rdsLa CLI de terminal enviada por roku-dev-studio-api (rds discover, rds keypress, rds script run, rds rale repl, …).

Plataformas compatibles

Roku Dev Studio está disponible para:

PlataformaOpciones
macOSInstalador DMG, archivo ZIP portátil
WindowsInstalador NSIS, ejecutable portátil
LinuxPaquete DEB, AppImage

Inicio
Home
Control Remoto + Rendimiento del DispositivoApp Connector (RALE)Constructor de Action Scripts
Remote with Device PerformanceApp ConnectorAction Scripts Builder
Fiddle de BrightScriptConfiguración del Servidor MCPDev App / Sideload
BrightScript FiddleSettings MCP ServerDev App

Más capturas de pantalla para cada función: FEATURES.md.

Funciones

Consulta FEATURES.md para el recorrido completo con capturas de pantalla. Índice rápido:

Control Remoto (Control Remoto Flotante) · Rendimiento del Dispositivo · Descubrimiento de Dispositivos · Lanzador y Gestión de Aplicaciones · Consultas de Dispositivos · Gestión de Dev App · Probar App de Demostración · Sideload Relay · Consola y Depuración · Ventana de Puertos · Monitor de Consola · Depurador de BrightScript · App Connector (RALE) · Inspector de Red · Visor de Sesiones de Red · Action Scripts · Agentes de IA (Servidor MCP) · Fiddle de BrightScript · Visor de Archivos de Registro · Análisis Estático de Canales · CLI rds · Compatibilidad con Servidor Remoto · Configuración · Cambio de Idioma · Informes de Fallos · Funciones de Desarrollador

Configuración del Servidor Remoto

Roku Dev Studio puede controlar dispositivos a través de internet usando un puente de servidor remoto, para que puedas gestionar dispositivos en Ubicaciones Remotas sin estar en la misma red que la aplicación de escritorio. Ejecuta el relé (npm run remote-server desde este repositorio, o npm install -g roku-dev-studio-remote-server), luego añádelo mediante Añadir Ubicación Remota en el selector de dispositivos. El modal tiene dos pestañas: RDS Relay (dirección del servidor de relé + puerto) y RCE (un nombre de cuenta del Emulador en la Nube de Roku + Token de Acceso Personal). Los dispositivos RCE aparecen como apagados / pendientes / en ejecución y deben iniciarse primero (Iniciar, con opciones opcionales de instantánea / firmware / Tiempo Máximo de Ejecución) — ECP, sideload y consola solo responden mientras un dispositivo está en ejecución.

La configuración completa (ejecutar el servidor como un servicio, configuración de red/firewall, la API HTTP/WebSocket y documentación de Swagger) está en el README del paquete del servidor remoto.

Estructura del proyecto

.
├── 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-rce/             # Roku Cloud Emulator client (accounts, devices, ECP proxy)
│   ├── 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

El árbol propio de la aplicación Electron (TypeScript main.ts / preload.ts compilado a main.bundled.cjs / preload.bundled.cjs, renderer/, activos de compilación) vive bajo apps/roku-dev-studio/.

Requisitos

Para ejecutar la aplicación:

  • Node.js 24.17+
  • npm (incluido con Node.js)
  • Dispositivo Roku en la red local (o servidor remoto para acceso remoto)

Para compilar:

  • Todo lo anterior
  • Herramientas de compilación específicas de la plataforma:
    • macOS: Herramientas de línea de comandos de Xcode
    • Windows: Windows SDK (para el instalador NSIS)
    • Linux: Herramientas de compilación estándar (gcc, make, etc.)

Consulta Instalación para instrucciones de configuración y compilación.

Licencia

Este proyecto está licenciado bajo la Licencia MIT.

Componentes de terceros utilizados en este software y sus licencias:

BibliotecaPropósitoLicencia
@tanstack/virtual-coreRenderizado de listas virtualizadas (consola telnet, resultados de scripts grandes)MIT
archiverCreación de paquetes de sideload .zipMIT
brighterscriptLinting de BrightScript en el editor FiddleMIT
commanderAnálisis de argumentos de CLI de rdsMIT
electronEntorno de ejecución de la aplicación de escritorioMIT
electron-builderEmpaquetado e instaladoresMIT
form-dataCargas multipart HTTPMIT
modern-screenshotCaptura de DOM a imagen para tarjetas de gráficos / exportación PDFMIT
monaco-editorEditor de código (editores de pasos de Fiddle y action-script)MIT
pdf-libGeneración de PDFMIT
sharpProcesamiento de imágenes (iconos/compilación)Apache-2.0
solid-jsFramework reactivo que impulsa el nuevo renderizadorMIT
wsCliente WebSocketMIT

Sus dependencias se utilizan bajo los términos declarados en package-lock.json y el repositorio de cada paquete.