8 ms·
Asciinema: Record and share your terminal sessions
- taoh 1y agoWe use asciinema to record CLI tools terminals and add the recordings as svg to our README. We also use the recordings to replay as part of our CI. works great!
- iib 1y agoHow do you use the recordings as part of the CI?
- deleted 1y ago[deleted]
- taoh 1y agoWe made a tool using termsvg: https://github.com/DeepGuide-Ai/dg https://github.com/DeepGuide-Ai/dg. It'll use recorded sessions and execute the non-interactive sessions during CI.
- kragen 1y agoThat sounds cool! An animated SVG? How do you convert to SVG format?
- _ache_ 1y agosvg-term-cli I think. I found a post talking about it not long ago. https://github.com/marionebl/svg-term-cli https://github.com/marionebl/svg-term-cli
- taoh 1y agoWe use termsvg to convert cast to svg automatically. The tool is open source: https://github.com/DeepGuide-Ai/dg https://github.com/DeepGuide-Ai/dg.
- kragen 1y agoThanks! I hadn't heard of it!
- kragen 1y agoUpon investigation, both dg and svg-term-cli output SVG with embedded CSS animation. So it's not that SVG supports animation per se. This also remodels my understanding of what CSS animation can do.
- meowface 1y agoI wish it supported easy export to MP4.
- taoh 1y agoIt should be pretty easy to export to MP4, but using SVG will be lighter and faster, which is why we created the dg tool to automatically export to SVG. Please see my previous comments if interested
- jasonjmcghee 1y agoYou can do it in two commands, but not ideal to need gif as stopgap. agg demo.cast demo.gif ffmpeg -i demo.gif demo.mp4
- kragen 1y agoI've found asciinema pretty cool and recorded a few recordings of things I've done, like some experimental Emacs commands, a computer algebra system, a Unicode Tetris game in ARM assembly, and a minimal roguelike: https://asciinema.org/~kragen https://asciinema.org/~kragen. These are not the most spectacular recordings on the site, but I have found them a useful way to communicate ideas. I wish there was some kind of voiceover support. One thing to be aware of before you try it is that, if you make a recording without providing a filename for it, it uploads it by default to the web site, even if you haven't created an account yet, though it doesn't make it public. So maybe don't record anything you have a responsibility of confidentiality for, or patch out that feature.
- nostoneunturned 1y agoThat is so shady.
- kragen 1y agoIt's kind of justifiable in the sense that it's more convenient in the usual case. You say `asciinema rec`, do your thing, and then you have a secure URL to share with somebody, and you can make it public with a couple more clicks. Actually I think this has changed, because when I tried this just now, it asked me (s)ave locally, (u)pload to asciinema.org, (d)iscard [s,u,d]? u which is a little more friction but probably a safer default.
- junon 1y agoI can see why you think that but Asciinema's whole original purpose was to share quick recordings. IIRC you actually had to go out of your way to just save locally, as it's main advertised and very obvious functionality was that it was uploaded. They've since made things a little more flexible, but I don't perceive it as being shady. If you used it you were most likely after that functionality.
- Aurornis 1y agoIt was developed as a tool for the website, not a general purpose screen recording tool. The latest version has evolved to be more general purpose without assuming the upload.
- theraven 1y agoI’ve moved over to using vhs https://github.com/charmbracelet/vhs https://github.com/charmbracelet/vhs
- eddieh 1y agoLooks cool, but produce GIFs? Asciinema is text based IIRC. The name is the downside of Asciinema IMO. Can’t help but read it as ASCII enema, which is funny, but not what I want think about. Just call it tty-player or something…
- hamandcheese 1y agoDid someone say titty player?
- eddieh 1y agoTouché.
- ggaughan 1y agovhs can also create video files: https://github.com/charmbracelet/vhs#output https://github.com/charmbracelet/vhs#output
- justusthane 1y agoBut the brilliant thing about Asciinema is that the output is just text (JavaScript). You can pause it and copy text from it if you need to, and the filesize is basically nil.
- ethan_smith 1y agoVHS offers a declarative approach with .tape files that makes terminal demos reproducible and version-controllable, plus it generates GIFs without requiring a browser to view the recordings.
- Shadowmist 1y ago| tr : " "
- userbinator 1y agoUseful tool, but I can't help reading the name as "ASCII Enema" every time I see it.
- teaearlgraycold 1y agoEither that or “ass cinema”.
- junon 1y agoAsciiEnema: It even handles the most significant bits. ... I'll see myself out.
- kstonekuan 1y agoCool, wonder if this could be used to record agentic cli sessions like claude code and gemini cli
- scottyeager 1y agoYes.
- eviks 1y agoHow is this better than basic linear scrollable text? You don't have to waste time waiting for letters to appear at a pace slower than your reading speed. You don't worry about missing a moment and then trying to rewind with the imprecise controls (and you can't use text search to instantly find the word you remember) of broken full-screen button like it's on this website when viewed on a smartphone
- jasonjmcghee 1y agoI generally see it used to demo a TUI, to great effect.
- eviks 1y agoGood point, I mostly remember the cli sequences as shown in the demo (which are only better than the gif alternative). The TUI version should be their primary demo!
- WouterSpaak 1y agoI fully agree, this would be pretty much impossible to demo with just plain text: https://asciinema.org/a/659042 https://asciinema.org/a/659042
- yjftsjthsd-h 1y agoI assume this plays nice with tuis? Ex. you can use this to record vim, which scrollback doesn't do
- stevengoodwin 1y agoThis is a really nice, and very compact, way of demonstrating the terminal in action. I used it to show off my 2002 version of ASCII pacman game, since no one's going to bother compiling it, and it'll eventually end up with bitrot. You can see me playing it (really badly!) at https://asciinema.org/a/723703 https://asciinema.org/a/723703
- pi_22by7 1y agoNice work on the game! The recording shows it off well. Good thinking using asciinema for this kind of thing. I'd probably be the idiot who types pacman and wonders why it's trying to update my system instead of starting the game.
- justusthane 1y agoLove it! The Pacman character animation is great.
- wkjagt 1y agoVery cool! I'd love to see the code, if it's shareable.
- bytejanitor 1y agoThe upload "feature" is very dangerous.
- ku1ik 1y agoThis has been changed. In 2.4 there’s explicit prompt for save/upload/discard. Since 3.0 there’s no auto upload in any form - you always record to a file, and to upload you need to explicitly run `asciinema upload filename`.
- benterix 1y agoThe best use case for me is as explained here: https://koaning.io/posts/svg-gifs/ https://koaning.io/posts/svg-gifs/
- pi_22by7 1y agoThis looks really useful for documentation. The text-based approach seems like a huge advantage over screen recordings. Being able to copy-paste commands from a "video" is brilliant. The privacy concern about auto-uploading is a bit concerning though, glad they added the prompt to choose local vs upload.
- tambourine_man 1y agoI always read it “ASCII Cinema” in my mind, but that’s obviously not correct (they provide the IPA in the first paragraph)
- xiconfjs 1y agoyes, but for me [1] it breaks new-lines which where there before in the terminal. [1] Firefox 141 @ Ubuntu 22.04
- stevenjgarner 1y agoI am curious about the use cases where a VIDEO recording is inherently more useful than a TEXT recording of a terminal session. I have found simply using: script session.log ... to be invaluable, especially when documenting commands that will be finding their way into a bash script or when I am collaborating with another person who will always have script available in their terminal but may have restrictions on being able to install asciinema.
- justusthane 1y agoDemoing TUIs
- Roark66 1y agoI like the idea. I haven't used the tool, but what I'd love to (maybe it already does this) is to be able to take a recording and turn it into a text document showing what to run, what output to expect and so on. Something that lets one turn a terminal recording into a document showing how to redo that thing without having to watch a video and no need to copy/paste between terminal and text editor, take screenshots and such. Maybe this could be achieved by recording in a human readable file format and then running it via an LLM with right prompt. Then I'd like it to record all the time. I always have a bunch of tmux sessions running. I've set it up to save the history of all sessions, but obviously the history is one file. Something like this could resolve it nicely.
- ku1ik 1y agoYou can get a plain text log of a recorded session in several ways. If you uploaded to asciinema server (e.g. asciinema.org) then you can click on Download and select txt format. Or, with the CLI 3.0, you can either: - convert existing cast file to plain text: asciinema convert demo.cast demo.txt - record directly to plain text: asciinema rec demo.txt
- alienbaby 1y agook, but can you take a recording and turn it into a text document showing what to run, what output to expect and so on. IE: I think the person your replying to would like to have a tool that rebuilds a terminal session as a, for example, step by step guide. Not just grab it as a text file.
- minishlink 1y agoI'm using asciinema on the homepage of https://appzung.com https://appzung.com What's also cool about it is that you can easily redact information that you would not want to expose, by simply editing the source text .cast file.
- theideaofcoffee 1y agoThe venerable script(1) command has been around since 1979 (via 3.0BSD), and while some of the timestamping (supporting via the -r flag to feed the resultant file into the playback) and other utility functions (replay via -p are much newer, the result is the same. Record to a (mostly) text file to schlep around as needed. And it's normally included by default on most installs, including macos. There's no upload-to-server functionality unlike asciinema, but that may be a feature for some users.
- ku1ik 1y agoOn a related note, asciinema player supports good ol' typescript files produced by the script(1) command. https://blog.asciinema.org/post/blast-from-the-past/ https://blog.asciinema.org/post/blast-from-the-past/
- azemetre 1y agoCould anyone recommend any plugins that turn asciinema recordings to SVGs that are currently maintained? I'm aware of this one, which seems to be the only one actively maintained from when I lasted looked: https://github.com/MrMarble/termsvg https://github.com/MrMarble/termsvg Hoping others have different recommendations. What would be nice about transforming to SVG is low bandwidth and ease of use for static sites.
- zimbatm 1y agohttps://github.com/marionebl/svg-term-cli https://github.com/marionebl/svg-term-cli
- azemetre 1y agoThanks! Do you have experience using it? I'm quite nervous on using node CLT because the dependencies will always end up destroying the project and seeing it hasn't been updated in 5 years does not instill confidence. The golang project looked better because at least the golang project provides a binary.
- zimbatm 1y agoI haven't used it extensively, but it works. I don't think it necessarily needs any updates since the underlying tech is stable.
- dmayle 1y agoI want to take just a second, not to talk about asciinema itself, but to use asciinema to talk about a project I just discovered recently called carbonyl. It's a command line web-browser that uses a headless GUI browser (in this case chromium) in order to surf the web and render it to the terminal. brow.sh preceded it (powered by Firefox), but in my testing, carbonyl has much better web support. In any case, here's a very brief demo: https://asciinema.org/a/HLHWeKE2s5bdyhUGQPBum49kx https://asciinema.org/a/HLHWeKE2s5bdyhUGQPBum49kx It's so short because the bandwidth is high to use it, and asciinema.org rejects casts that are greater than 10MB
- electroglyph 1y agoI have a really simple asciinema implementation at terminoid.com, it may work there. I haven't gotten around to finishing my work on it...
- magicalhippo 1y agoI looked at Carbony not long ago, but as far as I can see it's not been updated for a couple of years?
- fduran 1y agoAt SadServers we use Asciinema to record some scenario sessions, this is how we did it: https://github.com/sadservers/sadservers?tab=readme-ov-file#replay-system https://github.com/sadservers/sadservers?tab=readme-ov-file#... (we still have some issues to iron out on our side) The author Marcin is a nice fellow and as a reminder asciinema development relies on donations and sponsorships https://github.com/sponsors/ku1ik https://github.com/sponsors/ku1ik
- x187463 1y agoAll of the terminal effects I display over at: https://chrisbuilds.github.io/terminaltexteffects/showroom/ https://chrisbuilds.github.io/terminaltexteffects/showroom/ were recorded using asciinema and converted to gif use AGG. https://github.com/asciinema/agg https://github.com/asciinema/agg The workflow only takes a few seconds. The .cast file is output to a folder, AGG reads the .cast and creates a gif. AGG has arguments to automatically set the row/column widths and strip inactive time. I could not find any other solution that produced high quality gifs. Asciinema is awesome.
- zimbatm 1y agoQuality animated SVGs is even better: https://github.com/marionebl/svg-term-cli https://github.com/marionebl/svg-term-cli
- x187463 1y agoThe amount of information the SVG must store to represent the animation actually crashed the application creating it. There’s too much going on in TTE animations.
- ozozozd 1y agoI just discovered Terminal Text Effects, and that was the coolest thing I’ve seen all year! I never post a link on HN but I feel like I wanna post it everywhere!
- greazy 1y agoFor a workshop I embedded gifs of cli tools in PowerPoint. It was great. The PowerPoint acted as both notes for me and the trainees who could refer to them after the workshop finished. Only issue is I prefer sharing pdf of slide deck but I couldn't workout how to export a pdf with gif and no idea if it's possible to embed a gif in a pdf