Skip to content
ghostshell

Replay

Replay any recording in the full-screen player - seek, pause, speed from 1/64x to 64x, jump-to-time, scroll view, and click-to-seek.

ghostshell play replays a recording with its original timing. It auto-detects the argument: an existing local file plays locally; anything else is treated as a central-store session ID, searched across all users (requires root — see audit mode).

bash
ghostshell play 20260526T145029-1413696.cast        # local file
sudo ghostshell play 20260711T142031-4471           # central session ID

Flags

Flag Default Effect
--speed N 1.0 Playback multiplier
--idle N 0 Caps idle gaps to N seconds; 0 keeps exact original timing

The player

On a terminal, play opens a full-screen player on the alternate screen, with a thin status bar:

text
 > 01:23 / 05:00 [####      ]  27%  1x   <-/-> seek  pgup scroll  g goto  spc play  q quit

Controls

Key / action Effect
space Pause / resume
/ Seek forward / backward 5 s
/ Double / halve playback speed (range: 1/64x – 64x)
g Go to time — type MM:SS or seconds, Enter to jump
pgup Enter scroll view — browse past output a page at a time
Click the bar Seek to that point (Shift+click selects text instead)
b Hide / show the status bar
0 Restart from the beginning
q / Ctrl-C Quit

Fidelity

Full-screen apps (vim, less, htop) replay exactly — play reproduces TUI redraws, and multibyte or box-drawing characters survive even when a PTY read splits a rune across chunks. The scroll view (pgup) parses output heuristically, so full-screen TUIs may look approximate there; see troubleshooting.

Note: Central playback requires root, and an optional playback password can gate it as a second factor. Central recordings are encrypted on disk — play decrypts transparently. To hand a cast to another tool, export it first.

Local plaintext recordings are standard asciinema v2 casts and also play with asciinema play.

Source of truth: README on GitHub