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
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:
| Tarea | Sin Roku Dev Studio | Con Roku Dev Studio |
|---|---|---|
| Control remoto | La herramienta de control remoto oficial de Roku, o llamadas ECP keypress sin procesar mediante curl/Postman | Una pestaña: D-Pad completo, teclado remoto y un mini-control remoto flotante |
| Sideloading | El instalador basado en navegador del dispositivo o una extensión de VS Code — una IP a la vez | Sideload Relay — un solo envío desde tu IDE instala, lanza y captura la consola en cada dispositivo objetivo |
| Consola de depuración | telnet <ip> 8085 en una terminal sin procesar o mediante un IDE — sin búsqueda/filtrado/guardado en ningún caso | Una consola estructurada con búsqueda, filtrado y registros guardados |
| Depuración de BrightScript | El protocolo de depuración por socket, utilizable principalmente mediante la extensión de un solo IDE | Un 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 él | App 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 red | Un proxy MITM configurado por separado (Charles/mitmproxy/Fiddler) con configuración manual del dispositivo | Proxy MITM local integrado + captura de paquetes por hotspot opcional |
| Análisis estático | Salida de sca-cmd contrastada manualmente con los documentos de certificación de Roku | Ejecuta sca-cmd por ti, con enlaces a los requisitos de certificación directamente a la documentación de Roku |
| Ubicaciones remotas / laboratorios | Se requiere presencia física — ECP solo funciona en la red local | Un servidor remoto incluido conecta ECP a través de internet |
| Pruebas repetibles | Scripts hechos a mano alrededor de ECP y RALE | Action 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 IA | Nada oficial | Un 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ón | Qué 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érmino | Significado en una línea |
|---|---|
| ECP | Protocolo de Control Externo — la API HTTP de Roku en el puerto 8060 (KeyPress, Launch, Query, Deep-Link). |
| Telnet 8085 / 8080 | La consola de depuración de BrightScript (8085) y los comandos del sistema de desarrollo (8080) en un Roku en Modo Desarrollador. |
| RALE | Editor 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. |
| TrackerTask | El 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 Connector | La 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 Red | La 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. |
| Sideload | Subir e instalar un canal de desarrollo .zip / .pkg en un Roku en Modo Desarrollador mediante su Contraseña de Desarrollo. |
| Sideload Relay | RDS anunciándose como un Roku para que un solo sideload desde tu IDE / navegador se distribuya (instalar → lanzar → consola) a muchos dispositivos objetivo. |
| Action Script | Automatizació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 MCP | El 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. |
| Fiddle | El editor de borradores de BrightScript (Monaco + lint de brighterscript) que envuelve tu fragmento en un canal temporal y lo ejecuta en un dispositivo seleccionado. |
rds | La 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:
| Plataforma | Opciones |
|---|---|
| macOS | Instalador DMG, archivo ZIP portátil |
| Windows | Instalador NSIS, ejecutable portátil |
| Linux | Paquete DEB, AppImage |
| Inicio |
|---|
![]() |
| Control Remoto + Rendimiento del Dispositivo | App Connector (RALE) | Constructor de Action Scripts |
|---|---|---|
![]() | ![]() | ![]() |
| Fiddle de BrightScript | Configuración del Servidor MCP | Dev App / Sideload |
|---|---|---|
![]() | ![]() | ![]() |
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:
| Biblioteca | Propósito | Licencia |
|---|---|---|
| @tanstack/virtual-core | Renderizado de listas virtualizadas (consola telnet, resultados de scripts grandes) | MIT |
| archiver | Creación de paquetes de sideload .zip | MIT |
| brighterscript | Linting de BrightScript en el editor Fiddle | MIT |
| commander | Análisis de argumentos de CLI de rds | MIT |
| electron | Entorno de ejecución de la aplicación de escritorio | MIT |
| electron-builder | Empaquetado e instaladores | MIT |
| form-data | Cargas multipart HTTP | MIT |
| modern-screenshot | Captura de DOM a imagen para tarjetas de gráficos / exportación PDF | MIT |
| monaco-editor | Editor de código (editores de pasos de Fiddle y action-script) | MIT |
| pdf-lib | Generación de PDF | MIT |
| sharp | Procesamiento de imágenes (iconos/compilación) | Apache-2.0 |
| solid-js | Framework reactivo que impulsa el nuevo renderizador | MIT |
| ws | Cliente WebSocket | MIT |
Sus dependencias se utilizan bajo los términos declarados en package-lock.json y el repositorio de cada paquete.






