3.0 Published on 15 Sep 2025 by Marcin Kulik
I’m happy to announce the release of asciinema CLI 3.0!
This is a complete rewrite of asciinema in Rust, upgrading the recording file format, introducing terminal live streaming, and bringing numerous improvements across the board.
In this post, I’ll go over the highlights of the release. For a deeper overview of new features and improvements, see the release notes and the detailed changelog.
First, let’s get the Rust rewrite topic out of the way. I did it because I felt like it. But seriously, I felt like it because I prefer working with Rust 100x more than with Python these days. And this type of code, with syscalls and concurrency, is way easier to deal with in Rust than in Python. That’s my experience, YMMV. Anyway, in addition to making me enjoy working with this component of asciinema again, the rewrite resulted in faster startup, easier installation (a static binary), and made many new features possible by integrating asciinema virtual terminal (also Rust) into the CLI.
Let’s look at what’s cool and new now.
asciicast v3 file format
The new asciicast v3 file format is an evolution of the good old asciicast v2. It addresses several shortcomings of the previous format that were discovered over the years.
The major change in the new format is the use of intervals (deltas) for timing session events. v2 used absolute timestamps (measured since session start), which had its own pros and cons. One often-brought-up issue was the difficulty of editing the recordings - timestamps of all following events had to be adjusted when adding/removing/updating events.
Other than timing, the header has been restructured, grouping related things together, e.g. all terminal-related metadata is now under term . There’s also support for the new "x" (exit) event type, for storing the session exit status. Finally, line comments are allowed by using the # character as the first character on a line.
... continue reading