mirror of
https://github.com/asciinema/asciinema.git
synced 2025-12-16 03:38:03 +01:00
325 lines
8.3 KiB
Groff
325 lines
8.3 KiB
Groff
.\" Automatically generated by Pandoc 2.1.3
|
|
.\"
|
|
.TH "ASCIINEMA" "1" "" "Version 2.0.1" "asciinema"
|
|
.hy
|
|
.SH NAME
|
|
.PP
|
|
\f[B]asciinema\f[] \- terminal session recorder
|
|
.SH SYNOPSIS
|
|
.PP
|
|
\f[B]asciinema \-\-version\f[]
|
|
.PD 0
|
|
.P
|
|
.PD
|
|
\f[B]asciinema\f[] \f[I]command\f[] [\f[I]options\f[]] [\f[I]args\f[]]
|
|
.SH DESCRIPTION
|
|
.PP
|
|
asciinema lets you easily record terminal sessions and replay them in a
|
|
terminal as well as in a web browser.
|
|
.SH COMMANDS
|
|
.PP
|
|
asciinema is composed of multiple commands, similar to \f[C]git\f[],
|
|
\f[C]apt\-get\f[] or \f[C]brew\f[].
|
|
.PP
|
|
When you run \f[B]asciinema\f[] with no arguments help message is
|
|
displayed, listing all available commands with their options.
|
|
.SS rec [\f[I]filename\f[]]
|
|
.PP
|
|
Record terminal session.
|
|
.PP
|
|
By running \f[B]asciinema rec [filename]\f[] you start a new recording
|
|
session.
|
|
The command (process) that is recorded can be specified with
|
|
\f[B]\-c\f[] option (see below), and defaults to \f[B]$SHELL\f[] which
|
|
is what you want in most cases.
|
|
.PP
|
|
Recording finishes when you exit the shell (hit Ctrl+D or type
|
|
\f[C]exit\f[]).
|
|
If the recorded process is not a shell then recording finishes when the
|
|
process exits.
|
|
.PP
|
|
If the \f[I]filename\f[] argument is omitted then (after asking for
|
|
confirmation) the resulting asciicast is uploaded to
|
|
asciinema\-server (https://github.com/asciinema/asciinema-server) (by
|
|
default to asciinema.org), where it can be watched and shared.
|
|
.PP
|
|
If the \f[I]filename\f[] argument is given then the resulting recording
|
|
(called asciicast (doc/asciicast-v2.md)) is saved to a local file.
|
|
It can later be replayed with \f[B]asciinema play <filename>\f[] and/or
|
|
uploaded to asciinema server with \f[B]asciinema upload <filename>\f[].
|
|
.PP
|
|
\f[B]ASCIINEMA_REC=1\f[] is added to recorded process environment
|
|
variables.
|
|
This can be used by your shell's config file (\f[C]\&.bashrc\f[],
|
|
\f[C]\&.zshrc\f[]) to alter the prompt or play a sound when the shell is
|
|
being recorded.
|
|
.TP
|
|
.B Available options:
|
|
\
|
|
.RS
|
|
.TP
|
|
.B \f[C]\-\-stdin\f[]
|
|
Enable stdin (keyboard) recording (see below)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-append\f[]
|
|
Append to existing recording
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-raw\f[]
|
|
Save raw STDOUT output, without timing information or other metadata
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-overwrite\f[]
|
|
Overwrite the recording if it already exists
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-c,\ \-\-command=<command>\f[]
|
|
Specify command to record, defaults to \f[B]$SHELL\f[]
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-e,\ \-\-env=<var\-names>\f[]
|
|
List of environment variables to capture, defaults to
|
|
\f[B]SHELL,TERM\f[]
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-t,\ \-\-title=<title>\f[]
|
|
Specify the title of the asciicast
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-i,\ \-\-idle\-time\-limit=<sec>\f[]
|
|
Limit recorded terminal inactivity to max \f[C]<sec>\f[] seconds
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-y,\ \-\-yes\f[]
|
|
Answer \[lq]yes\[rq] to all prompts (e.g.\ upload confirmation)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-q,\ \-\-quiet\f[]
|
|
Be quiet, suppress all notices/warnings (implies \f[B]\-y\f[])
|
|
.RS
|
|
.RE
|
|
.RE
|
|
.PP
|
|
Stdin recording allows for capturing of all characters typed in by the
|
|
user in the currently recorded shell.
|
|
This may be used by a player (e.g.
|
|
asciinema\-player (https://github.com/asciinema/asciinema-player)) to
|
|
display pressed keys.
|
|
Because it's basically a key\-logging (scoped to a single shell
|
|
instance), it's disabled by default, and has to be explicitly enabled
|
|
via \f[B]\[en]stdin\f[] option.
|
|
.SS play <\f[I]filename\f[]>
|
|
.PP
|
|
Replay recorded asciicast in a terminal.
|
|
.PP
|
|
This command replays given asciicast (as recorded by \f[B]rec\f[]
|
|
command) directly in your terminal.
|
|
.PP
|
|
Following keyboard shortcuts are available:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
Space\ \-\ toggle\ pause,
|
|
\&.\ \-\ step\ through\ a\ recording\ a\ frame\ at\ a\ time\ (when\ paused),
|
|
Ctrl+C\ \-\ exit.
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Playing from a local file:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
asciinema\ play\ /path/to/asciicast.cast
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Playing from HTTP(S) URL:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
asciinema\ play\ https://asciinema.org/a/22124.cast
|
|
asciinema\ play\ http://example.com/demo.cast
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Playing from asciicast page URL (requires
|
|
\f[C]<link\ rel="alternate"\ type="application/x\-asciicast"\ href="/my/ascii.cast">\f[]
|
|
in page's HTML):
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
asciinema\ play\ https://asciinema.org/a/22124
|
|
asciinema\ play\ http://example.com/blog/post.html
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Playing from stdin:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
cat\ /path/to/asciicast.cast\ |\ asciinema\ play\ \-
|
|
ssh\ user\@host\ cat\ asciicast.cast\ |\ asciinema\ play\ \-
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Playing from IPFS:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
asciinema\ play\ dweb:/ipfs/QmNe7FsYaHc9SaDEAEXbaagAzNw9cH7YbzN4xV7jV1MCzK/ascii.cast
|
|
\f[]
|
|
.fi
|
|
.TP
|
|
.B Available options:
|
|
\
|
|
.RS
|
|
.TP
|
|
.B \f[C]\-i,\ \-\-idle\-time\-limit=<sec>\f[]
|
|
Limit replayed terminal inactivity to max \f[C]<sec>\f[] seconds
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-s,\ \-\-speed=<factor>\f[]
|
|
Playback speed (can be fractional)
|
|
.RS
|
|
.RE
|
|
.RE
|
|
.SS cat <\f[I]filename\f[]>
|
|
.PP
|
|
Print full output of recorded asciicast to a terminal.
|
|
.PP
|
|
While \f[B]asciinema play \f[] replays the recorded session using timing
|
|
information saved in the asciicast, \f[B]asciinema cat \f[] dumps the
|
|
full output (including all escape sequences) to a terminal immediately.
|
|
.PP
|
|
\f[B]asciinema cat existing.cast >output.txt\f[] gives the same result
|
|
as recording via \f[B]asciinema rec \-\-raw output.txt\f[].
|
|
.SS upload
|
|
.PP
|
|
Upload recorded asciicast to asciinema.org site.
|
|
.PP
|
|
This command uploads given asciicast (recorded by \f[B]rec\f[] command)
|
|
to asciinema.org, where it can be watched and shared.
|
|
.PP
|
|
\f[B]asciinema rec demo.cast\f[] + \f[B]asciinema play demo.cast\f[] +
|
|
\f[B]asciinema upload demo.cast\f[] is a nice combo if you want to
|
|
review an asciicast before publishing it on asciinema.org.
|
|
.SS auth
|
|
.PP
|
|
Link your install ID with your asciinema.org user account.
|
|
.PP
|
|
If you want to manage your recordings (change title/theme, delete) at
|
|
asciinema.org you need to link your \[lq]install ID\[rq] with
|
|
asciinema.org user account.
|
|
.PP
|
|
This command displays the URL to open in a web browser to do that.
|
|
You may be asked to log in first.
|
|
.PP
|
|
Install ID is a random ID (UUID
|
|
v4 (https://en.wikipedia.org/wiki/Universally_unique_identifier))
|
|
generated locally when you run asciinema for the first time, and saved
|
|
at \f[B]$HOME/.config/asciinema/install\-id\f[].
|
|
It's purpose is to connect local machine with uploaded recordings, so
|
|
they can later be associated with asciinema.org account.
|
|
This way we decouple uploading from account creation, allowing them to
|
|
happen in any order.
|
|
.PP
|
|
Note: A new install ID is generated on each machine and system user
|
|
account you use asciinema on, so in order to keep all recordings under a
|
|
single asciinema.org account you need to run \f[B]asciinema auth\f[] on
|
|
all of those machines.
|
|
.PP
|
|
Note: asciinema versions prior to 2.0 confusingly referred to install ID
|
|
as \[lq]API token\[rq].
|
|
.SH EXAMPLES
|
|
.PP
|
|
Record your first session:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
asciinema\ rec\ first.cast
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Now replay it with double speed:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
asciinema\ play\ \-s\ 2\ first.cast
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Or with normal speed but with idle time limited to 2 seconds:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
asciinema\ play\ \-i\ 2\ first.cast
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
You can pass \f[B]\-i 2\f[] to \f[B]asciinema rec\f[] as well, to set it
|
|
permanently on a recording.
|
|
Idle time limiting makes the recordings much more interesting to watch,
|
|
try it.
|
|
.PP
|
|
If you want to watch and share it on the web, upload it:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
asciinema\ upload\ first.cast
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
The above uploads it to <https://asciinema.org>, which is a default
|
|
asciinema\-server (<https://github.com/asciinema/asciinema-server>)
|
|
instance, and prints a secret link you can use to watch your recording
|
|
in a web browser.
|
|
.PP
|
|
You can record and upload in one step by omitting the filename:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
asciinema\ rec
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
You'll be asked to confirm the upload when the recording is done, so
|
|
nothing is sent anywhere without your consent.
|
|
.SH ENVIRONMENT
|
|
.TP
|
|
.B \f[B]ASCIINEMA_API_URL\f[]
|
|
This variable allows overriding asciinema\-server URL (which defaults to
|
|
https://asciinema.org) in case you're running your own asciinema\-server
|
|
instance.
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]ASCIINEMA_CONFIG_HOME\f[]
|
|
This variable allows overriding config directory location.
|
|
Default location is $XDG_CONFIG_HOME/asciinema (when $XDG_CONFIG_HOME is
|
|
set) or $HOME/.config/asciinema.
|
|
.RS
|
|
.RE
|
|
.SH BUGS
|
|
.PP
|
|
See GitHub Issues: <https://github.com/asciinema/asciinema/issues>
|
|
.SH AUTHORS
|
|
.PP
|
|
asciinema's lead developer is Marcin Kulik.
|
|
.PP
|
|
For a list of all contributors look here:
|
|
<https://github.com/asciinema/asciinema/contributors>
|
|
.PP
|
|
This Manual Page was written by Marcin Kulik with help from Kurt
|
|
Pfeifle.
|