Шпаргалки по командам Unix и языкам программирования — в терминале и браузере, через curl, CLI-клиент и плагины для редакторов.
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
Установите ttyd и ffmpeg, которые VHS требует найти в PATH
- 2
Установите VHS с помощью Homebrew в macOS или Linux
brew install vhs - 3
Создайте новый файл tape
vhs new demo.tape - 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 обновляется ежедневно.
Похожие проекты
Библиотека Go для вывода в терминал таблиц, списков, индикаторов прогресса и форматированного текста с широкими возможностями настройки.
Карта звёздного неба для терминала на C, отображающая в ASCII-графике актуальное положение звёзд, планет, созвездий и Луны.
Утилита командной строки для записи, трансляции в реальном времени и воспроизведения сессий терминала в компактных файлах asciicast вместо видео.
Библиотека C++ в заголовочных файлах для создания терминальных интерфейсов в функциональном компонентном стиле, без внешних зависимостей.
Терминальная заставка на Go, которая запускается при простое shell и показывает анимированные сцены: созвездия, дождь, частицы и другие.