[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)