Repolode
charmbracelet

charmbracelet/vhs

Uma CLI em Go que grava sessões de terminal em GIFs, vídeos ou saída ASCII a partir de arquivos .tape com scripts, para demonstrações e testes de integração.

Estrelas
21,270
Forks
493
Issues abertas
177
Último commit
ontem

O que é?

O VHS trata gravações de terminal como código. Você escreve um arquivo .tape com uma lista de comandos, como Type, Enter, Sleep e Wait, e o VHS os executa novamente em um terminal virtual, renderizando o resultado como GIF, MP4, WebM, sequência de PNGs ou arquivo de referência em texto/ASCII. As configurações incluem família e tamanho da fonte, dimensões da janela ou quantidade de colunas e linhas, temas, preenchimento, margens, barras da janela e velocidade de reprodução.

Como a entrada é texto e a saída é determinística, você pode executar o mesmo tape novamente sempre que uma CLI mudar, mantendo as demonstrações atualizadas. As saídas em texto podem ser commitadas no git e comparadas com diff para servir como arquivos de referência em testes de integração. O VHS também inclui um subcomando record, que gera um tape a partir de uma sessão ao vivo, um comando publish para compartilhar GIFs e um modo opcional de servidor SSH para executar tapes em um host remoto.

O VHS depende de ttyd e ffmpeg instalados no PATH. Pode ser instalado pelo Homebrew, Scoop, Nix, Docker, Go e pacotes para Linux.

Recursos principais

  • 01Cria scripts de sessões de terminal com uma linguagem simples de comandos .tape.
  • 02Gera GIF, MP4, WebM, sequências de quadros PNG e arquivos de texto/ASCII.
  • 03Permite personalizar fonte, tamanho da janela, temas, preenchimento, margens e barras da janela.
  • 04Grava um arquivo tape a partir de uma sessão de terminal ao vivo.
  • 05Gera arquivos de referência em ASCII para comparação por diff em testes de integração.
  • 06Funciona como servidor SSH para executar tapes em um host remoto.

Casos de uso

  • Manter atualizados os GIFs de demonstração do README, regenerando-os na CI.
  • Testar uma CLI por meio da comparação da saída em texto com arquivos de referência.
  • Criar gravações de tela reproduzíveis de fluxos de trabalho no terminal para documentação ou tutoriais.

Início rápido

  1. 1

    Instale ttyd e ffmpeg, que o VHS precisa encontrar no PATH

  2. 2

    Instale o VHS com Homebrew no macOS ou Linux

    brew install vhs
  3. 3

    Crie um novo arquivo tape

    vhs new demo.tape
  4. 4

    Gere o GIF a partir do arquivo tape

    vhs demo.tape

Antes de usar

  • É necessário instalar ttyd e ffmpeg separadamente e disponibilizá-los no PATH.

Em coleções

Tópicos

Perguntas frequentes

O que é vhs?
Uma CLI em Go que grava sessões de terminal em GIFs, vídeos ou saída ASCII a partir de arquivos .tape com scripts, para demonstrações e testes de integração. O VHS trata gravações de terminal como código. Você escreve um arquivo .tape com uma lista de comandos, como Type, Enter, Sleep e Wait, e o VHS os executa novamente em um terminal virtual, renderizando o resultado como GIF, MP4, WebM, sequência de PNGs ou arquivo de referência em texto/ASCII. As configurações incluem família e tamanho da fonte, dimensões da janela ou quantidade de colunas e linhas, temas, preenchimento, margens, barras da janela e velocidade de reprodução.
vhs é gratuito? Qual é a licença?
vhs é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
vhs ainda é mantido?
Manutenção ativa. O último commit de vhs foi em 6 de nov. de 2026.
Para que posso usar vhs?
Manter atualizados os GIFs de demonstração do README, regenerando-os na CI. Testar uma CLI por meio da comparação da saída em texto com arquivos de referência. Criar gravações de tela reproduzíveis de fluxos de trabalho no terminal para documentação ou tutoriais.
Como instalar vhs?
Instale ttyd e ffmpeg, que o VHS precisa encontrar no PATH Instale o VHS com Homebrew no macOS ou Linux: brew install vhs Crie um novo arquivo tape: vhs new demo.tape Gere o GIF a partir do arquivo tape: vhs demo.tape
Onde consigo vhs?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/charmbracelet/vhs

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados