Об этом проекте

VHS — инструмент для создания GIF-терминалов (и других видеоформатов) из кода, предназначенный для интеграционного тестирования и демонстрации CLI-инструментов. Пользователи пишут .tape-файлы, содержащие команды, которые указывают VHS выполнять действия в виртуальном терминале: вводить текст, нажимать клавиши, ожидать появления содержимого на экране, делать паузы. Результат можно экспортировать в GIF, MP4, WebM или последовательность PNG-кадров. Основные возможности: - Скрипты .tape с командами для ввода текста, нажатий клавиш (Enter, Tab, Backspace, стрелки, сочетания с Ctrl), прокрутки, ожидания по регулярному выражению и пауз. - Настройки семейства и размера шрифта, размеров терминала (в пикселях или столбцах/строках), межбуквенного интервала, высоты строки, тем (JSON или именованные), отступов, полей, стиля панели окна, радиуса границ, частоты кадров, скорости воспроизведения, смещения цикла и мерцания курсора. - Запись терминальных сессий непосредственно в .tape-файлы с помощью `vhs record`. - Публикация GIF на vhs.charm.sh для совместного использования через браузер, HTML или Markdown-ссылки. - Встроенный SSH-сервер (`vhs serve`) для самостоятельного хостинга, позволяющий удалённо запускать VHS с командами, установленными на хосте. - Декларация зависимостей через `Require`, чтобы завершаться с ошибкой на раннем этапе, если нужные программы отсутствуют. - Команды `Hide`/`Show` для приостановки и возобновления захвата кадров при подготовке или очистке. - Команда `Source` для включения команд из других .tape-файлов. - Установка переменных окружения с помощью `Env`. - Поддержка копирования и вставки через буфер обмена. - Возможность создания скриншотов отдельных кадров. VHS требует наличия ttyd и ffmpeg в PATH. Установить его можно через пакетные менеджеры (brew, pacman, nix, scoop, winget), Docker, готовые бинарные файлы или `go install`.