Name | Modified | Size | Downloads / 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/outputcat
command now outputs a file in a format matching the first input file, it also now requires at least 2 argsplay
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 torec
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.