VHS: CLI home video recorder
github.com
github.com
It does not generate a GIF file, but can be easily published on the web. The recorded terminal session is clipboard friendly: you can select and copy.
I can see VHS being nicer than asciinema for a lot of applications, since you can avoid typos and fumbling, and you can easily re-render the same output with different settings.
Although it's separate, the creator(s) does provide a utility called `agg`[0] to convert asciicast files to GIF. The GitHub appears to provide prebuilt binaries in Releases, but it's easily built using Cargo/Rust too.
My post describes how to make high quality recordings of terminal sessions that can be replayed in the terminal, or shared on the web. I'm defining high quality as recordings with zero typos, and relatively controlled timing between commands.
I'm going to assume this works well because all the stuff from Charm seems to, BUT its limitations are ... problematic. I think the techniques i list in the post combined with agg[2] or gifcast[3] to covert it to a gif would be a better solution for non-trivial cases.
I'll add notes about agg and gifcast to the post this evening hopefully.
[1]: https://weblog.masukomi.org/2022/10/11/recording_and_sharing...
Some ideas for new features:
* If the prefix of the tape file is unchanged, reuse the intermediate updates through that prefix from a cache (edit: hmm, upon further thought this seems more difficult than I initially imagined, since the state would need to be cached to save time, not just the images)
* Allow an option for using real-time delays in the gif or user-selected delays (I think currently delays are constant unless user-selected, but I don't see a way to use the real runtime delay in the gif)
> Linux > brew
Please don't do this, it's not safe, despite it "existing" as an option. Even a binary download is better than suggesting brew on Linux.
Coupled with uninstalling before determining whether or not the OS version is still supported (not sure if this still can happen, or ever happened on Linux)... fun times all around.
Asdf – language tool version manager
https://news.ycombinator.com/item?id=33323261 (3 days ago)
Pretty neat! I've always had a gripe with GIF's autoplaying after the page loads so the first time I see it it's halfway through the animation.
VHS looks like a pretty neat tool! Not sure if I'd use it, but definitely some use cases out there for tutorials, guides, etc.
I really wish there was a set of browser standards for at least a modicum of similarity (I guess chromium is one?)- things are all over the place still hahaha
Is tree-sitter so hard to use in anger that it's worth the diverging implementations?
That is super slick!
If the trademark owner discovers this, they would be legally obliged to defend their trademark if they want to keep it.
JVC/Kenwood has previously successfully defended their mark when used in artworks/apparel (which are not in the same domains).
Based on a quick glance, I'd say the best thing about it is that can you reuse the script (for ex: something changed with the command usage/output, automate recording for different command, etc).
Later he revealed the "magic trick"!
I made the inverse of this (give it keystrokes and it plays them back as you type, for live demos: https://gitlab.com/stavros/itsalive).
I love it because it gives you the option to record or to prepare your file... very easy and good results.
The benefit of using GNU screen is that the "tape" can be a shell script. I suppose if you don't like shell scripts that's not a benefit, but I do like them.
For example, instead of:
Type "echo 'Welcome to VHS!'"
# Pause for dramatic effect...
Sleep 500ms
Enter
With GNU screen, you would write: #!/bin/sh
screen -d -m -S whatever -- bash
screen -S whatever -X stuff "echo Welcome to screen"
sleep 0.5
screen -S whatever -X stuff $'\n'
If you want to start interacting with the session, just do screen -r whateverYou can also read what is in the screen with -X hardcopy, then do something with the output, like verify the output is correct or adjust the input.
Edit: X11 as a source, not xterm. At least from what I can see.
which for sure matches my mental model of using ttyd and ffmpeg -- what in the world would anyone need chromium for?
Perhaps rendering an xterm.js canvas? (I don't know, it's just a guess)
Which font family can be used? I'm trying with font names from fonts that I have installed (i.e. Terminus or terminus) and it's not working.
these days, you just pick a word from the dictionary, and that's your software's name. now I have 1000 names to remember.
The other themes that all the tools have are quality, usefulness, and creativity. Personally my favorite is gum, it makes me want to write shell scripts. It's like zenity for the terminal.