Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Similar tool: https://asciinema.org/
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 wrote a blog post[1] breaking down tools to record terminal sessions just a couple weeks ago. I wasn't aware of this particular one but it looks like it's going to have issues with recording anything that requires user input.
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...
[2]: https://github.com/asciinema/agg
[3]: https://github.com/dstein64/gifcast
they even have a tree-sitter parser for vhs/.tape -- https://github.com/charmbracelet/tree-sitter-vhs#readme -- but then they hand-roll the parser for it in the actual vhs repo
Is tree-sitter so hard to use in anger that it's worth the diverging implementations?
One of the dependencies is `rod`[0], which is a web scraping/automation library, and I believe requires a browser to work. I don't know what they're using it for though as I haven't looked at the code (and I'm not familiar with Go anyways).
0: https://github.com/go-rod/rod
Maybe another alternative for inspiration: https://github.com/faressoft/terminalizer
I love it because it gives you the option to record or to prepare your file... very easy and good results.
I wrote a blog post[1] breaking down tools to record terminal sessions just a couple weeks ago. I wasn't aware of this particular one but it looks like it's going to have issues with recording anything that requires user input.
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...
[2]: https://github.com/asciinema/agg
[3]: https://github.com/dstein64/gifcast
I've started using demo-magic [1] to automate my asciinema recorded demos, not perfect but it gets the job done. VHS does look excellent however and I'll definitely be giving it a go the next time I need to record anything.
[1] https://github.com/paxtonhare/demo-magic
You can record and play cast files offline easily. You can also embed an asciinema js player on your own site to play casts.
[1] https://github.com/asciinema/asciinema-player