Communitygithub.com

viraloop

Habilidade do agente OpenClaw para crescimento automatizado de carrosséis no TikTok e Instagram. Analisa qualquer URL de site para extrair marca, concorrentes e proposta de valor, gera slides virais com publicação automática e música em tendência via API upload-post. Loop de feedback analítico integrado.

O que é viraloop?

O Viraloop é um skill para agente de IA OpenClaw que automatiza completamente o crescimento de carrosséis no TikTok e Instagram. Ele analisa qualquer URL de site fornecida, extraindo informações como marca, concorrentes, proposta de valor e estilo visual. Em seguida, gera 6 slides visualmente coerentes (usando o modelo Gemini 3.1 Flash, com suporte a imagem-para-imagem para consistência entre os slides) e os publica diretamente no feed do usuário, sem rascunhos, com música em tendência adicionada automaticamente. O skill foi projetado para ser executado diariamente de forma autônoma, seguindo um pipeline completo: pesquisa de negócios, geração de slides com base em análises de posts anteriores, revisão automática com visão computacional para corrigir problemas, publicação via API upload-post (ambas as APIs Gemini e upload-post têm planos gratuitos, sem necessidade de cartão de crédito) e, por fim, análise de desempenho com aprendizado cumulativo. O ponto central é um loop de feedback que atualiza um arquivo learnings.json com insights sobre os melhores hooks, horários e estilos visuais, refinando a estratégia a cada post. Isso significa que o carrossel #30 será significativamente melhor que o #1, pois o agente aprende continuamente com os dados de engajamento. O skill suporta TikTok e Instagram, e requer apenas três variáveis de ambiente para configurar: GEMINI_API_KEY, UPLOADPOST_TOKEN e UPLOADPOST_USER.

Funciona com✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/dvcrn/openclaw-skills-marketplace/tree/main/plugins/mutonby--viraloop/skills/viraloop

Perguntar na sua IA favorita

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

Documentação

O que viraloop faz?

Analise qualquer site e gere um carrossel de 6 slides para TikTok/Instagram com coerência visual. Publica diretamente no seu feed (sem rascunhos) com música em alta automática. Ambas as APIs (Gemini + upload-post.com) têm planos gratuitos — não é necessário cartão de crédito para começar.

Filosofia: Loop Automático Diário

A chave para o crescimento é consistência + aprendizado. Esta skill foi projetada para ser executada todos os dias, de forma totalmente autônoma. O agente executa todo o pipeline sem pedir confirmação — desde a pesquisa até a publicação — e só notifica você no final com as URLs do TikTok e Instagram publicados.

  1. Poste 1 carrossel por dia - Consistência vence a viralidade
  2. Acompanhe tudo - Cada post gera dados
  3. Aprenda com os dados - Quais ganchos funcionam? Quais horários? Quais visuais?
  4. Itere e melhore - Cada carrossel é melhor que o anterior
Dia 1: Postar → Analisar → Aprender
Dia 2: Postar (melhorado) → Analisar → Aprender  
Dia 3: Postar (melhor) → Analisar → Aprender
...
Dia 30: Você tem 30 pontos de dados e uma estratégia refinada

A skill mantém um learnings.json que acumula insights de todos os posts:

  • Melhores ganchos com desempenho
  • Horários ideais de postagem
  • Estilos visuais que funcionam
  • CTAs que convertem

Esta não é uma ferramenta de uso único. É um motor de crescimento.

Antes de Começar: Aquecimento da Conta

Se suas contas do TikTok ou Instagram são novas, não poste carrosséis no primeiro dia. Ambas as plataformas limitam o alcance de contas novas que começam a publicar conteúdo imediatamente.

TikTok (aquecimento de 7 a 14 dias)

  • Passe de 30 a 60 minutos por dia usando o TikTok normalmente: role, curta (cerca de 1 em cada 10 vídeos), siga contas do seu nicho
  • Espere até que sua página 'Para Você' seja dominada por conteúdo do seu nicho — isso significa que o algoritmo perfilou sua conta
  • Só então comece a postar. Seus primeiros posts alcançarão o público certo em vez de serem enterrados

Instagram (aquecimento de 5 a 7 dias)

  • Navegue pelos Reels e pela página Explorar diariamente, interaja com conteúdo do seu nicho
  • Siga contas relevantes, curta e comente genuinamente
  • Poste 2 a 3 stories antes do seu primeiro carrossel para sinalizar que a conta está ativa

Por que isso é importante

As plataformas sinalizam contas que passam de zero atividade para postagem automatizada. Uma conta aquecida tem 5 a 10 vezes mais alcance inicial do que uma fria. Esta etapa é chata, mas é a diferença entre 500 visualizações e 50.000 visualizações no seu primeiro carrossel.

Se suas contas já estão ativas e estabelecidas, pule esta etapa e vá direto para o Início Rápido.

Início Rápido

O agente deve executar o pipeline completo automaticamente. Não peça confirmação entre as etapas.

# 0. PRIMEIRO: Verifique análises de posts anteriores + aprenda
#    (Pule isso apenas na primeira execução, quando ainda não houver posts)
UPLOADPOST_TOKEN="seu-token" bash {baseDir}/scripts/check-analytics.sh 7
node {baseDir}/scripts/learn-from-analytics.js

# 1. Pesquisa completa de negócios
node {baseDir}/scripts/analyze-web.js https://seu-site.com

# 2. Leia learnings.json e use os melhores ganchos/horários/estilos para este carrossel
#    → Escolha um estilo de gancho de bestHooks (ou tente uma variação)
#    → Use o horário de postagem recomendado
#    → Aplique quaisquer insights das recomendações

# 3. Gere slides com coerência visual
GEMINI_API_KEY="sua-chave" bash {baseDir}/scripts/generate-slides.sh

# 4. Revise slides com visão → corrija automaticamente os quebrados
#    O agente usa seu modelo de imagem para texto para verificar cada slide
#    Se algum slide tiver problemas (texto cortado, má qualidade, ortografia errada):
#      → Regere SOMENTE aquele slide automaticamente
#      → Re-verifique até que todos os 6 slides passem

# 5. Publique no TikTok + Instagram
UPLOADPOST_TOKEN="seu-token" bash {baseDir}/scripts/publish-carousel.sh

O agente só notifica o usuário no final, com as URLs dos posts publicados no TikTok e Instagram. Todo o resto é executado de forma autônoma.

Como os Aprendizados Melhoram Cada Carrossel

O arquivo learnings.json fica mais inteligente a cada post. Antes de gerar os slides, o agente o lê e aplica:

  • Melhores ganchos: Use estilos de gancho que tiveram mais visualizações. Tente variações dos vencedores.
  • Melhores horários: Agende a publicação no horário que historicamente obtém mais alcance.
  • Melhores dias: Prefira dias que tenham melhor desempenho.
  • Baixo desempenho: Evite estilos de gancho que consistentemente têm desempenho inferior.
  • Dicas de engajamento: Se o engajamento estiver baixo, use ganchos mais provocativos ou estilos visuais diferentes.

Isso significa que o carrossel nº 30 terá prompts dramaticamente melhores do que o carrossel nº 1.

Agenda de Execução do Agente: O agente não deve ser executado em um horário aleatório. Ele deve ler learnings.json, olhar para o array bestTimes e ajustar automaticamente seu próprio cron/agenda de automação para que a execução de amanhã ocorra exatamente no horário de publicação ideal.

Primeiras execuções (sem dados ainda): Nas primeiras vezes, não haverá dados de análise — tudo bem. O agente usa os ganchos padrão de analyze-web.js e as recomendações genéricas. Após 5 a 10 posts, learnings.json terá dados suficientes para começar a fazer recomendações significativas. Quanto mais você postar, mais inteligente ele fica.

Modelo de Imagem

Usa gemini-3.1-flash-image-preview para gerar slides.

  • Script local: {baseDir}/scripts/generate_image.py
  • Suporta imagem para imagem para coerência visual entre os slides

Etapa 1: Pesquisa Completa (analyze-web.js)

Realiza uma investigação COMPLETA do negócio:

1. Análise de Marca

  • Nome da marca (do domínio ou título)
  • Logotipo (URL ou SVG)
  • Cores CSS (fundo, primária, links, títulos)
  • Tipografia (fonte do corpo, fonte do título)
  • Favicon

2. Análise de Conteúdo

  • Manchete e slogan
  • Todos os títulos (estrutura da página)
  • Recursos/benefícios (título + descrição)
  • Preços/planos
  • Depoimentos
  • Estatísticas/métricas
  • CTAs
  • Meta tags (título, descrição, og:image)

3. Páginas Internas

  • Navega por preços, recursos, sobre, depoimentos
  • Extrai conteúdo adicional de cada página

4. Detecção de Concorrentes

  • Pesquisa por menções conhecidas de concorrentes no conteúdo
  • Lista de 20+ concorrentes SaaS conhecidos (Buffer, Hootsuite, Later, etc.)
  • Detecta seções "vs", "alternativa", "compare"
  • Nenhuma pesquisa externa necessária - tudo a partir do próprio site

5. Contação de Histórias

  • Detecta o tipo de negócio (SaaS, ecommerce, aplicativo)
  • Detecta o nicho (social-media-tools, developer-tools, etc.)
  • Gera ganchos com base nos pontos problemáticos do cliente
  • Define pontos problemáticos a partir dos recursos
  • Cria narrativa de transformação (antes → depois)

6. Contexto Visual

  • Cores da marca em formato CSS
  • Descrição das cores para prompts
  • Tipografia para slides
  • Temas de imagem com base no nicho
  • Guia de estilo para coerência

Saída: /tmp/carousel/analysis.json

Etapa 2: Gerar Slides (generate-slides.sh)

Gera 6 slides com coerência visual usando imagem para imagem:

SlideTipoConteúdo
1GANCHOPergunta/problema que fisga. Estabelece TODO o estilo visual.
2ProblemaAgita a dor. "Você publica no TikTok... depois no Instagram..."
3AgitaçãoConcorrência avançando. Urgência.
4SoluçãoApresenta o produto com sua proposta de valor.
5RecursoBenefício principal.
6CTA"Link na bio 👆" + chamada para ação.

Coerência Visual

  • O Slide 1 gera o estilo base (cores, tipografia, clima)
  • Os Slides 2 a 6 usam imagem para imagem com o slide 1 como referência
  • Mantém a mesma paleta de cores, fontes e estética

Prompts por Slide

Cada slide tem:

  • Texto: A mensagem principal
  • Cena: Descrição visual detalhada para o fundo
  • Estilo: Baseado na análise da marca

Saída:

  • /tmp/carousel/slide-{1-6}.jpg
  • /tmp/carousel/caption.txt

Etapa 3: Revisão com Visão (Autônoma)

Após gerar, o agente DEVE revisar cada slide usando seu modelo de visão/texto para imagem. Esta etapa é totalmente automática — não peça ao usuário para revisar.

Para cada slide, verifique:

  • ✓ O texto está totalmente legível e correto
  • ✓ Nenhuma palavra cortada nas bordas
  • ✓ Nome do produto escrito corretamente
  • ✓ Coerência visual entre todos os slides
  • ✓ Nenhum texto nos 20% inferiores (área de controles do TikTok)
  • ✓ Qualidade de imagem aceitável (não borrada ou distorcida)

Se algum slide falhar: Regere SOMENTE aquele slide específico automaticamente. Use a mesma imagem de entrada que foi usada quando foi gerado originalmente:

  • Slide 1: nenhuma imagem de entrada (ele estabelece o estilo)
  • Slides 2 a 6: sempre use slide-1.jpg como --input-image (a referência original)

Re-verifique após regenerar. Repita até que todos os 6 slides passem. Não pergunte ao usuário — corrija automaticamente.

Formato da Imagem

  • Resolução: 768x1376 (proporção vertical 9:16)
  • Formato: JPG (o TikTok NÃO aceita PNG)
  • Texto: Grande, em negrito, com sombra para legibilidade
  • Fundo: Cena relevante para o negócio, não apenas cores sólidas

Etapa 4: Publicar no TikTok + Instagram (publish-carousel.sh)

Publica o carrossel diretamente no feed do TikTok e Instagram usando a API Upload-Post.

UPLOADPOST_TOKEN="seu-token" bash {baseDir}/scripts/publish-carousel.sh

Endpoint: POST /api/upload_photos

Parâmetros enviados:

  • platform[]=tiktok + platform[]=instagram
  • auto_add_music=true - Adiciona música no TikTok automaticamente
  • tiktok_title - Título curto (máx. 90 caracteres) + hashtags
  • title - Legenda completa para o Instagram
  • privacy_level=PUBLIC_TO_EVERYONE
  • media_type=IMAGE - Carrossel de fotos no Instagram
  • async_upload=true - Processar em segundo plano
  • photos[] - Os 6 slides JPG

⚠️ IMPORTANTE Instagram: Após a publicação, o usuário deve ir ao Instagram e adicionar música viral manualmente:

  1. Abra o Instagram → Perfil → O post
  2. Editar → Adicionar música
  3. Pesquise por uma música em alta/viral

Saída: Salva request_id em post-info.json para rastreamento.

Etapa 5: Analisar Desempenho (check-analytics.sh)

Obtém análises do TikTok e Instagram para ver o que funciona.

UPLOADPOST_TOKEN="seu-token" bash {baseDir}/scripts/check-analytics.sh 7

Endpoints usados:

  1. Análises do perfil:

    GET /api/analytics/{user}?platforms=tiktok
    

    → Seguidores, curtidas, comentários, compartilhamentos, impressões

  2. Impressões totais:

    GET /api/uploadposts/total-impressions/{user}?platform=tiktok&breakdown=true
    

    → Total de visualizações por dia

  3. Análises por post:

    GET /api/uploadposts/post-analytics/{request_id}
    

    → Visualizações, curtidas, comentários para o carrossel específico (TikTok + Instagram)

Documentação: https://docs.upload-post.com/api/get-analytics

Etapa 6: Aprender e Melhorar (learn-from-analytics.js)

Analisa dados e salva aprendizados para carrosséis futuros. Isso deve ser executado no INÍCIO de cada loop diário, não apenas no final.

node {baseDir}/scripts/learn-from-analytics.js

Gera/atualiza:

  • learnings.json - Base de conhecimento acumulada
  • Melhores ganchos (aqueles que geram mais visualizações)
  • Horários e dias ideais de postagem
  • Acompanhamento da taxa de engajamento
  • Recomendações para o próximo carrossel

O agente deve ler learnings.json antes de gerar cada novo carrossel e usar os insights para escolher melhores ganchos, evitar estilos de baixo desempenho e agendar em horários ideais.

Loop Diário (Fluxo Completo)

Esta é a sequência exata que o agente executa todos os dias, de forma totalmente autônoma:

# ETAPA 0: Aprenda com posts anteriores (pule na primeira execução)
UPLOADPOST_TOKEN="..." UPLOADPOST_USER="meuusuario" bash {baseDir}/scripts/check-analytics.sh 7
node {baseDir}/scripts/learn-from-analytics.js
# → O agente lê learnings.json e escolhe o melhor estilo de gancho
# → CRÍTICO: O agente verifica bestTimes e agenda SUA PRÓXIMA EXECUÇÃO para aquela hora exata amanhã

# ETAPA 1: Pesquise o negócio
node {baseDir}/scripts/analyze-web.js https://meu-produto.com

# ETAPA 2: Gere slides (usando insights dos aprendizados)
GEMINI_API_KEY="..." bash {baseDir}/scripts/generate-slides.sh

# ETAPA 3: Revise com visão → corrija automaticamente slides quebrados
# O agente verifica cada slide, regenera qualquer um que falhe

# ETAPA 4: Publique
UPLOADPOST_TOKEN="..." UPLOADPOST_USER="meuusuario" bash {baseDir}/scripts/publish-carousel.sh

# → Notifique o usuário SOMENTE aqui, com as URLs do TikTok + Instagram

Arquivos

{baseDir}/
├── SKILL.md                      # Esta documentação
└── scripts/
    ├── analyze-web.js            # Pesquisa completa de negócios
    ├── generate-slides.sh        # Gere 6 slides com coerência
    ├── generate_image.py         # Imagem flash Gemini 3.1
    ├── review-slides.js          # Prepare slides para revisão
    ├── publish-carousel.sh       # Publique via API Upload-Post
    ├── check-analytics.sh        # Obtenha análises (TikTok + Instagram)
    ├── learn-from-analytics.js   # Aprenda com os dados
    └── search-competitors.js     # Pesquisa externa opcional

Variáveis de Ambiente

VariávelDescrição
GEMINI_API_KEYChave da API Google para geração de imagens
UPLOADPOST_TOKENToken Upload-Post para publicação e análises
UPLOADPOST_USERNome de usuário Upload-Post (obrigatório)

Exemplos de Ganchos por Nicho

NichoExemplo de Gancho
Ferramentas de Mídias Sociais"Ainda postando nas redes sociais UMA POR UMA? 😩"
SaaS Geral"Ainda fazendo isso MANUALMENTE?"
Ecommerce"O produto que o TikTok não para de recomendar"
Aplicativo"O aplicativo que queria ter descoberto antes"
Ferramentas para Desenvolvedores"A API que vai mudar seu código"

Por que Viraloop?

ViraloopOutras skills
PublicaçãoDireto para o feedApenas rascunhos
MúsicaMúsica em alta automáticaManual
PlataformasTikTok + InstagramPlataforma única
PesquisaAnálise automática de URLDescrição manual
Coerência de imagemReferência imagem para imagemSlides independentes
Geração de imagemGemini (nível gratuito)Provedores pagos
Postagemupload-post.com (gratuito, sem CC)Pago ou auto-hospedado
Sobreposição de textoNativo de IA (Gemini renderiza)Scripts externos
PromptsModelos estruturadosForma livre
Configuração3 variáveis de ambienteConfiguração complexa com várias ferramentas

Notas

  • A análise extrai concorrentes do próprio conteúdo do site (20+ SaaS conhecidos)
  • Imagem para imagem mantém a coerência, mas leva cerca de 20s

…

[truncado para tradução]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas