Иногда надо записать действия с терминала в Linux. Можно использовать OBStudio, но это слишком громоздко. Ставим asciinema и наслаждаемся жизнью. позже опубликую

Asciinema сохраняет вывод PTY в памяти вместе с метками времени, включая весь текст и невидимые escape/control последовательности в исходном виде. По окончании записи сохраняется файл в формате asciicast. Он же по умолчанию публикуется в открытом доступе на сайте asciinema.org. Там скринкасты доступны по стандартному URL типа asciinema.org/a/20055. Конечно, дефолтные настройки можно изменить.

Для просмотра используется интегрированный плеер asciinema-player. Во время просмотра такой скринкаст можно поставить на паузу, скопипастить текст, а затем запустить дальше.

Установка и использование Asciinema максимально просты. Установка:

brew install asciinema

Если планируете отправлять скринкасты на сервер, нужно пройти аутентификацию:

asciinema auth
Open the following URL in a browser to register your API token and assign any recorded asciicasts to your profile:
https://asciinema.org/connect/1d80abbc-22fc-19a0-b1a1-a3b69cfa0d0a

Старт записи:

asciinema rec --stdin

После этого записываются все наши действия в консоли, а также дополнительно все нажатия клавиш на клавиатуре (опция --stdin). По окончании записи набираем exit или жмём Ctrl-D.

По умолчанию скринкаст заливается на сервер, прописанный в настройках (например, asciinema.org). Чтобы этого избежать, нужно запускать запись с указанием файла:

asciinema rec [filename]

Впоследствии запись можно залить на сервер вручную:

asciinema upload asciicast.json

Недостаток собственного формата в том, что его не выложишь в открытый доступ, как гифку, а для просмотра требуется отдельный плеер.

Но зато плеер очень маленький, так что asciinema player легко интегрировать в любое приложение как модуль из пакета npm. Ну или интегрировать на сайт, как это сделано на бесплатном хостинге скринкастов asciinema.org.

Просто берём плеер asciinema-player.min.js и загружаем в него записанный скринкаст. В нашем случае это 20055.json:

<head>
<link rel="stylesheet" type="text/css" href="asciinema-player.css" />
</head>
<body>
<div id="player"></div>
<script src="asciinema-player.min.js"></script>
<script>
AsciinemaPlayer.create(
'20055.json',
document.getElementById('player'),
{ cols: 80, rows: 24 }
);
</script>

С точки зрения посетителя, интегрированный плеер выглядит так: