Download Latest Version v3.0.0-rc.5 source code.tar.gz (180.8 kB)
Email in envelope

Get an email when there's a new version of asciinema

Home / v3.0.0-rc.4
Name Modified Size InfoDownloads / Week
Parent folder
asciinema-aarch64-apple-darwin 2025-05-07 11.2 MB
asciinema-aarch64-unknown-linux-gnu 2025-05-07 11.6 MB
asciinema-x86_64-unknown-linux-musl 2025-05-07 13.7 MB
asciinema-x86_64-apple-darwin 2025-05-07 12.4 MB
asciinema-x86_64-unknown-linux-gnu 2025-05-07 13.6 MB
README.md 2025-05-07 4.4 kB
v3.0.0-rc.4 source code.tar.gz 2025-05-07 171.2 kB
v3.0.0-rc.4 source code.zip 2025-05-07 198.7 kB
Totals: 8 Items   62.9 MB 0

This is the fourth release candidate version of the brand new asciinema CLI 3.0.

See the initial RC release notes for details about the major 3.0 changes.

Notable changes

  • New session command (see below)
  • New asciicast v3 file format, used as output format by default
  • Terminal version (queried via XTVERSION OSC query) is now saved in the recording file
  • convert command now support using - (dash) as stdin/stdout for input/output
  • cat command now outputs a file in a format matching the first input file, it also now requires at least 2 args
  • play command can now auto-resize a terminal (works on some terminals) when -r / --resize option used (thx @gnachman)
  • Renamed --tty-size option to --window-size
  • Implemented WebSocket subprotocol negotiation in the local stream server and when connecting to a remote asciinema server
  • Leaner streaming protocol - uses LEB128 encoding for all integers, and delta coding for timestamps
  • Better TLS handling, using OS certificate stores
  • Disabled Nagle's algorithm in the local HTTP server to reduce local streaming latency
  • Local stream web page now uses a background color matching terminal background color (darker shade of it) for greater immersion
  • Removal of the --filename option to rec command (see below)
  • Added logging and notifications for I/O errors during recording
  • Bumped MSRV (minimum supported Rust version) to 1.75
  • ... and lots of bug fixes

New session command

This new command is a more general and flexible version of asciinema rec and asciinema stream combined. It allows recording to a file and live streaming (both locally and remotely via asciinema server) at the same time.

$ asciinema session -h
Record and/or stream a terminal session

Usage: asciinema session [OPTIONS]

Options:
  -o, --output-file <PATH>
          Save the session in a file
  -f, --output-format <FORMAT>
          Output file format [default: asciicast-v3] [possible values: asciicast-v3, asciicast-v2, raw, txt]
  -l, --stream-local [<IP:PORT>]
          Stream the session via a local HTTP server
  -r, --stream-remote [<STREAM-ID|WS-URL>]
          Stream the session via a remote asciinema server
  -c, --command <COMMAND>
          Command to start in the session [default: $SHELL]
  -I, --rec-input
          Enable input (keys) recording
      --rec-env <VARS>
          Comma-separated list of env vars to capture [default: SHELL]
  -a, --append
          Append to an existing recording file
      --overwrite
          Overwrite output file if it already exists
  -t, --title <TITLE>
          Title of the recording
  -i, --idle-time-limit <SECS>
          Limit idle time to a given number of seconds
      --headless
          Headless mode, i.e. don't use TTY for input/output
      --window-size <COLSxROWS>
          Override terminal size for the session
      --log-file <PATH>
          Log file path
      --server-url <URL>
          asciinema server URL
  -q, --quiet
          Quiet mode, i.e. suppress diagnostic messages
  -h, --help
          Print help

Removal of --filename option

The ability to pass a directory name instead of a filename as the output path for asciinema rec was introduced in the previous RC release. It had a related --filename option which allowed configuring a filename template for when a given output path is a directory. The main use case in mind was automatic recording of terminal sessions (e.g. by putting asciinema rec ... into shell initialization file).

However everything you could express in the filename template is easily doable using shell's variable substitution when invoking asciinema rec. For example, instead of this with RC3:

asciinema rec /tmp --filename '{hostname}/{user}/%Y/%m/%d/%H-%M-%S-{pid}.cast

You can just do this with RC4:

asciinema rec /tmp/${HOSTNAME}/${USER}/$(date '+%Y/%m/%d/%H-%M-%S')-$$.cast

Given that it seems it's just not worth maintaining our own logic for this, and doing it in the shell is more flexible anyway.

Source: README.md, updated 2025-05-07