Об этом проекте
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`.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.