Repolode
charmbracelet

charmbracelet/vhs

Go CLI для записи сеансов терминала в GIF, видео или ASCII по сценариям в файлах .tape — для демонстраций и интеграционных тестов.

Звёзды
21,271
Форки
492
Открытые issues
177
Последний коммит
вчера

Что это?

VHS воспринимает записи терминала как код. Вы описываете команды в файле .tape — например, Type, Enter, Sleep и Wait. VHS воспроизводит их в виртуальном терминале и сохраняет результат в виде GIF, MP4, WebM, последовательности PNG или текстового/ASCII-файла для golden-тестов. Можно настроить семейство и размер шрифта, размеры окна или число столбцов и строк, темы, внутренние и внешние отступы, полосы окна и скорость воспроизведения.

Поскольку сценарий состоит из текстовых команд, его можно запускать повторно при каждом изменении CLI, чтобы демонстрации оставались актуальными. Текстовый вывод можно коммитить в git и сравнивать с ним результаты в интеграционных тестах. В VHS также есть подкоманда record для создания сценария из текущего сеанса, команда publish для публикации GIF и дополнительный режим SSH-сервера, позволяющий запускать сценарии на удалённом хосте.

Для работы VHS нужны установленные в PATH ttyd и ffmpeg. Установить его можно через Homebrew, Scoop, Nix, Docker, Go и пакеты для Linux.

Ключевые возможности

  • 01Записывает сценарии сеансов терминала с помощью простого командного языка .tape.
  • 02Сохраняет результат в GIF, MP4, WebM, видеопоследовательность PNG или текстовый/ASCII-файл.
  • 03Позволяет настроить шрифт, размер окна, темы, внутренние и внешние отступы и полосы окна.
  • 04Создаёт файл сценария по текущему сеансу терминала.
  • 05Создаёт ASCII-файлы для сравнения в интеграционных тестах.
  • 06Работает в режиме SSH-сервера, чтобы запускать сценарии на удалённом хосте.

Сценарии использования

  • Обновление демонстрационных GIF для README путём их пересоздания в CI.
  • Интеграционное тестирование CLI через сравнение текстового вывода с эталонными файлами.
  • Создание воспроизводимых записей рабочих процессов в терминале для документации и обучающих материалов.

Быстрый старт

  1. 1

    Установите ttyd и ffmpeg, которые VHS требует найти в PATH

  2. 2

    Установите VHS с помощью Homebrew в macOS или Linux

    brew install vhs
  3. 3

    Создайте новый файл tape

    vhs new demo.tape
  4. 4

    Создайте GIF из файла tape

    vhs demo.tape

Что важно знать

  • ttyd и ffmpeg нужно установить отдельно и сделать доступными через PATH.

В подборках

Темы

Частые вопросы

Что такое vhs?
Go CLI для записи сеансов терминала в GIF, видео или ASCII по сценариям в файлах .tape — для демонстраций и интеграционных тестов. VHS воспринимает записи терминала как код. Вы описываете команды в файле .tape — например, Type, Enter, Sleep и Wait. VHS воспроизводит их в виртуальном терминале и сохраняет результат в виде GIF, MP4, WebM, последовательности PNG или текстового/ASCII-файла для golden-тестов. Можно настроить семейство и размер шрифта, размеры окна или число столбцов и строк, темы, внутренние и внешние отступы, полосы окна и скорость воспроизведения.
vhs можно использовать бесплатно? Какая у него лицензия?
vhs распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
vhs всё ещё поддерживается?
Активно поддерживается. Последний коммит в vhs — 6 нояб. 2026 г..
Для чего можно использовать vhs?
Обновление демонстрационных GIF для README путём их пересоздания в CI. Интеграционное тестирование CLI через сравнение текстового вывода с эталонными файлами. Создание воспроизводимых записей рабочих процессов в терминале для документации и обучающих материалов.
Как установить vhs?
Установите ttyd и ffmpeg, которые VHS требует найти в PATH Установите VHS с помощью Homebrew в macOS или Linux: brew install vhs Создайте новый файл tape: vhs new demo.tape Создайте GIF из файла tape: vhs demo.tape
Где скачать vhs?
Исходный код и инструкции по установке — на GitHub: https://github.com/charmbracelet/vhs

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Утилита командной строки для записи, трансляции в реальном времени и воспроизведения сессий терминала в компактных файлах asciicast вместо видео.

17,9 тыс.+22 за неделю1 тыс.RustGPL-3.0Активно поддерживаетсяОбновлён позавчера