UStackUStack
Standboy icon

Standboy

Standboy é uma extensão do VS Code que integra um painel de emulador Game Boy e o mostra/pausa automaticamente com a atividade do seu agente de IA.

Standboy

O que é o Standboy?

Standboy é uma extensão do VS Code que integra um painel de emulador da família Game Boy e vincula a visibilidade e o estado de reprodução do emulador à atividade do seu agente de IA. Quando o agente começa a gerar, o Standboy expande automaticamente a barra lateral do emulador e retoma a reprodução; quando o agente termina ou fica inativo, o Standboy oculta o painel e pausa o emulador.

O objetivo é reduzir o “tempo morto” de espera pelo agente, mantendo a distração dentro do IDE e pausando o emulador quando ele não está trabalhando ativamente. Suporta o carregamento dos seus próprios arquivos ROM e mantém o último jogo reproduzido e os saves entre reinícios do VS Code.

Principais funcionalidades

  • Exibição/ocultação automática com base na atividade do agente: A extensão expande o emulador após o agente trabalhar por alguns segundos e o recolhe após um período semelhante de inatividade para evitar oscilações durante turnos breves do agente.
  • Integração de ciclo de vida para Cursor e Claude Code: O Standboy integra-se através das APIs oficiais de ciclo de vida do Cursor e do Claude Code usando um único interruptor no menu do painel.
  • Retoma no meio do frame: Quando o emulador é reaberto, retoma exatamente de onde parou (não apenas reinicia o jogo).
  • Biblioteca de ROMs com saves persistentes: As ROMs carregadas são copiadas para uma biblioteca gerida. O estado de save do jogo é espelhado no disco quando o painel é ocultado, a página é descarregada e antes da Exportação; o estado em tempo de execução é mantido no IndexedDB, com a extensão projetada para que os saves sobrevivam a reinícios do VS Code.
  • Correspondência de ROMs e metadados da biblioteca: As ROMs são identificadas comparando o seu SHA-1 com uma base de dados No-Intro incluída, permitindo títulos canónicos consistentes e arte de capa (com fallback de letra para homebrew/hacks).
  • Suporte a dispositivos e entrada: Suporta ROMs .gb, .gbc e .gba com deteção automática da plataforma pela extensão do ficheiro. Os controlos de teclado são reconfiguráveis a partir do menu do painel, mapeando o D-pad para as setas e A/B/Start/Select para quaisquer teclas escolhidas.
  • Emulador offline e dados incluídos: O emulador (EmulatorJS) e a base de dados No-Intro são incluídos e funcionam offline.

Como usar o Standboy

  1. Instalar a extensão do VS Code: No VS Code, abra o painel de Extensões e procure por Standboy, ou execute code --install-extension mfbzme.standboy.
  2. Ligar a deteção do agente (primeira execução): Na primeira ativação, o Standboy abre automaticamente o painel e mostra um cartão para ligar o tipo de agente detetado (Claude Code se ~/.claude/settings.json existir, ou Cursor se estiver a executar dentro do Cursor). Use Ligar para ativar os hooks de ciclo de vida, ou descarte e alterne mais tarde no menu em Deteção.
  3. Adicionar uma ROM: Clique em + Adicionar ROM (ou Carregar ROM… no menu), depois escolha um ficheiro local .gb, .gbc ou .gba. O Standboy copia-o para a sua biblioteca gerida, identifica-o contra a base de dados No-Intro incluída e inicia o emulador.
  4. Usar o emulador durante a geração ativa: O painel aceita entrada de teclado enquanto está aberto. Quando o agente está inativo, o Standboy pausa e oculta o painel de acordo com as regras da janela de inatividade.

Casos de uso

  • Manter o foco enquanto um agente trabalha: Quando o Cursor/Claude Code começa a gerar código, o Standboy expande o emulador para que possa jogar sem sair do IDE; quando a geração termina, pausa e recolhe o painel.
  • Evitar “mudança de separador” durante execuções longas do agente: Em vez de mudar para outras aplicações (chat, fóruns, mensagens), o emulador oferece uma pausa dentro do editor com um limite de pausa rígido quando o agente está ativo/terminado.
  • Retomar o mesmo jogo após reinício: Depois de carregar uma ROM uma vez, o Standboy retoma automaticamente a última ROM reproduzida no próximo lançamento do VS Code, restaurando os dados de save.
  • Construir uma biblioteca de ROMs com títulos/capas consistentes: Ficheiros ROM com nomes diferentes no disco aparecem com títulos canónicos e arte de capa ao corresponder hashes SHA-1 à base de dados No-Intro incluída.
  • Testar diferentes layouts de entrada: Os utilizadores podem reconfigurar os controlos a partir do menu do painel para se adaptarem ao seu teclado ou preferências.

FAQ

  • O Standboy inclui jogos ou fornece fontes de ROM? Não. O Standboy carrega apenas ROMs fornecidas pelo usuário e não inclui jogos embutidos nem links para fontes de ROM.

  • Posso usar offline? O emulador e o banco de dados No-Intro vêm integrados e funcionam offline. As únicas chamadas de rede descritas são buscas pontuais de capas em libretro-thumbnails, realizadas pelo host da extensão e armazenadas localmente.

  • Como o Standboy decide quando mostrar ou ocultar o emulador? O Standboy ativa apenas quando detecta atividade do agente por alguns segundos (exibição automática) e oculta após um período similar de inatividade (ocultação automática). O comportamento evita oscilações em turnos muito curtos do agente.

  • Quais integrações de agentes são suportadas? A extensão se conecta ao Cursor e ao Claude Code usando suas APIs oficiais de ciclo de vida, com um botão de alternância no menu do painel. Para outros agentes, pode usar uma heurística baseada em rajadas de edição quando não há suporte específico.

  • O emulador retoma de onde parei? Sim. O Standboy retoma no meio do quadro quando o painel é reaberto, e o webview é mantido quando oculto para pausar no mesmo ponto e continuar do mesmo estado.

Alternativas

  • Emuladores de Game Boy de uso geral (desktop/mobile independentes): Focam no gameplay, mas não se integram aos ciclos de vida dos agentes do VS Code para pausar/exibir automaticamente.
  • Outros painéis laterais de mídia/notificações no VS Code: Extensões que exibem indicadores de atividade ou dashboards simples ajudam a gerenciar o foco, mas normalmente não oferecem um emulador que retoma no meio do quadro e preserva os saves.
  • Agendadores de tarefas ou temporizadores de foco no IDE (estilo Pomodoro): Podem reduzir o “tempo de espera” de forma estruturada, mas não fornecem um emulador dentro do IDE com identificação de ROM e persistência de saves.
  • Integrações de emuladores em webviews sem ganchos de agente: Oferecem fluxo de trabalho semelhante (jogar dentro do editor), mas sem a exibição/ocultação baseada no ciclo de vida e o retorno ao meio do quadro vinculados à atividade do agente de IA.