5 ms·
Asciinema CLI 3.0 rewritten in Rust, adds live streaming, upgrades file format
- el_don_almighty 1y agoI, for one, look forward to our new RUST overlords...
- simlevesque 1y agoThe live btop demo is really cool ! Congrats on shipping.
- ericdotlee 1y agoMy favorite elixir project of all time now written in Rust. 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.
- nixosbestos 1y ago> 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?
- telotortium 1y agoWhy would it be satire? Seems like a real use case
- ksherlock 1y agos/mysekretpassword/••••••••••••••••/g What about that should involve a large language model?
- telotortium 1y agoObviously the part that determines what part of the output might be a password or other sensitive value.
- nixosbestos 1y agoThreads like this want me to throw my laptop into a volcano and lobotomize myself. I have a bridge if you think an LLM can reliably generically redact passwords. Especially given the intersection of password quality and the type of person to let their passwords leak into output of a recorded terminal session. 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.
- data-ottawa 1y agoIt would be nice to censor my username from the prompt without changing my shell prompt. No idea if it does this already though.
- 1718627440 1y agoThe file format is just plain text, you can use sed to change the username.
- rererereferred 1y agoSome games have this feature called "streamer mode", where some text that would normally be on screen is removed, like username or party codes. Makes sense for a terminal to do the same for other sensitive data.
- kevincox 1y agoWould actually be nice to standardize an environment variable for this. Obviously not something that you should rely upon when running random tools but can be a nice failsafe.
- jen20 1y ago> My favorite elixir project of all time now written in Rust. It was written in Python before, no?
- ku1ik 1y agoThe CLI has been rewritten in Rust. The server is still Elixir/Phoenix - perfect for this feature.
- tanelpoder 1y agoAsciinema is one of the best products/tools I’ve ever used. I mean the auth/upload CLI flow is so straight to the point and easy to use, despite having to cross a few layers (yep I know other CLIs have something similar, it’s just that Asciinema has never “gotten in my way” when doing something with it)
- QuantumNomad_ 1y agoI’ve sometimes heard Twitch streamers mention that they use two computers for streaming. One is the computer you are seeing on stream, and the other computer is running OBS and using a HDMI capture device. 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.
- throawayonthe 1y agoi think the setup you describe is used primarily to offload video encoding to a second pc, not something programming streamers (not running graphically intensive games) probably need not concern themselves with it
- haunter 1y agoThat shouldn’t really matter for asciicinema streaming which 0 effect on any kind of performance. 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
- roganartu 1y agoAnother feature of this is that if your primary PC crashes, which happens sometimes especially with some games, your stream doesn’t go down too. This is more important for streams with more viewers and longer runtimes, as restarting the stream drops all the AFK viewers who may still be contributing ad revenue (or just boosting active viewer count which has other flow on benefits too). 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.
- x187463 1y agoAsciinema is awesome. I use it to capture all of the demos for TerminalTextEffects. Their Asciinema GIF Generator tool (AGG) produces high quality terminal recording GIFs by processing the asciicast file. This is the best solution I've found for producing short terminal recordings that can be shared in a README/docs as seen in the TerminalTextEffects repo/docs. 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://docs.asciinema.org/manual/agg/ https://github.com/ChrisBuilds/terminaltexteffects https://github.com/ChrisBuilds/terminaltexteffects
- echelon 1y agoI just wanted to say this is absolutely gorgeous. I don't know if I have a use for this, but I love it and please keep doing this. It's mesmerizing and beautiful. 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!
- aranelsurion 1y agoCompiz. Beryl. Compiz Fusion. Unlocks some fun memories. Also this video has some 6 million views now: https://youtu.be/xC5uEe5OzNQ?si=GOvwOTHV-RVQnxWv https://youtu.be/xC5uEe5OzNQ?si=GOvwOTHV-RVQnxWv . I remember watching it and being awed by the cube effect.
- echelon 1y agoThat's certainly a trip down memory lane... 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.
- fitsumbelay 1y agowhoa the live streaming is a game changing game changer no Twitch content pun intended (tho possibly maybe it was ...)
- jsheard 1y ago> introducing terminal live streaming Now we just need someone to develop ASCII-art vtuber avatars which overlay on top of the terminal.
- tracker1 1y agoMax Headroom v0.2
- alkh 1y agoThis is great, congrats for such a huge accomplishment! 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.
- renewiltord 1y agoWow nice release. Particularly impressive is the demo live stream of btop!
- ku1ik 1y agoasciinema.org is currently being hugged to death! The btop stream is from one of the servers, currently reporting 95% CPU usage: https://asciinema.org/s/olesiD03BIFH6Yz1 https://asciinema.org/s/olesiD03BIFH6Yz1 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 :)
- Yoric 1y agoLong live the BEAM!
- darkamaul 1y agoIn an age where everything is about clouds, it’s pretty amazing to see a high-profile service like this running smoothly on just a couple of 2 GB VMs. That’s less RAM than a mid-range laptop, and those machines struggle to run a modern browser.
- imiric 1y agoModern hardware in conjunction with smart software choices can be very capable, but it's pretty negligent to run a service people depend on with such limited resources. 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.
- phaer 1y agoSounds preferable compared to be woken up at 5 am by your cloud providers billing alert.
- arccy 1y ago> service people depend on 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.
- AbuAssar 1y agoAsciinema was previously written in python
- sensodine 1y agoI'm a huge fan of Asciinema, and this is awesome work. 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 https://s2.dev/blog/s2-term [2]: https://docs.asciinema.org/manual/server/streaming/#architecture https://docs.asciinema.org/manual/server/streaming/#architec...
- xyst 1y agoThe power of rust and proper architecture allows an underpowered 2 vCPU VM to stream contents to hundreds of people.
- anamexis 1y agoI think that would be the power of Elixir and the BEAM.
- wolttam 1y agoOh I think I will be having some fun with the streaming capability. Sweet!
- kincl 1y agoThe Asciinema clients have now gone from Python to Golang back to Python now to Rust https://docs.asciinema.org/history/ https://docs.asciinema.org/history/ https://blog.asciinema.org/post/and-now-for-something-completely-different/ https://blog.asciinema.org/post/and-now-for-something-comple...
- imiric 1y agoThat's... interesting. 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.
- nicoburns 1y ago> 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.
- ku1ik 1y ago> I think my takeaway would be more that this is the authors passion / side project that they use to test and learn new languages. That's precisely it :) I believe I’ve finally found the ones that work well both for me and the project.
- imiric 1y agoWhen a project has thousands of users it's irresponsible to use it as a testing playground. If there is a legitimate benefit from rewriting something in another language, which is rare to begin with, the decision should be researched thoroughly and committed to. Doing it this often signals that authors easily latch on to shiny new tech, and value their experience over their users'. When the next modern language comes along, will we see a similar post explaining why they chose to abandon Rust?
- fduran 1y agoI love Asciinema and have made a small contribution, support the project with a donation: https://docs.asciinema.org/donations/#individuals https://docs.asciinema.org/donations/#individuals If you want to see how Asciinema looks when people are troubleshooting Linux systems: https://replay.sadservers.com/ https://replay.sadservers.com/