Communitygithub.com

karmazin/simreel

Transforme uma gravação real do simulador iOS do aplicativo do usuário em um vídeo de lançamento 9:16 e um vídeo de pré-visualização para a App Store. Use quando o usuário solicitar um vídeo de lançamento, vídeo promocional, vídeo de demonstração ou pré-visualização para a App Store do seu aplicativo iOS.

O que é simreel?

O SimReel é uma habilidade especializada para agentes de IA, projetada para converter gravações reais da execução de um aplicativo iOS no Simulador da Apple em dois formatos de vídeo prontos para distribuição: um vídeo de lançamento 9:16 (reel-1080x1920.mp4) para plataformas como X, Reels, TikTok e Product Hunt, e um vídeo de pré-visualização para a App Store (appstore-preview-886x1920.mp4) formatado para upload direto no App Store Connect. Tudo é processado localmente usando apenas Xcode, ffmpeg e Python, sem necessidade de contas ou APIs pagas. A habilidade orienta o agente por um fluxo de trabalho completo: encontrar o simulador correto, preparar demonstrações, gravar uma única captura, analisar quadros com um gerador de contact sheet, definir um storyboard JSON com cenas, legendas e um cartão final, e renderizar os vídeos finais. O agente também deve seguir regras rigorosas de privacidade e precisão, como nunca mostrar dados pessoais, não usar o simulador 'booted' quando houver mais de um em execução, e garantir que apenas o que o aplicativo realmente faz seja exibido, com legendas descritivas e sem alegações falsas. Esta habilidade é suportada em qualquer plataforma que possa executar comandos shell e Python em macOS, e é ideal para desenvolvedores iOS que precisam criar materiais de marketing ou demonstrações de seus aplicativos de forma rápida, local e confiável. O resultado são dois arquivos prontos para serem postados ou enviados, com configurações de vídeo que seguem as especificações oficiais da App Store para pré-visualizações.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/karmazin/simreel/tree/HEAD/skills/simreel

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que simreel faz?

Grave o aplicativo real do usuário no Simulador iOS e transforme em dois arquivos:

  • reel-1080x1920.mp4: a gravação dentro de um corpo de telefone com gradiente, uma legenda por cena, e um cartão final. Para X, Reels, TikTok, Product Hunt.
  • appstore-preview-886x1920.mp4: a gravação simples, dimensionada e codificada para App Store Connect.

Tudo roda localmente com Xcode e ffmpeg. Sem contas, sem APIs pagas.

Regras

  • Mostre apenas o que o aplicativo realmente faz. As legendas descrevem o que está na tela; nunca adicione afirmações, números ou avaliações que a filmagem não mostra.
  • Mantenha dados privados fora do quadro. Use um simulador novo ou dados de demonstração, e examine os quadros antes de entregar.
  • Toque apenas no simulador que foi instruído a usar. Outros simuladores inicializados podem pertencer ao trabalho de outra pessoa; nunca passe booted quando mais de um estiver em execução.
  • Recuse solicitações de rastreamento e cookies durante a gravação, a menos que o usuário diga o contrário.

Passos

  1. Encontre o simulador. xcrun simctl list devices booted. Se o aplicativo não estiver instalado, compile e instale com as próprias ferramentas do usuário.
  2. Percorra o aplicativo uma vez sem gravar. Escolha de 3 a 5 momentos que mostrem os principais recursos. Limpe diálogos de integração, permissão e cookies agora para que não apareçam na captura.
  3. Grave uma única captura.
    scripts/record.sh start work/raw.mp4 <UDID>
    # dirija o aplicativo: sua ferramenta de simulador, um XCUITest no projeto, ou peça ao usuário para tocar
    scripts/record.sh stop <UDID>
    
    Pause cerca de um segundo em cada tela que deseja manter. Se toques falharem logo após o simulador inicializar, aguarde 20 segundos e tente novamente.
  4. Leia a captura. O arquivo termina na última mudança de tela; portanto, uma tela final estática é cortada e uma captura de uma tela que nunca muda é quase vazia. Cronometre as cenas a partir do arquivo, não da memória.
    python3 scripts/compose.py frames work/raw.mp4 work
    
    Abra work/contact-sheet.png: 8 quadros por linha, quadro N é o segundo N.
  5. Escreva storyboard.json.
    {
      "app_name": "MyApp",
      "background": ["#0B1020", "#3B2AA8"],
      "scenes": [
        {"start": 0.3, "end": 5.8, "caption": "O que esta tela faz"},
        {"start": 8.0, "end": 10.0, "speed": 0.8, "caption": "Próximo passo"}
      ],
      "end_card": {"title": "MyApp", "subtitle": "A própria tagline do aplicativo"}
    }
    
    start/end são segundos na gravação. speed abaixo de 1 desacelera uma cena, acima de 1 acelera. hold congela o último quadro da cena por esse número de segundos, o que é útil para permanecer em uma tela de resultado. background aceita uma cor ou um gradiente de cima para baixo; text_color e caption_size são opcionais. Remova end_card para terminar na última cena. Corte spinners de carregamento. As cenas devem totalizar de 15 a 30 segundos, caso contrário, a App Store Connect rejeitará a pré-visualização.
  6. Renderize.
    python3 scripts/compose.py render work/raw.mp4 storyboard.json out
    
    Ele imprime out/report.json e avisa quando a duração da pré-visualização está fora do intervalo.
  7. Verifique antes de entregar. Extraia um quadro de cada cena (ffmpeg -ss <t> -i out/reel-1080x1920.mp4 -frames:v 1 f.png) e examine: a legenda corresponde à tela, nada privado, nada cortado.

Notas

  • Requisitos: macOS, Xcode (para simctl e swift), ffmpeg, python3.
  • record.sh define a barra de status para 9:41 com bateria cheia e sinal. Limpe depois com xcrun simctl status_bar <UDID> clear.
  • Os números de pré-visualização da App Store usados aqui (886x1920, 15-30 s, 30 fps, H.264 High 4.0, AAC estéreo) vêm das especificações de pré-visualização do aplicativo da Apple. Verifique essa página se um upload for rejeitado.
  • A trilha de áudio é silenciosa. Adicione música ou voz em um editor se quiser som.

Habilidades Relacionadas