charmbracelet / vhs

Your CLI home video recorder 📼
MIT License
15.06k stars 252 forks source link

Asciicast Output #109

Open rsteube opened 1 year ago

rsteube commented 1 year ago

This is probably out of scope but would be nice to have asciicast output (Output: out.cast). I initally wanted gif for the readme and asciicast for the mdbook documentation but then decided against gif due to it's size. Managed to record it by simply spawning an asciinema recording within tmux. Keeping size in sync with the other outputs could be challenge but there are also gif, svg,.. generators available for asciicast. It might even provide an alternative to the chrome dependency (which pushes my cpu to the limit).

Hide
Type "tmux"
Enter
Type "tmux resize-window -x 108 -y 24"
Enter
Type "asciinema rec --overwrite out.cast"
Enter
Sleep 1s
Show

# ...

Hide
Type "exit"
Enter
Show

Example

Source: https://github.com/rsteube/carapace-bin/blob/18ca32ea6093b965e4949a13ccce85f9108ca65c/carapace-bin.tape

Asciicast

asciicast

Gif

GIF output with agg (ignore the missing symbols, didn't get the font right)

agg --font-family "RobotoMono Nerd Font Mono,Noto Color Emoji"  carapace-bin.cast out.gif

out

Svg

SVG output with svg-term-cli (nice output but high load for playing it)

cat carapace-bin.cast | svg-term --out out.svg

out

related #105

maaslalani commented 1 year ago

This is quite interesting @rsteube, nice work and really clever stuff.

There is definitely something here. Would be really cool to remove the dependency on the browser all together and make terminal GIFs purely in the terminal eventually 😄

maxandersen commented 1 year ago

The .svg format would be the bomb. Lets you copy/paste the commands shown.

drupol commented 11 months ago

I'm also looking for this !

Thanks @rsteube for the snippet ! I use it and it works very well!