asciinema(読みは、アス_キネマ?) は、
ターミナルの出力を録画して Web で共有します(共有せずにローカルに保存することも可能です)。

http://asciinema.org

asciinema の特徴

  • ターミナルの出力を録画して再生できる
  • script や ttyrec でうまく表示できない 、screen, zsh のメタ文字が問題なく扱える
  • vi, textbringer などの スクリーンエディタの操作ログも録画できる
  • 録画した内容は asciinema.org で共有可能

インストール

$ sudo apt install asciinema

使い方

https://asciinema.org/docs/usage

録画

$ asciinema rec <filename>.json

Ctrl-D または exit で停止。
録画の情報は json 形式で保存。

再生

// ファイル指定
$ asciinema play <filename>

// URL 指定
$ asciinema play https://asciinema.org/a/epcarlzkbg1c9k4vbum1iqgsy
$ asciinema play ipfs:/ipfs/QmcdXYJp6e4zNuimuGeWPwNMHQdxuqWmKx7NhZofQ1nw2V

アップロード

asciinema.org に録画したjsonファイルをアップロードします(要ユーザ登録)。
閲覧権限を public にすると public な asciinema リスト に公開されます。

$ asciinema auth
$ asciinema upload <filename>

注意

アップロードしたファイルは P2P の ipfs に保存されるので、Web コンソールで private 制限に設定していても URL がわかれば閲覧できます。

設定

asciinema の設定ファイルは ~/.config/asciinema/config です。
実行時の shell などを設定できます。

https://asciinema.org/docs/config

asciinema 実行時だけコマンドプロンプトを変更する

asciinema は実行時に自動で ASCIINEMA_REC 環境変数を 1 にセットします。
この環境変数を使って asciinema の実行時だけコマンドプロンプトを変えてユーザ名やホスト名をプロンプトに表示しない等、シェルの設定を変えることができます。

$ vi ~/.zshrc
if [ "$ASCIINEMA_REC" = "1" ];then
    # asciinema 実行時の設定 (簡易なプロンプトを表示)
    PROMPT='$ '
else
    # 通常時の設定 (ユーザ名やホスト名を出力する)
    PROMPT=$(print "%n@%m:%# ")
fi