How to Record a Terminal GIF

Step-by-step guide to recording terminal sessions as GIF animations using VHS, asciinema, and AgentGIF CLI.

1. 前提条件

ターミナル GIF を録画するには以下が必要です:

VHS はキー入力、コマンド、タイミングを記述した .tape ファイルを読み取り、仮想ターミナルでそれらのアクションを再生して出力を GIF としてキャプチャします。

2. VHS をインストール

プラットフォームインストールコマンド
macOSbrew install vhs
Ubuntu/Debiansudo mkdir -p /etc/apt/keyrings && curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg && echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list && sudo apt update && sudo apt install vhs
Arch Linuxyay -S vhs
Gogo install github.com/charmbracelet/vhs@latest

インストールを確認:

vhs --version

3. テープファイルを作成

テープファイルは VHS に何をタイプするか、いつ待つか、どの設定を使用するかを伝えるプレーンテキストのスクリプトです。demo.tape というファイルを作成します:

Output demo.gif
Set Shell "bash"
Set FontSize 16
Set Width 1000
Set Height 580
Set Theme "Catppuccin Mocha"

Type "echo 'Hello, world!'"
Enter
Sleep 2s

Type "ls -la"
Enter
Sleep 3s

コアコマンド

コマンド説明
Output出力ファイルパスを設定Output "demo.gif"
Typeテキストを入力 (キー入力をシミュレート)Type "git status"
EnterEnter を押すEnter
Sleep一定時間待機Sleep 2s
Ctrl+Cキーボードショートカットを送信Ctrl+C
Hide録画を停止 (セットアップ用)Hide
Show録画を再開Show

4. 設定を構成

Type コマンドより前の、テープファイルの先頭に Set コマンドを置いてください。

AgentGIF の推奨設定

Set Shell "zsh"
Set FontSize 15
Set Width 1000
Set Height 580
Set Padding 20
Set Theme "Catppuccin Mocha"
Set TypingSpeed 50ms
Set CursorBlink false

利用可能なすべての設定

設定デフォルト説明
Shell"bash"使用するシェル (bash、zsh、fish、sh)
FontSize14ピクセル単位のフォントサイズ
Width800ピクセル単位のターミナル幅
Height600ピクセル単位のターミナル高さ
Padding0ターミナル周囲のパディング
Theme"default"Color theme (see theme gallery)
TypingSpeed50msキー入力間の遅延
Framerate50GIF のフレームレート (fps)
PlaybackSpeed1再生速度の倍率
CursorBlinktrue点滅カーソルを表示
LetterSpacing0追加の文字間隔
LineHeight1.0行の高さの倍率

テーマ

VHS には 44 の組み込みテーマが付属しています。開発者ドキュメント向けの人気の選択肢:

テーマスタイル
Catppuccin Mochaウォームダーク (パステルアクセント)
Draculaダークパープル
Tokyo Nightブルーがかったダーク
Nord北極のブルー
One DarkAtom にインスパイアされたダーク
Solarized Darkウォームトーンのクラシックダーク
MonokaiSublime Text にインスパイアされた

ライブプレビューですべてのテーマを閲覧: テーマギャラリー

5. GIF を録画

vhs demo.tape

VHS はヘッドレスブラウザを開き、テープを再生して GIF を保存します。通常の録画は 10~30 秒かかります。

アップロード前にプレビュー:

# macOS
open demo.gif

# Linux
xdg-open demo.gif

6. ファイルサイズを最適化

AgentGIF は最大 10 MB の GIF を受け付けますが、小さいファイルの方が高速に読み込めます。GIF サイズを小さく保つヒント:

テクニック効果
サイズを縮小 (Width 800)大きい — 幅を半分にするとファイルサイズが 1/4 になる
フレームレートを下げる (Framerate 30)中程度 — フレーム数を 40% 削減
録画時間を短縮大きい — 5~15 秒を目安に
PlaybackSpeed 1.5 を使用中程度 — 総フレーム数が減少
カーソルの点滅を無効化 (CursorBlink false)小さい — ユニークフレーム数が減少
べた塗り背景 (透過を避ける)小さい — GIF 圧縮が向上

品質とサイズの最良のバランスのために、上記の推奨設定では 10 秒の録画で約 100~300 KB の GIF が生成されます。

7. AgentGIF にアップロード

CLI でアップロード (最速):

agentgif upload demo.gif \
  --title "Git Interactive Rebase" \
  --command "git rebase -i HEAD~3" \
  --tags git,rebase \
  --open

Or upload via the web interface — drag and drop the GIF file.

キャストファイルを含めると AI エージェントレイヤーが有効になります:

agentgif upload demo.gif --cast demo.cast --title "My Demo"

8. 高度なテープ機能

セットアップの非表示/表示

録画せずにセットアップコマンドを実行するには Hide/Show を使用:

Hide
Type "cd /tmp/demo-project"
Enter
Type "mkdir -p src"
Enter
Show

# Now recording starts
Type "ls -la"
Enter
Sleep 2s

複数の出力形式

VHS は複数の形式を同時に出力できます:

Output demo.gif
Output demo.mp4
Output demo.webm

環境変数

Set Shell "bash"
Type "export PS1='$ '"
Enter
Hide
Sleep 500ms
Show

キーボードショートカット

Ctrl+C     # Cancel current command
Ctrl+L     # Clear screen
Ctrl+D     # EOF / exit
Tab        # Tab completion
Up         # Previous command
Escape     # Escape key

9. 代替録画ツール

ツール出力メリットデメリット
VHSGIF, MP4, WebMスクリプト化、再現可能、テーマ対応セットアップが必要
asciinema.castライブ録画、小さいファイルGIF 出力なし (変換が必要)
TerminalizerGIFライブ録画、YAML 設定大きいファイルサイズ
PeekGIF, WebMGUI スクリーンレコーダーターミナル専用でない

スクリプトデモには VHS (再現可能、バージョン管理可能) を、ライブ録画には asciinema + VHS 変換をお勧めします。

See also: asciinema vs AgentGIF comparison.