asciinema/ asciinema
View on GitHubTerminal session recorder, streamer and player ๐น
Terminal session recorder, streamer and player ๐น
asciinema (aka asciinema CLI or asciinema recorder) is a command-line tool for recording and live streaming terminal sessions.
Unlike typical screen recording software, which records visual output of a
screen into a heavyweight video files (.mp4, .mov), asciinema CLI runs
inside a terminal, capturing terminal session output into a lightweight
recording files in the
asciicast format (.cast),
or streaming it live to viewers in real-time.
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. Live streams allow viewers to watch terminal sessions as they happen.
asciinema runs on GNU/Linux, macOS and FreeBSD.
Notable features:
.zst) recordings (8% of the original size
on average),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 -l
To stream a session via a relay (asciinema server) run:
asciinema stream -r
Check out the Getting started guide for installation and usage overview.
To download the source code, build the asciinema binary, and install it in
$HOME/.cargo/bin in one go run:
cargo install --locked --git https://github.com/asciinema/asciinema
This requires the Rust toolchain (1.82 or later) with Cargo, installed via your system package manager or rustup.
Once installed, ensure $HOME/.cargo/bin is in your shell's $PATH.
Alternatively, you can build from a local checkout. First download the source code:
git clone https://github.com/asciinema/asciinema
cd asciinema
The recommended way to get the toolchain is the Nix dev shell, which provides everything needed and just works:
nix develop
If you don't use Nix, you need Rust with Cargo, as above.
Then build the binary with:
cargo build --release
This produces the binary 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. You can try PowerSession instead.
All development happens on develop branch. This branch contains the current
generation (3.x) of the asciinema CLI, written in Rust.
The previous generation (2.x), written in Python, can be found in the python
branch.
For toolchain setup and build instructions, see Building. Run the
test suite with cargo test.
If you'd like to propose or submit any changes, please read the contribution guidelines first.
Sustainability of asciinema development relies on donations and sponsorships.
If you like the project then consider becoming a supporter or a corporate sponsor.
asciinema is sponsored by:
If you're interested in integration or customization of asciinema to suit your needs, check asciinema consulting services.
ยฉ 2011 Marcin Kulik.
All code is licensed under the GPL, v3 or later. See LICENSE file for details.
No comments yet. Set the tone โ say what you would want to know.