Communitygithub.com

effects-skill

Aplica um de 36 efeitos de vídeo (neon text atrás da cabeça, capa de revista, reels orbitando a pessoa, glass widgets, render checklist, tier list, glitch…) a um clipe vertical de câmera facial e renderiza em 4K com Remotion. Use quando o usuário digitar /effects, anexar uma selfie/vídeo de câmera e pedir um efeito, uma edição, um "efeito reel", ou quiser ver a lista de efeitos.

O que é effects-skill?

Este skill de agente AI aplica efeitos visuais dinâmicos a clipes de vídeo verticais (selfies ou câmera facial). É útil para criadores de conteúdo, editores de vídeo e usuários que desejam transformar rapidamente um vídeo simples em uma peça estilizada com 36 opções de efeitos (como texto neon, revista, orbit, etc.), tudo renderizado em 4K usando Remotion. O skill é compatível com agentes como Claude Code, Cursor, e Codex, e opera a partir de um diretório local (~/.claude/skills/effects). Ele primeiro verifica a instalação, coleta o clipe, o efeito escolhido e o perfil do usuário, depois executa a renderização com opções de personalização (como cor, duração, qualidade). O processo é mostrado em uma checklist e o resultado final é um arquivo MP4 4K.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Dryxio/effects-skill/tree/main

Perguntar na sua IA favorita

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

Documentação

/effects

Argumentos : $ARGUMENTS

Tudo é executado a partir da pasta deste skill (a pasta que contém este arquivo, geralmente ~/.claude/skills/effects). Chame-a de SKILL_DIR. Responda ao usuário no idioma dele (português por padrão).

1. Verifique se está instalado

Execute node SKILL_DIR/scripts/effects.mjs doctor. Se algo mostrar ✗, informe ao usuário que é uma instalação única (3–10 min, baixa ~1–2 GB) e execute bash SKILL_DIR/setup.sh em segundo plano, depois execute doctor novamente. Se doctor informar que não há placa gráfica, avise que os efeitos marcados com ✂ serão lentos (~15 s por imagem) e sugira --seconds 5 ou --fast.

2. Reúna o que precisa

  • O clipe: o vídeo que o usuário anexou ou nomeou (câmera facial 9:16 vertical funciona melhor; qualquer formato é cortado para 1080×1920). Se não houver, peça. Nunca invente um caminho.
  • O efeito: o primeiro argumento. Se estiver faltando ou for desconhecido, execute node SKILL_DIR/scripts/effects.mjs list, mostre a lista e pergunte qual. "all" / "toutes" / "aperçu" → execute o comando sheet (passo 4).
  • O perfil dele(a): se SKILL_DIR/profile.json não existir, pergunte uma vez pelo primeiro nome ou marca e pelo @, depois escreva: {"name": "João", "handle": "@joao", "accent": "#ff2d87"} (accent opcional). Reutilize-o sempre depois disso.
  • Textos: use as palavras do usuário se ele deu alguma, caso contrário os padrões estão bons. Qual opção cada efeito lê está na tabela abaixo.

3. Renderize, mostrando a checklist

Crie uma lista de tarefas com estes 5 passos e marque-os conforme o script imprime suas linhas ✓ n/5:

  1. Rosto encontrado
  2. Recortado do fundo
  3. Texto colocado atrás de você
  4. Cores calibradas
  5. Renderizado em 4K
node SKILL_DIR/scripts/effects.mjs render <efeito> "<clipe>" [opções]

Execute-o em segundo plano quando for longo (efeitos marcados ✂ precisam de ~1 s por imagem com placa gráfica, então ~2–3 min para 10 s de vídeo) e repasse as linhas de progresso. A saída é gerada ao lado do clipe como <clipe>-<efeito>.mp4 (2160×3840). Forneça esse caminho ao usuário.

Opções úteis:

OpçãoEfeito
--hd1080p em vez de 4K, duas vezes mais rápido
--start 3 --seconds 8manter apenas uma seção do clipe
--smoothrecorte a 30 fps em vez de 15 (duas vezes mais longo, mais suave em movimentos rápidos)
--fastrecorte rápido, mas mais grosseiro (pedaços do fundo ao redor do cabelo)
--images <pasta>capturas de tela dos reels deles para orbit, phone-fan, profile-wall, tier-list
--grade warm|cool|bw|nonegradação de cor (warm por padrão)
--accent "#00c2ff"cor principal
--props '{"notes":["…"]}'qualquer outra propriedade (JSON)

Antes de uma renderização ✂ longa, se os textos do usuário forem longos ou incomuns, execute uma prévia primeiro (~30 s) e dê uma olhada:

node SKILL_DIR/scripts/effects.mjs still <efeito> "<clipe>" [mesmas opções]

4. Veja todos os 36 no clipe deles

node SKILL_DIR/scripts/effects.mjs sheet "<clipe>" [--name … --handle …]

Ele gera <clipe>-36-effets.jpg (um quadro de cada efeito). Mostre ao usuário para que ele possa escolher.

Textos que cada efeito lê

Use *estrelas* ao redor de uma palavra em --headline ou --title para colori-la. \n para uma quebra de linha.

EfeitoOpções que lê (padrões entre colchetes)
glass-widgets--name --handle --followers [71K], --props '{"chart":{"values":[…],"labels":[…],"unit":"K"}}'
documentary ✂--headline ["UM *CLIPE.*\n36 EFEITOS.\n*ZERO* APP."] --name --handle --kicker --word (texto fantasma)
orbit ✂--images
kallaway-split--props '{"chart":{"title":"Meus 7 melhores reels\npor *visualizações*","values":[615,353,…],"labels":["Reel 1",…],"unit":"K"}}'
spotlight ✂--word [CLAUDIT] (uma palavra curta funciona melhor)
checklist--props '{"steps":[["Rosto encontrado","cada frame"],…]}' (5 pares)
timeline--title ["Claudio *edita*"] --headline (chips)
lineup--title
shortcut-rainnenhum
red-collage ✂--headline --word (texto de fundo)
comment-box--comment ["claudio 🔥"] --handle
cover-star ✂--name (título gigante) --headline --handle
headline-wall--props '{"notes":["…","…","…","…"]}'
phone-fan--word [MEUS REELS] --handle --images
rabbit-holenenhum
profile-wall--handle --name --followers --images
noisenenhum
the-bill--name --handle
split-headline--title ["Claudio *edita* meus reels."] (a palavra com estrelas fica destacada)
pastel-word ✂--word [REELS]
tier-list--title --images
polaroid--title (legenda, padrão é o nome)
filmstripnenhum
comic-book--word [BOUM]
glitch--word [GLITCH]
duotone--word [FOCO] --accent
scanline--title
cinema--kicker [Capítulo I] --title (subtítulo)
breaking-news--headline --word --name --handle
quote-card--title (a citação) --name --handle
countdown--accent
progress-ring--word [assistido] --handle
emoji-burstnenhum
neon-frame--word [ao vivo] --accent
typewriter--title ou --headline
zoom-punch--title (uma palavra por golpe)

Se algo falhar

  • clipe introuvable: verifique o caminho, coloque entre aspas se tiver espaços.
  • As fontes vêm do Google Fonts e o Remotion baixa um Chrome headless na primeira renderização: ambos precisam de internet.
  • Um efeito ✂ com uma pessoa pouco visível ou várias pessoas: o recorte mantém todos que vê como pessoa. Informe isso ao usuário.
  • Os arquivos preparados são armazenados em cache em SKILL_DIR/.work/ (uma pasta por clipe). Pode ser excluído a qualquer momento para liberar espaço.

Habilidades Relacionadas