14 releases

3.0.0-rc.3 Jun 26, 2024
3.0.0-rc.2 May 7, 2024
3.0.0-rc.1 Apr 17, 2024
3.0.0-beta.3 Feb 8, 2024
3.0.0-alpha.1 Oct 22, 2023

#473 in Command line utilities

GPL-3.0 license

375KB
4K SLoC

asciinema

Build Status license

asciinema (aka asciinema CLI or asciinema recorder) is a command-line tool for recording terminal sessions.

Unlike typical screen recording software, which records visual output of a screen into a heavyweight video files (.mp4, .mov), asciinema recorder runs inside a terminal, capturing terminal session output into a lightweight recording files in the asciicast format (.cast).

The recordings can be replayed in a terminal, embedded on a web page with the asciinema player, or published to an asciinema server, such as asciinema.org, for further sharing.

asciinema CLI demo

Notable features:

To record a session run this command in your shell:

asciinema rec demo.cast

To stream a session via built-in HTTP server run:

asciinema stream --serve

To stream a session via a relay (asciinema server) run:

asciinema stream --relay

Check out the Getting started guide for installation and usage overview.

Building

Building asciinema from source requires the Rust compiler (1.70 or later), and the Cargo package manager. If they are not available via your system package manager then use rustup.

To download the source code, build the asciinema binary, and install it in $HOME/.cargo/bin run:

cargo install --locked --git https://github.com/asciinema/asciinema

Then, ensure $HOME/.cargo/bin is in your shell's $PATH.

Alternatively, you can manually download the source code and build the asciinema binary with:

git clone https://github.com/asciinema/asciinema
cd asciinema
cargo build --release

This produces the binary in release mode (--release) at target/release/asciinema. You can just copy the binary to a directory in your $PATH.

To generate man pages and shell completion files, set ASCIINEMA_GEN_DIR to the path where these artifacts should be stored. For example:

ASCIINEMA_GEN_DIR=/foo cargo build --release

The above command will build the binary and place the man pages in /foo/man/, and the shell completion files in the /foo/completion/ directory.

[!NOTE] Windows is currently not supported. (See #467)

Development

This branch contains the next generation of the asciinema CLI, written in Rust (about the rewrite). It is still in a work-in-progress stage, so if you wish to propose any code changes, please first reach out to the team via forum, Matrix or IRC.

The previous generation of the asciinema CLI, written in Python, can be found in the main branch.

Donations

Sustainability of asciinema development relies on donations and sponsorships.

Please help the software project you use and love. Become a supporter or a corporate sponsor.

asciinema is sponsored by:

Consulting

If you're interested in integration or customization of asciinema to suit your needs, check asciinema consulting services.

License

© 2011 Marcin Kulik.

All code is licensed under the GPL, v3 or later. See LICENSE file for details.

Dependencies

~29–64MB
~1M SLoC