Nagrywanie terminala z asciinema

,

Zdarzyło Ci się nagrywać sesję w terminalu? Pierwszym narzędziem, które przychodzi na myśl, jest zwykle OBS lub wbudowane rozwiązania systemowe. A co, jeśli istnieje coś lepszego – lżejszego, prostszego i bardziej wydajnego?


Czym jest asciinema?

Asciinema to lekkie narzędzie do nagrywania sesji terminala w formie tekstowej. W przeciwieństwie do tradycyjnych metod nie tworzy pliku wideo, a plik tekstowy (.cast), który zawiera całą nagraną sesję.

Zalety:

  • Lekkie – nie obciąża systemu.
  • Pliki wyjściowe są małe i łatwe do udostępniania.
  • Obsługa streamowania na żywo.
  • Możliwość wstrzymania odtwarzania i skopiowania widocznego tekstu.
  • Konwersja do formatu GIF.

Instalacja

Pakiet asciinema dostępny jest w większości menedżerów pakietów. Aby mieć pewność, że korzystasz z najnowszej wersji, pobierz ją bezpośrednio z repozytorium twórców.

Linux (przykład dla systemów 64-bitowych):

wget -O ~/.local/bin/asciinema https://github.com/asciinema/asciinema/releases/download/v3.2.0/asciinema-x86_64-unknown-linux-gnu
chmod +x ~/.local/bin/asciinema

macOS (Homebrew):

brew install asciinema

Podstawowe użycie

Nagrywanie sesji

Aby rozpocząć nagrywanie, użyj polecenia:

asciinema rec demo.cast
  • demo.cast – nazwa pliku wyjściowego.
  • Nagrywanie zaczyna się natychmiast i kończy po wpisaniu exit lub użyciu skrótu Ctrl+D.

Odtwarzanie

Do odtworzenia nagranej sesji służy polecenie:

asciinema play demo.cast

Zaawansowane opcje

Ograniczenie czasu nagrywania

Możesz ustawić maksymalny czas bezczynności, aby skrócić długie przerwy:

asciinema rec -t "Nagrywanie demo" -i 2 demo.cast
  • -t – tytuł sesji.
  • -i – maksymalny czas bezczynności (w sekundach).

Nagrywanie z konkretnym poleceniem

Jeśli chcesz nagrać wykonanie konkretnego polecenia, użyj opcji -c:

asciinema rec -c "python3 script.py" demo.cast
  • -c – uruchamia podane polecenie zamiast domyślnej powłoki.

Integracja z innymi narzędziami

Konwersja do GIF-a

Asciinema oferuje narzędzie agg do konwersji nagrań do formatu GIF. Możesz je pobrać z repozytorium.

Następnie skonwertuj plik .cast do GIF-a:

agg demo.cast demo.gif

Udostępnianie nagrań

Możesz udostępniać swoje nagrania na asciinema.org lub na własnym serwerze.

Przesłanie nagrania:

asciinema upload demo.cast

Streamowanie na żywo:

asciinema stream -t "Stream demo" --description "Mój pierwszy stream." -r
  • -t – tytuł streamu.
  • --description – opis streamu.
  • -r – strumieniowanie do zdalnego serwera (domyślnie asciinema.org).

Osadzanie nagrania na własnej stronie

Jeśli udostępniłeś swoje nagranie na asciinema.org, możesz osadzić je na swojej stronie, używając gotowego fragmentu kodu dostępnego pod przyciskiem Share pod nagraniem:

<script src="https://asciinema.org/a/bJMOlPe5F4mFLY0Rl6fiJSOp3.js" id="asciicast-bJMOlPe5F4mFLY0Rl6fiJSOp3" async></script>

Możesz też udostępnić swoje nagranie bez przesyłania go na serwer asciinema.org, korzystając z lokalnego odtwarzacza:

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" type="text/css" href="/asciinema-player.css" />
</head>
<body>
  <div id="demo"></div>
  <script src="/asciinema-player.min.js"></script>
  <script>
    AsciinemaPlayer.create('/demo.cast', document.getElementById('demo'));
  </script>
</body>
</html>

Przykłady zastosowań

  1. Tutoriale – Pokazanie krok po kroku, jak używać narzędzi CLI.
  2. Debugowanie – Udostępnienie sesji z błędem innym deweloperom.
  3. Dokumentacja – Zapis procesu wdrażania lub konfiguracji systemu.

Podsumowanie

Asciinema to proste, ale niezwykle przydatne narzędzie. Pozwala łatwo tworzyć tutoriale, nagrywać sesje debugowania oraz dokumentować procesy w formie nagrań. Udostępnianie lub osadzanie nagrań na własnej stronie jest intuicyjne, a w razie potrzeby można je przekonwertować na GIFa.

Warto sprawdzić: