[HN Gopher] Asciinema: Record and share your terminal sessions
       ___________________________________________________________________
        
       Asciinema: Record and share your terminal sessions
        
       Author : phendrenad2
       Score  : 230 points
       Date   : 2025-07-25 02:50 UTC (20 hours ago)
        
 (HTM) web link (asciinema.org)
 (TXT) w3m dump (asciinema.org)
        
       | taoh wrote:
       | We 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 wrote:
         | How do you use the recordings as part of the CI?
        
           | taoh wrote:
           | We made a tool using termsvg: https://github.com/DeepGuide-
           | Ai/dg. It'll use recorded sessions and execute the non-
           | interactive sessions during CI.
        
         | kragen wrote:
         | That sounds cool! An animated SVG? How do you convert to SVG
         | format?
        
           | _ache_ wrote:
           | svg-term-cli I think. I found a post talking about it not
           | long ago.
           | 
           | https://github.com/marionebl/svg-term-cli
        
           | taoh wrote:
           | We use termsvg to convert cast to svg automatically. The tool
           | is open source: https://github.com/DeepGuide-Ai/dg.
        
             | kragen wrote:
             | Thanks! I hadn't heard of it!
        
       | meowface wrote:
       | I wish it supported easy export to MP4.
        
         | taoh wrote:
         | It 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 wrote:
         | You 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 wrote:
       | I'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. 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 wrote:
         | That is so shady.
        
           | kragen wrote:
           | It'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 wrote:
           | I 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 wrote:
           | It 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.
        
         | homebrewer wrote:
         | Since 3.0 (Rust rewrite that is already shipped by Arch et al),
         | the filename argument is required, and it simply saves it
         | locally by default without even asking to upload.
         | 
         | upload is a separate command.
        
         | seansh wrote:
         | If you want voiceover and more you might wanna check out
         | CodeMic.io.
        
           | kragen wrote:
           | That's not just proprietary, it's surveillance capitalism.
           | "Subscribe for early access and monthly progress updates."
           | You should be embarrassed for posting that kind of filth on a
           | thread about asciinema, which is a free-software program that
           | works offline and has strict privacy protections.
           | 
           | Also, codemic.io seems to be oriented toward full-motion
           | video, so aside from the authoritarianism issues, it's not
           | even related.
        
       | theraven wrote:
       | I've moved over to using vhs https://github.com/charmbracelet/vhs
        
         | eddieh wrote:
         | Looks 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 wrote:
           | Did someone say titty player?
        
             | eddieh wrote:
             | Touche.
        
           | ggaughan wrote:
           | vhs can also create video files:
           | https://github.com/charmbracelet/vhs#output
        
             | justusthane wrote:
             | But 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 wrote:
         | VHS 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 wrote:
       | | tr : " "
        
       | userbinator wrote:
       | Useful tool, but I can't help reading the name as "ASCII Enema"
       | every time I see it.
        
         | teaearlgraycold wrote:
         | Either that or "ass cinema".
        
         | junon wrote:
         | _AsciiEnema: It even handles the most significant bits._
         | 
         | ... I 'll see myself out.
        
       | kstonekuan wrote:
       | Cool, wonder if this could be used to record agentic cli sessions
       | like claude code and gemini cli
        
         | scottyeager wrote:
         | Yes.
        
       | eviks wrote:
       | How 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 wrote:
         | I generally see it used to demo a TUI, to great effect.
        
           | eviks wrote:
           | Good 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 wrote:
             | I fully agree, this would be pretty much impossible to demo
             | with just plain text: https://asciinema.org/a/659042
        
         | yjftsjthsd-h wrote:
         | I assume this plays nice with tuis? Ex. you can use this to
         | record vim, which scrollback doesn't do
        
       | stevengoodwin wrote:
       | This 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
        
         | pi_22by7 wrote:
         | Nice 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 wrote:
         | Love it! The Pacman character animation is great.
        
         | wkjagt wrote:
         | Very cool! I'd love to see the code, if it's shareable.
        
       | bytejanitor wrote:
       | The upload "feature" is very dangerous.
        
         | ku1ik wrote:
         | This 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 wrote:
       | The best use case for me is as explained here:
       | https://koaning.io/posts/svg-gifs/
        
       | pi_22by7 wrote:
       | This 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.
        
         | xiconfjs wrote:
         | yes, but for me [1] it breaks new-lines which where there
         | before in the terminal.
         | 
         | [1] Firefox 141 @ Ubuntu 22.04
        
         | tambourine_man wrote:
         | I always read it "ASCII Cinema" in my mind, but that's
         | obviously not correct (they provide the IPA in the first
         | paragraph)
        
       | stevenjgarner wrote:
       | I 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 wrote:
         | Demoing TUIs
        
       | Roark66 wrote:
       | I 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 wrote:
         | You 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 wrote:
           | ok, 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 wrote:
       | I'm using asciinema on the homepage of 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 wrote:
       | The 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 wrote:
         | On 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/
        
       | azemetre wrote:
       | Could 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
       | 
       | Hoping others have different recommendations.
       | 
       | What would be nice about transforming to SVG is low bandwidth and
       | ease of use for static sites.
        
         | zimbatm wrote:
         | https://github.com/marionebl/svg-term-cli
        
       | dmayle wrote:
       | I 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
       | 
       | It's so short because the bandwidth is high to use it, and
       | asciinema.org rejects casts that are greater than 10MB
        
         | electroglyph wrote:
         | I have a really simple asciinema implementation at
         | terminoid.com, it may work there. I haven't gotten around to
         | finishing my work on it...
        
       | fduran wrote:
       | At SadServers we use Asciinema to record some scenario sessions,
       | this is how we did it:
       | 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
        
       | x187463 wrote:
       | All of the terminal effects I display over at:
       | https://chrisbuilds.github.io/terminaltexteffects/showroom/ were
       | recorded using asciinema and converted to gif use 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 wrote:
         | Quality animated SVGs is even better:
         | 
         | https://github.com/marionebl/svg-term-cli
        
       ___________________________________________________________________
       (page generated 2025-07-25 23:01 UTC)