Terminal session recorder, streamer and player 📹
  • Rust 91.7%
  • Shell 6.3%
  • HTML 0.9%
  • Nix 0.8%
  • Dockerfile 0.3%
Find a file
2026-04-16 15:42:02 +02:00
.cargo Use 1 thread for tests to prevent signal handler clashes in pty tests 2024-01-09 16:35:18 +01:00
.github Stop dependency churn 2025-11-22 22:18:23 +01:00
assets Upgrade player to the latest version 2026-03-01 16:08:03 +01:00
src Replace qualified path with use 2026-04-16 15:42:02 +02:00
tests Add integration test for the play command 2026-02-11 20:56:33 +01:00
.gitattributes Tell GH linguist that asciinema-player assets are vendored 2024-05-07 11:26:28 +02:00
.gitignore git ignore nix build result symlink 2024-04-20 14:20:41 +02:00
build.rs Remove unnecessary use 2024-05-23 21:38:01 +02:00
Cargo.lock Bump version 2026-03-01 15:55:39 +01:00
Cargo.toml Bump version 2026-03-01 15:55:39 +01:00
CHANGELOG.md Update the changelog 2026-03-01 16:23:16 +01:00
CONTRIBUTING.md Remove pre-commit hook info and PGP section from the contribution guidelines 2025-10-29 14:33:01 +01:00
default.nix Remove legacy darwin stubs from the nix package 2025-10-24 08:13:43 +02:00
Dockerfile Fix Dockerfile 2025-10-24 15:54:33 +02:00
flake.lock Update flake inputs 2026-03-01 15:54:10 +01:00
flake.nix Reorganize flake structure 2025-10-13 20:54:06 +02:00
LICENSE Switch to GPLv3 2014-11-15 17:42:04 +01:00
README.md Fix image link 2025-11-19 16:14:22 +01:00
shell.nix Add rustfmt to dev shell's cargo 2026-04-16 15:37:57 +02:00

asciinema

Build Status license

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.

asciinema CLI demo

Notable features:

  • recording and replaying of sessions inside a terminal,
  • local and remote live streaming of terminal sessions to multiple viewers in real-time,
  • lightweight recording format, which is highly compressible (down to 15% of the original size e.g. with zstd or gzip),
  • integration with asciinema server, e.g. asciinema.org, for easy recording hosting and live streaming.

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.

Building

Building asciinema from source requires the Rust compiler (1.82 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 in one go 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 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.

Development

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.

If you wish to propose non-trivial code changes, please first reach out to the team via forum, Matrix or IRC.

Donations

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:

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.