roku-dev-studio

Este servidor fornece uma interface de Model Context Protocol (MCP) para agentes de IA controlarem, depurarem e desenvolverem em dispositivos Roku por meio do aplicativo Roku Dev Studio.

Documentação

Roku Dev Studio icon  Roku Dev Studio

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

Ferramentas de Desenvolvimento Roku para macOS, Windows e Linux — Controle Remoto, Side-loading de Apps, automação ECP, RALE / App Connector, Network Inspector, Action Scripts, servidor MCP para agentes de IA (Cursor, Claude, VS Code) e uma CLI rds. Suporta dispositivos na rede local e dispositivos conectados via internet.

Um aplicativo desktop multiplataforma abrangente para controlar e desenvolver em dispositivos Roku pela sua rede local ou via servidor remoto usando o Protocolo de Controle Externo (ECP).

Por que Roku Dev Studio? (vs. ferramentas oficiais da Roku)

O desenvolvimento Roku normalmente é dividido em várias ferramentas oficiais separadas e de propósito único — a Roku Remote Tool, o instalador de sideload baseado em navegador, telnet bruto, RALE, sca-cmd — que não conversam entre si. O Roku Dev Studio não substitui os protocolos próprios da Roku (ECP, RALE, telnet, sca-cmd) — ele os integra em uma única GUI, uma única CLI (rds) e um único servidor MCP:

TarefaSem Roku Dev StudioCom Roku Dev Studio
Controle remotoA Roku Remote Tool oficial, ou chamadas ECP keypress brutas via curl/PostmanUma aba: D-Pad completo, teclado remoto e um mini-controle flutuante
SideloadingO instalador baseado em navegador do dispositivo ou uma extensão do VS Code — um IP por vezSideload Relay — um único push do seu IDE instala, inicia e captura o console em todos os dispositivos de destino
Console de depuraçãotelnet <ip> 8085 em um terminal bruto ou através de uma IDE — sem busca/filtro/salvamento em ambos os casosUm console estruturado com busca, filtragem e logs salvos
Depuração BrightScriptO protocolo de depuração por socket, utilizável principalmente através da extensão de uma única IDEUm depurador autônomo: breakpoints, execução passo a passo, pilha de chamadas, variáveis, watch
Inspeção de apps (RALE)RALE sozinho apenas inspeciona nós SceneGraph — sem como chamar funções de um canal ou trocar dados com eleApp Connector — estende o RALE com a capacidade de chamar funções do seu próprio canal e trocar dados (estilo GET/POST), desbloqueando automações que não existiam antes
Tráfego de redeUm proxy MITM configurado separadamente (Charles/mitmproxy/Fiddler) com configuração manual do dispositivoProxy MITM local integrado + captura de pacotes opcional via hotspot
Análise estáticaSaída sca-cmd verificada manualmente contra os documentos de certificação da RokuExecuta sca-cmd para você, com links diretos para os requisitos de certificação na documentação da Roku
Locais remotos / laboratóriosPresença física necessária — ECP só funciona na rede localUm servidor remoto integrado faz a ponte do ECP pela internet
Testes repetíveisScripts artesanais em torno de ECP e RALEAction Scripts — crie um fluxo (teclas, consultas, condicionais, esperas) pela GUI, ou execute-o headless via rds
Acesso por agentes de IANada oficialUm servidor MCP integrado permite que Cursor, Claude Desktop ou VS Code controlem um dispositivo real

Por que construí o Roku Dev Studio?

Este repositório é um monorepo npm workspace. Execute npm install e npm start a partir da raiz do repositório para que os workspaces sejam vinculados corretamente. A instalação executa um postinstall (npm run build:libs) que compila os pacotes compartilhados roku-dev-studio-platform e roku-dev-studio-api para suas saídas dist/, que o aplicativo e o servidor remoto importam. Use npm run typecheck para uma verificação completa de TypeScript em todos os workspaces e npm test para executar testes unitários. O CI executa esses testes, além de verificações de build/sintaxe por pacote em cada push e pull request. Configuração, scripts e builds distribuíveis estão documentados em INSTALLATION.md.

Estrutura do repositório

LocalO que é
apps/roku-dev-studio/Aplicativo desktop Electron (processo principal, renderer, empacotamento). Builds de desenvolvimento e distribuíveis: INSTALLATION.md.
packages/roku-dev-studio-api/Biblioteca Node compartilhada + CLI rds: descoberta, ECP, capturas de tela, sideload, RALE, executor de action scripts, validador headless — README do pacote.
packages/roku-dev-studio-mcp/Servidor MCP que permite que agentes de IA (Cursor, Claude Desktop, VS Code) controlem um Roku através deste aplicativo — README do pacote.
packages/roku-dev-studio-network-inspector/Mecanismo do Network Inspector: captura de pacotes via hotspot (DNS/SNI/HTTP) + proxy MITM local, independente de transporte para rodar tanto no aplicativo desktop quanto no servidor remoto — README do pacote.
packages/roku-dev-studio-rce/Cliente Roku Cloud Emulator (RCE) — Core API (contas / dispositivos / snapshots) e Device API (proxy ECP, sockets de ponte de portas) para Rokus virtuais hospedados na nuvem, usado pelos locais RCE do aplicativo — README do pacote.
packages/roku-dev-studio-remote-server/Relay HTTP/WebSocket para controlar Rokus pela internet — README do pacote.
packages/roku-dev-studio-platform/Helpers compartilhados de plataforma host (identidade do SO, teclas modificadoras, path-safe, helpers de sistema de arquivos somente Node) usados pelo aplicativo e outros pacotes para que a lógica de plataforma fique em um só lugar. Compilado para dist/ em npm install — README do pacote.
roku-components/Artefatos do lado BrightScript: TrackerTask.xml (adicione ao seu canal para App Connector / RALE), o scaffold SceneGraph fiddle/ e demo/ (o canal Roku Dev Studio Showcase incluído, por trás do Try Demo App) — README dos componentes.

Autor: Hareendra Donapati

Glossário

TermoSignificado em uma linha
ECPExternal Control Protocol — API HTTP da Roku na porta 8060 (KeyPress, Launch, Query, Deep-Link).
Telnet 8085 / 8080O console de depuração BrightScript (8085) e os comandos de sistema de desenvolvimento (8080) em um Roku em Modo Desenvolvedor.
RALERoku Advanced Layout Editor — protocolo de inspeção SceneGraph da Roku via socket TCP (porta padrão 49200), falado pelo componente TrackerTask.
TrackerTaskO componente BrightScript que desenvolvedores de canais adicionam ao seu app para torná-lo acessível via RALE / App Connector — veja roku-components/README.md.
App ConnectorA aba do Dev Studio que fala RALE: lista / chama os GetExternalControlFunctions do seu canal, além de funções integradas (busca de nós, editor de registro, atualização de nó).
Network InspectorA aba / mecanismo do Dev Studio que inspeciona o tráfego HTTP(S) de um canal de desenvolvimento através de um proxy MITM local, com captura de pacotes opcional via hotspot.
SideloadEnviar e instalar um canal de desenvolvimento .zip / .pkg em um Roku em Modo Desenvolvedor usando sua Senha de Desenvolvimento.
Sideload RelayO RDS se anuncia como um Roku para que um único sideload do seu IDE / navegador seja distribuído (instalar → iniciar → console) para vários dispositivos de destino.
Action ScriptAutomação descrita em JSON que encadeia teclas, consultas, sideload, chamadas App Connector, capturas de tela, condicionais, esperas e variáveis. Criada e executada na aba Action Scripts; também executável headless via rds.
Servidor MCPO servidor Model Context Protocol do Roku Dev Studio — permite que Cursor / Claude Desktop / VS Code controlem um dispositivo real através deste aplicativo enquanto ele estiver aberto. Ative clientes em Configurações → Servidor MCP.
FiddleO editor de rascunho BrightScript (Monaco + lint brighterscript) que envolve seu trecho de código em um canal temporário e o executa em um dispositivo selecionado.
rdsA CLI de terminal fornecida pelo roku-dev-studio-api (rds discover, rds keypress, rds script run, rds rale repl, …).

Plataformas suportadas

O Roku Dev Studio está disponível para:

PlataformaOpções
macOSInstalador DMG, arquivo ZIP portátil
WindowsInstalador NSIS, executável portátil
LinuxPacote DEB, AppImage

Início
Home
Controle Remoto + Desempenho do DispositivoApp Connector (RALE)Construtor de Action Scripts
Remote with Device PerformanceApp ConnectorAction Scripts Builder
BrightScript FiddleConfigurações do Servidor MCPDev App / Sideload
BrightScript FiddleSettings MCP ServerDev App

Mais capturas de tela para cada recurso: FEATURES.md.

Recursos

Veja FEATURES.md para o tour completo com capturas de tela. Índice rápido:

Controle Remoto (Controle Remoto Flutuante) · Desempenho do Dispositivo · Descoberta de Dispositivos · Iniciador e Gerenciamento de Apps · Consultas de Dispositivo · Gerenciamento de Dev Apps · Try Demo App · Sideload Relay · Console e Depuração · Janela de Portas · Monitor de Console · Depurador BrightScript · App Connector (RALE) · Network Inspector · Visualizador de Sessões de Rede · Action Scripts · Agentes de IA (Servidor MCP) · BrightScript Fiddle · Visualizador de Arquivos de Log · Análise Estática de Canal · CLI rds · Suporte a Servidor Remoto · Configurações · Troca de Idioma · Relatórios de Crash · Recursos para Desenvolvedores

Configuração do Servidor Remoto

O Roku Dev Studio pode controlar dispositivos pela internet usando uma ponte de servidor remoto, permitindo gerenciar dispositivos em Locais Remotos sem estar na mesma rede do aplicativo desktop. Execute o relay (npm run remote-server deste repositório, ou npm install -g roku-dev-studio-remote-server) e adicione-o via Adicionar Local Remoto no seletor de dispositivos. O modal tem duas abas: RDS Relay (endereço do Relay Server + porta) e RCE (nome de conta Roku Cloud Emulator + Personal Access Token). Dispositivos RCE aparecem como desligados / pendentes / em execução e devem ser iniciados primeiro (Iniciar, com opções opcionais de snapshot / firmware / Max Run Time) — ECP, sideload e console só respondem enquanto um dispositivo estiver em execução.

A configuração completa (executar o servidor como um serviço, configuração de rede/firewall, API HTTP/WebSocket e documentação Swagger) está no README do pacote do servidor remoto.

Estrutura do projeto

.
├── 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

A árvore do próprio aplicativo Electron (TypeScript main.ts / preload.ts compilado para main.bundled.cjs / preload.bundled.cjs, renderer/, assets de build) fica em apps/roku-dev-studio/.

Requisitos

Para executar o aplicativo:

  • Node.js 24.17+
  • npm (incluído com Node.js)
  • Dispositivo Roku na rede local (ou servidor remoto para acesso remoto)

Para compilar:

  • Tudo acima
  • Ferramentas de build específicas da plataforma:
    • macOS: Xcode Command Line Tools
    • Windows: Windows SDK (para instalador NSIS)
    • Linux: Ferramentas de build padrão (gcc, make, etc.)

Veja Instalação para instruções de configuração e build.

Licença

Este projeto é licenciado sob a Licença MIT.

Componentes de terceiros usados neste software e suas licenças:

BibliotecaFinalidadeLicença
@tanstack/virtual-coreRenderização de listas virtualizadas (console telnet, grandes resultados de script)MIT
archiverCriação de pacotes sideload .zipMIT
brighterscriptLinting de BrightScript no editor FiddleMIT
commanderrds análise de argumentos de CLIMIT
electronRuntime do aplicativo desktopMIT
electron-builderEmpacotamento e instaladoresMIT
form-dataUploads HTTP multipartMIT
modern-screenshotCaptura de DOM para imagem em cartões de gráfico / exportação PDFMIT
monaco-editorEditor de código (Fiddle, editores de etapas de action-script)MIT
pdf-libGeração de PDFMIT
sharpProcessamento de imagens (ícones/build)Apache-2.0
solid-jsFramework reativo que alimenta o novo renderizadorMIT
wsCliente WebSocketMIT

Suas dependências são usadas sob os termos declarados em package-lock.json e no repositório de cada pacote.