How to Record a Terminal GIF

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

1. Voraussetzungen

Um Terminal-GIFs aufzunehmen, benötigen Sie:

VHS funktioniert, indem es eine .tape-Datei liest, die Tasteneingaben, Befehle und Timing beschreibt — dann werden diese Aktionen in einem virtuellen Terminal abgespielt und die Ausgabe als GIF aufgezeichnet.

2. VHS installieren

PlattformInstallationsbefehl
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

Installation überprüfen:

vhs --version

3. Eine Tape-Datei erstellen

Eine Tape-Datei ist ein Klartext-Skript, das VHS sagt, was eingegeben werden soll, wann gewartet werden soll und welche Einstellungen verwendet werden sollen. Erstellen Sie eine Datei namens 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

Kernbefehle

BefehlBeschreibungBeispiel
OutputDen Ausgabedateipfad festlegenOutput "demo.gif"
TypeText eingeben (simuliert Tastenanschläge)Type "git status"
EnterEnter drückenEnter
SleepEine Zeitdauer wartenSleep 2s
Ctrl+CTastenkürzel sendenCtrl+C
HideAufnahme stoppen (für Setup)Hide
ShowAufnahme fortsetzenShow

4. Einstellungen konfigurieren

Set-Befehle an den Anfang Ihrer Tape-Datei setzen, vor alle Type-Befehle.

Empfohlene Einstellungen für 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

Alle verfügbaren Einstellungen

EinstellungStandardBeschreibung
Shell"bash"Zu verwendende Shell (bash, zsh, fish, sh)
FontSize14Schriftgröße in Pixeln
Width800Terminalbreite in Pixeln
Height600Terminalhöhe in Pixeln
Padding0Abstand um das Terminal
Theme"default"Color theme (see theme gallery)
TypingSpeed50msVerzögerung zwischen Tastenanschlägen
Framerate50GIF-Frames pro Sekunde
PlaybackSpeed1Wiedergabegeschwindigkeits-Multiplikator
CursorBlinktrueBlinkenden Cursor anzeigen
LetterSpacing0Zusätzlicher Buchstabenabstand
LineHeight1.0Zeilenhöhen-Multiplikator

Themes

VHS wird mit 44 eingebauten Themes geliefert. Beliebte Optionen für die Entwicklerdokumentation:

ThemeStil
Catppuccin MochaWarm dunkel (Pastellakzente)
DraculaDunkles Lila
Tokyo NightBlau getöntes Dunkel
NordArktisches Blau
One DarkVon Atom inspiriertes Dunkel
Solarized DarkKlassisches Dunkel mit warmen Tönen
MonokaiVon Sublime Text inspiriert

Alle Themes mit Live-Vorschau durchstöbern: Theme-Galerie.

5. Das GIF aufnehmen

vhs demo.tape

VHS öffnet einen headless Browser, spielt die Tape-Datei ab und speichert das GIF. Eine typische Aufnahme dauert 10-30 Sekunden.

Vor dem Hochladen in der Vorschau ansehen:

# macOS
open demo.gif

# Linux
xdg-open demo.gif

6. Dateigröße optimieren

AgentGIF akzeptiert GIFs bis zu 10 MB, aber kleinere Dateien laden schneller. Tipps zum Reduzieren der GIF-Größe:

TechnikAuswirkung
Abmessungen reduzieren (Width 800)Erheblich — Halbierung der Breite vierteilt die Dateigröße
Bildrate senken (Framerate 30)Moderat — reduziert Frames um 40%
Kürzere AufnahmeErheblich — 5-15 Sekunden anstreben
PlaybackSpeed 1.5 verwendenModerat — weniger Gesamtframes
Cursor-Blinken deaktivieren (CursorBlink false)Gering — weniger einzigartige Frames
Einfarbiger Hintergrund (Transparenz vermeiden)Gering — bessere GIF-Komprimierung

Für die beste Balance aus Qualität und Größe produzieren die oben empfohlenen Einstellungen GIFs von etwa 100-300 KB für eine 10-Sekunden-Aufnahme.

7. Zu AgentGIF hochladen

Über CLI hochladen (am schnellsten):

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.

Das Hinzufügen einer Cast-Datei aktiviert die KI-Agenten-Schicht:

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

8. Erweiterte Tape-Funktionen

Ausblenden/Anzeigen für das Setup

Hide/Show verwenden, um Setup-Befehle auszuführen, ohne sie aufzunehmen:

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

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

Mehrere Ausgabeformate

VHS kann mehrere Formate gleichzeitig ausgeben:

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

Umgebungsvariablen

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

Tastaturkürzel

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

9. Alternative Aufnahme-Tools

ToolAusgabeVorteileNachteile
VHSGIF, MP4, WebMGeskriptet, reproduzierbar, ThemesSetup erforderlich
asciinema.castLive-Aufnahme, kleine DateienKeine GIF-Ausgabe (Konvertierung erforderlich)
TerminalizerGIFLive-Aufnahme, YAML-KonfigurationGroße Dateigrößen
PeekGIF, WebMGUI-BildschirmrekorderNicht terminalspezifisch

Wir empfehlen VHS für geskriptete Demos (reproduzierbar, versionierbar) und asciinema + VHS-Konvertierung für Live-Aufnahmen.

See also: asciinema vs AgentGIF comparison.