Asciinema CLI 3.0 Rewritten in Rust, Adds Live Streaming, Upgrades File Format
Posted4 months agoActive3 months ago
blog.asciinema.orgTechstoryHigh profile
excitedpositive
Debate
10/100
AsciinemaRustLive StreamingCLI Tools
Key topics
Asciinema
Rust
Live Streaming
CLI Tools
Asciinema CLI 3.0 is released, rewritten in Rust with new live streaming feature and upgraded file format, generating excitement and praise from the community for its improved performance and capabilities.
Snapshot generated from the HN discussion
Discussion Activity
Very active discussionFirst comment
1h
Peak period
63
0-12h
Avg / period
13.5
Comment distribution81 data points
Loading chart...
Based on 81 loaded comments
Key moments
- 01Story posted
Sep 15, 2025 at 12:06 PM EDT
4 months ago
Step 01 - 02First comment
Sep 15, 2025 at 1:23 PM EDT
1h after posting
Step 02 - 03Peak activity
63 comments in 0-12h
Hottest window of the conversation
Step 03 - 04Latest activity
Sep 21, 2025 at 7:58 AM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45251375Type: storyLast synced: 11/20/2025, 7:45:36 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
Love to see it.
Have you guys added the ability to cleanse / watch command strings for sensitive items like secrets, keys etc? Seems easier than ever with advances in lightweight LLMs.
Please this has to be satire, right?
What about that should involve a large language model?
I love leaving my baseline security in the hands of a hallucinating, unreliable token generator.
I'm sorry, I don't even know how to explain that this type of feature would be such a mis-feature, it's hard to even know how to explain it to somehow for whom its not obvious.
No idea if it does this already though.
It was written in Python before, no?
With this new live streaming feature in Asciinema, I could imagine that a small subset of programming streamers could skip buying a HDMI capture device. Specially the kind of developer who works exclusively in the terminal. This small group of people could now stream their terminal from the dev machine to the OBS machine using Asciinema 3, instead of capturing HDMI output.
The 2 device setup for game streaming was born because of the heavy CPU usage of x264 encoding. So you could have a PC for the game only while the streamig PC takes the encoding load.
But even then nowadays a lot of people moved on from that since you can use your GPU for encoding (Nvidia NVENC) which almost has 0% overhead and providing the same or slightly worse quality. Really OBS x264 should be only used for offline video recording say for a Youtube video
And at very high bitrates nvenc quality is just fine. It's mostly at the lower bitrates x264 really shines.
Of course for livestreaming there are different constraints.
You can see this effect in long streamathons/subathons as twitch automatically kills long streams so you’ll see multiday streams get cut up either manually by streamers or automatically by twitch every 24h or so, and the viewer count drops significantly and takes quite some time (many hours) to recover.
It also prevents driver crash caused by a video game to crash a stream.
Using the raw file output and/or termsvg type solutions do not work for TTE due to the huge amount of data being written to stdout.
https://docs.asciinema.org/manual/agg/
https://github.com/ChrisBuilds/terminaltexteffects
TTE reminds me of Compiz window manager from eons ago, the thing that got me to ditch Windows for Linux, except for the terminal.
Is there a way you can add something like TTE to tmux or vim as a screen saver or something that would trigger occasionally but not all the time? Do you pipe it? Make aliases?
How do you typically use it? What was your intent when you first wrote it, and what do you use it for now?
Keep it up!
Also this video has some 6 million views now: https://youtu.be/xC5uEe5OzNQ?si=GOvwOTHV-RVQnxWv . I remember watching it and being awed by the cube effect.
Coming from Windows XP, Compiz Fusion was nothing short of revolutionary. If Linux had a game ecosystem back then, it would have beaten the pants off of Windows. It was so much cooler than Windows.
I'm not a big vim user, but anywhere you can run a shell command, you should be able to run TTE. As long as ANSI control sequences are respected, the animation should play. TTE will accept piped text or a file input.
> How do you typically use it?
The most common invocation method is either piped text from some other command or passing a text file via command line arg. It also works as a library and can be imported into existing Python applications to produce animations and animated prompts.
> What was your intent when you first wrote it
A post here on HN featured an animation of the Sneakers terminal decryption effect and I thought, I can do that in Python. I wrote a handful of simple effects and really enjoyed the process of writing effects and upgrading the engine to support new features. The effect requirement -> engine feature loop is very satisfying. So, I keep working on it when I have free time.
> what do you use it for now?
It's really more of a toy, and the delay it causes requires some thought when using it, but I've had people reach out with some interesting use cases. Shell startup / SSH motd is pretty common. It can be imported and used as a library, so you may find it as a splash screen or animated prompts in scripts. A few people have shared examples of using it as an animation tool to create advertisements or background animation for electronic music displays. Framework computers recently tweeted a video of TTE running on boot for one of their laptops.
Eventually, I'd like to fully document the API from an effect writing perspective and produce some tutorials. I won't consider the project 'finished' until that happens. I don't want to abandon it before people are able to write their own effects.
I thought that was the role of Enlightenment [1] but I guess I'm just old. :)
[1]: https://www.enlightenment.org/
1: https://keeb.dev/static/login.mp4
Can't seek. Can't select text. And I get to use 15x the bandwidth I should have to load it.
Please. Stop. Please. It's gross to take beautifully compressable, seekable, accessible text, shove it into the absolute worst format possible for video, and then call that good.
If you must insist, please at least link to the raw asciinema, or their web viewer. So that I can load it in a fraction of the time, pause it, seek forward and backward, and copy-paste text. I know, I know, who would want any of that. Much better a GIF that loops so fast it's basically meaningless to anyone but the creator.
Whole process: https://www.pgschema.com/blog/demo-with-manus-and-asciinema Replay: https://manus.im/share/8fEln1OzxpnsRSU1PnHweG?replay=1
Speaking of which, an interesting thing to contemplate is if it is worth automating what you did, or if making the videos happens rarely enough that you'd start from scratch with a new manus or other ai session.
Not quite the same thing, but sometimes I find it easier if I just want to share a gif of a terminal.
Now we just need someone to develop ASCII-art vtuber avatars which overlay on top of the terminal.
But it's chugging along!
asciinema server is Elixir/Phoenix, runs on BEAM, and even with lots of connections and high CPU usage it serves request fine. Power of the BEAM. Phew.
Currently it runs on just 2 VMs, 2 GB of RAM each, so I will probably need to scale it up very soon anyway :)
Sure, not every site needs to run on a highly-available elastic cluster of nodes, but the alternative mindset of actively rejecting this architecture is arguably even more harmful.
A healthy deployment should be able to scale up and down easily, if not automatically. I wouldn't want to be woken up at 3am because prod1 needs a CPU/RAM/disk increase and a reboot, and the users wouldn't like that either.
why wouldn't you cap a free service? imo it's more irresponsible to demand other people keep a thing you don't pay for running just because you happen to depend on it.
Also, any service can have a financial purpose, even if it's "free" for users. This very forum is "free", yet the cost of hosting it is indirectly paid for by being an ad for the company that runs it. HN also famously runs on underpowered hardware that routinely fails to meet demand, but that is beside the point.
Is the service crashing and restarting?
https://docs.asciinema.org/history/
https://blog.asciinema.org/post/and-now-for-something-comple...
Most of the gripes about Go could've been apparent before a single line was written, with just some preliminary research. The packaging issues are valid for 2016, even though they are now resolved with Go modules.
Then the rewrites in ClojureScript, Elixir, and now Rust... Sheesh. All this tells me is that the authors are trend chasers rather than solid engineers, which erodes any trust I had in this project.
Eh. I think my takeaway would be more that this is the authors passion / side project that they use to test and learn new languages.
I’m not sure if you’re an asciinema user or not, but I am, and I’m happy to see the rewrite — it signals to me that the author is still passionate and invested in the project. And he added new features (live streaming) with the rewrite.
It’s people like you who make maintaining open source projects exhausting. Find a more worthwhile hill to die on.
First of all, nobody is on a vendetta or "dying" on any "hills" here... I'm just pointing out shoddy engineering as I see it.
Deciding to rewrite a project in another language rarely has any practical merits. If it's worth considering, then at the very least it should be thoroughly researched, and not done because the author "feels like it", as they've done multiple times already. If this was brought up in any technical meeting for a project with thousands of users, the person would be laughed out of the room, and for good reason. And, yet, because the project happens to be open source, it should be excused, or even celebrated? That is absurd.
The idea that providing the software gratis and with the freedoms to use and modify it should protect the authors from any criticism with how the project is managed is also absurd. Software should be held at the same levels of scrutiny regardless of its license or business model. There's always a contract between developers and users whether it is made explicit or implicit. Using a project with an established user base as your personal technical playground is irresponsible no matter how you look at it.
> And he added new features (live streaming) with the rewrite.
Ah, yes, I'm sure that would be impossible with any other language but Rust.
> It’s people like you who make maintaining open source projects exhausting.
And it's people like you who don't understand open source and only use it because they get something for "free". See? It's easy to villify someone without engaging with any of their arguments.
Well, what about motivation? If the author has left behind the original language and rewriting it provides them with motivation to continue then it's not "a testing playground", it's a viable way towards continued maintenance.
There are many ways to write code and maintain a project. Just because they don't align with your preferences doesn't make them shoddy.
But everyone is ignoring the bigger picture here: this project has been written in 5 different languages over the course of its existence, including reversing to a previously used language. That is an insane and unprecedented statistic. Changing a language even once is rarely done, let alone this many times.
> Just because they don't align with your preferences doesn't make them shoddy.
These are not my preferences. Avoiding total rewrites, especially in another language, is a core principle of software engineering, not unlike, I don't know... using testing and version control. Developers may choose to disregard it, but at the very least they should be challenged for it. The fact this person hasn't for such a long time is another signal that this project is mismanaged.
In any case, I'm done defending what would be an uncontroversial opinion in any other setting.
I don't understand why you're so hung up on the history of this project. If we were talking about software being used to send people to space I could see your point, but this is largely a single person project which is obviously being used to learn and have fun.
Why are you misrepresenting what I said? I never claimed that rewrites should always be avoided. But that in most cases they're not a good idea, for various reasons that should be obvious to most developers.
> I don't understand why you're so hung up on the history of this project.
I'm not hung up on this project at all. I have come across it, but I'm not a user. I simply stated an opinion that shouldn't be controversial at all, yet for some reason, I keep having to defend it. So it seems that it struck a nerve with fans of the project who would rather attack me personally than acknowledge the poor decisions made by its author.
> If we were talking about software being used to send people to space I could see your point
It's a very popular project that many projects depend on. Lives don't need to depend on it for it to be managed responsibly.
Anyway, I think we both have better things to do than waste anymore of our time on this discussion, so let's just drop it.
What's your problem?
That's precisely it :) I believe I’ve finally found the ones that work well both for me and the project.
Regarding the live streaming feature, I hacked a similar thing on top of s2.dev streams[1] (disclaimer: I am a co-founder), which could alleviate the need for a relay in this architecture[2]. Naturally showing off `btop` was the highlight for me as well :-D.
[1]: https://s2.dev/blog/s2-term [2]: https://docs.asciinema.org/manual/server/streaming/#architec...
My only wish is if asciinema natively supported saving into svg or gif. This would allow you to easily add it to markdown files without the need to install side apps to convert the output to those formats.
If you want to see how Asciinema looks when people are troubleshooting Linux systems: https://replay.sadservers.com/
Congrats on shipping.
1 more comments available on Hacker News