Jogar com os amigos exigia abrir o Discord num monitor e o jogo no outro, na mão, toda santa vez. O RigDeck nasceu daí e virou um painel de automação completo.
Código aberto · Windows 10 e 11 · Sem hardware
Um Stream Decksem hardware.
O celular abre uma página web e controla o seu PC Windows pela rede local. Abra programas, jogos e sites, mande cada janela pro monitor que você escolher e feche tudo com um toque longo. Nada pra instalar no celular.
Seu celular
Seu PC
- $ esperando um toque
Toque num botão do celular. Segure pra fechar o que ele abriu.
Como funciona
Quatro camadas, cada uma cega pra vizinha
O frontend não sabe que o PowerShell existe. O executor nunca viu uma grade de botões. Cada camada só conhece a vizinha, então você testa cada peça sozinha.
- 01
PWA no celular
JavaScript puro, sem buildUma grade de botões em pastas, com o editor embutido. A página se recarrega sozinha quando o servidor ganha versão nova.
fetch('/api/presets/gaming/run', { method: 'POST' }) - 02
API Fastify
Node.js + TypeScriptRecebe o toque, acha o preset e entrega os passos pro executor. Schemas de rota e tipos de ponta a ponta.
app.post('/api/presets/:id/run', run) - 03
Executor
Uma decisão por passoDecide como cada passo roda: abrir um programa, mandar uma tecla, rodar um comando, tocar um som ou fechar o que já está aberto.
{ "type": "launch", "target": "steam://rungameid/730", "monitor": 1, "fullscreen": true } - 04
PowerShell + Win32
Add-Type, sem módulo nativoA camada que conversa com o Windows. Lista monitores, move e redimensiona janelas, tira ícones de arquivos .exe, acha jogos da Steam e da Epic e manda teclas.
place-window.ps1 -Hwnd 0x2A04F2 -Monitor 1 -Fullscreen - →
Passos
Cinco tipos de passo. Misture num botão só.
Um preset é uma lista de passos. Um botão pode abrir Spotify, Brave e VS Code de uma vez, ou abrir um jogo no monitor 2 e trocar a cena do OBS.
Abre um .exe, um atalho, um protocolo como steam:// ou epicgames://, ou uma URL. Você escolhe o monitor e se vai em tela cheia.
{
"type": "launch",
"target": "steam://rungameid/730",
"monitor": 1,
"fullscreen": true
}Roda qualquer comando do terminal e devolve a saída pro celular.
{
"type": "cmd",
"command": "ipconfig /flushdns"
}Manda uma tecla pra janela em foco ou pra um processo. MAXIMIZE e RESTORE agem na própria janela, então o app nem precisa escutar.
{
"type": "key",
"key": "F11",
"processName": "brave"
}Toca um arquivo de áudio do PC e deixa o resto do preset seguir.
{
"type": "sound",
"path": "D:\\sons\\buzina.mp3"
}Controla o OBS pela API WebSocket: troca de cena, muta o microfone, começa e para gravação e live.
{
"type": "obs",
"action": "scene",
"sceneName": "Gameplay"
}Recursos
Tudo o que um deck de mesa faz, e umas coisas que ele não faz
- 01
Pastas, igual ao de verdade
Organize atalhos em pastas dentro de pastas, do jeito do Stream Deck da Elgato.
- 02
Segure pra fechar
Segure um botão e o RigDeck fecha o que aquele preset abriu, rastreado por PID ou handle da janela. As outras cópias do mesmo app continuam abertas.
- 03
Um monitor por passo
Cada passo escolhe o monitor e vai em tela cheia ou na posição e no tamanho que você definir.
- 04
Sites em janela própria
URLs abrem com --app=, sem abas nem barra de endereço, e fecham uma a uma sem derrubar o navegador.
- 05
Acha seus programas
Varre o Menu Iniciar, a Área de Trabalho e os manifestos da Steam e da Epic, e separa jogo de programa comum.
- 06
Mixer e soundboard
Volume geral, do microfone e por app, equalizador de 2 bandas, efeito de voz e botões de som que disparam por tecla ou atalho do Discord.
- 07
OBS pelo celular
Troque de cena, mute o microfone, comece e pare gravação ou live.
- 08
Navegue em pastas do disco
Aponte um botão pra uma pasta e toque nos arquivos como numa grade, sem cadastrar um por um.
- 09
Estatísticas ao vivo
CPU, RAM e disco livre na barra de status, mais o uso de 5 horas e semanal do Claude Code.
- 10
PWA instalável
Adicione à tela inicial. Deitado, ele mostra até 4 botões por página numa bandeja deslizante.
- 11
Exportar e importar
Faça backup de todos os presets num JSON só e leve pra outro PC.
- 12
Abre com o Windows, sem admin
Um atalho na pasta Inicializar do Windows liga o servidor. Sem permissão de administrador.
Telas
O painel de verdade
Direto de um PC rodando o RigDeck.




Stack
Pequeno de propósito
Por que Fastify?
O primeiro backend rodava em Express. A versão pública foi pra Fastify e TypeScript por causa dos tipos de ponta a ponta e dos schemas de rota nativos. O resto continuou enxuto: sem ORM, sem injeção de dependência, nada que o projeto não precise.
| Backend | Fastify + TypeScript, Node.js 20+ |
|---|---|
| Frontend | Módulos de JavaScript puro, sem framework, sem build |
| Automação | PowerShell, com a API Win32 via Add-Type inline |
| Testes | node:test nativo, com tsx como loader |
| Dados | Um arquivo JSON local, sem banco de dados |
Começar
Rodando com quatro comandos
git clone https://github.com/obrenoalvim/rigdeck.gitcd rigdecknpm installnpm run build && npm startServer listening at http://0.0.0.0:4321- 1
Instale no PC
Você precisa do Windows 10 ou 11 e do Node.js 20 ou mais novo. O PowerShell já vem no Windows.
- 2
Abra no celular
Conecte no mesmo Wi-Fi e abra o endereço do PC na porta 4321, tipo http://192.168.0.10:4321.
- 3
Adicione à tela inicial
O navegador instala como app. Deite o celular pro layout compacto.
Pra abrir junto com o Windows, sem admin:powershell -ExecutionPolicy Bypass -File scriptsinstall-startup-shortcut.ps1
Limites
O que ele não faz
Só Windows
O controle de janelas roda na API Win32 via PowerShell. O celular pode ser qualquer um com navegador.
Só rede local
Não tem login. Deixe a porta 4321 na sua rede de casa, ou coloque uma VPN ou um proxy reverso com autenticação na frente.
O rastreio fica na memória
Reiniciou o servidor, o RigDeck esquece qual PID é de qual botão. O segurar pra fechar passa a usar o nome do processo.
Dúvidas
Perguntas que aparecem
Dá pra usar o celular como Stream Deck do PC?
Dá. Rode o RigDeck no PC Windows, abra o endereço dele no navegador do celular no mesmo Wi-Fi, e cada botão que você criar abre programas, jogos, sites, teclas, sons ou ações do OBS no PC. Sem hardware e sem app no celular.
Preciso de um Stream Deck ou de algum hardware?
Não. O RigDeck roda no navegador do celular e conversa com um servidor pequeno no seu PC pela rede local. Um tablet ou outro PC também servem.
Preciso instalar algum app no celular?
Não. O PC serve uma página web e o celular abre. Dá pra adicionar à tela inicial como PWA instalável.
Funciona no macOS ou no Linux?
O servidor roda só no Windows 10 e 11, porque o controle de janelas depende da API Win32 via PowerShell.
Dá pra expor na internet?
Não. O RigDeck não tem autenticação. Deixe na rede local, ou coloque uma VPN ou um proxy reverso com autenticação na frente da porta 4321.
Abrir junto com o Windows precisa de admin?
Não. Ele abre no login por um atalho na pasta Inicializar do Windows.
O painel está em português?
Sim. Os textos do próprio painel estão em português. O README, o código e este site também têm versão em inglês.
Segurar pra fechar derruba meu outro Discord?
Não. O RigDeck guarda o PID ou o handle da janela que cada preset abriu e fecha só esses. Depois de reiniciar o servidor, ele passa a usar o nome do processo.