Estrutura do repositório
chakra-studio/
├── projetos/ um vídeo por pasta
│ └── <slug>/
│ ├── briefing.md ENTRADA o pedido
│ ├── video.json ENTRADA parâmetros
│ ├── referencias/ ENTRADA videos/ · imagens/ · conteudo/
│ ├── narracao.txt o texto falado
│ ├── roteiro.json as cenas e a palavra em que cada uma começa
│ ├── compositions/ uma cena por arquivo (HTML + GSAP)
│ ├── assets/ marca, fontes, sons e biblioteca do estilo
│ ├── dados/ dados usados nas cenas
│ ├── saida/ MP4 e folhas de quadros (fora do git)
│ ├── README.md GERADO documentação do vídeo
│ └── NOTAS.md opcional, entra no README
├── studio/ o motor
│ ├── padrao.json parâmetros padrão
│ ├── nucleo/chakra.js biblioteca comum: cenas, tempo pela voz, diagramas, legenda
│ ├── estilos/terminal/ estilo padrão: visual, sons, música, cenas-base e catálogo
│ ├── estilos/classico/ estilo ouro e serifas
│ ├── modelo/ esqueleto da pasta de entrada
│ └── scripts/ novo · tts · som · montar · render · conferir · documentar · publicar
├── skill/ a skill do agente (instruções e referências)
├── site/ studio.chakra.gold (Next.js)
├── infra/vps/ deploy do site no VPS
├── docs/ esta documentação (também publicada no site)
└── _experimentos/ histórico da fase que originou o projeto
Os scripts
| Script | O que faz | Gasta créditos? |
|---|---|---|
novo.mjs <slug> [--estilo] | Cria a pasta do vídeo com a entrada e o estilo. | não |
tts.mjs <projeto> | Narração no ElevenLabs com o segundo de cada palavra. | sim (voz) |
som.mjs musica|efeito ... | Gera música ou efeito novo. Só quando o vídeo pede. | sim |
montar.mjs <projeto> [formato] | Calcula os tempos e escreve o arquivo de entrada do HyperFrames. | não |
render.mjs <projeto> [formatos] | Monta, renderiza cada formato, confere e documenta. | não |
conferir.mjs <video.mp4> | Folha de quadros e medição de volume de um MP4. | não |
documentar.mjs <projeto> | Reescreve o README.md do vídeo. | não |
publicar.mjs [slug] | Copia os vídeos e a documentação para o site. | não |
github-stats.mjs <projeto> | Dados de commits para cenas de números. | não |
Como o tempo funciona
A voz manda. O tts.mjs devolve o segundo exato de cada palavra; o roteiro diz em que palavra cada
cena começa; dentro da cena, cada elemento entra na palavra dele. Trocar uma frase ou regravar a voz não
exige ajustar nenhum número: basta montar de novo.
Requisitos
Node 22 ou mais novo, ffmpeg, Google Chrome e as variáveis ELEVENLABS_* em ~/dev/chakra/.env. O
HyperFrames é baixado pelo npx na versão fixada (0.8.124).
O que entra no git
Código, cenas, roteiros, narrações, sons e fontes entram. Vídeo e áudio pesados (*.mp4, *.wav, a
pasta saida/) ficam fora: são regerados pelo render.mjs ou publicados no site pelo deploy.