{"id":4703,"date":"2025-09-23T07:08:00","date_gmt":"2025-09-22T22:08:00","guid":{"rendered":"https:\/\/matoken.org\/blog\/?p=4703"},"modified":"2025-09-23T07:24:41","modified_gmt":"2025-09-22T22:24:41","slug":"building-in-asciinema-3-0-and-raspberry-pi-armhf-environments","status":"publish","type":"post","link":"https:\/\/matoken.org\/blog\/2025\/09\/23\/building-in-asciinema-3-0-and-raspberry-pi-armhf-environments\/","title":{"rendered":"asciinema 3.0\u3068Raspberry Pi armhf\u74b0\u5883\u3067\u306e\u30d3\u30eb\u30c9"},"content":{"rendered":"<div id=\"preamble\">\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDg2Ni4wMjU0MDM3ODQ0Mzg3IDg2Ni4wMjU0MDM3ODQ0Mzg3Ij4KICA8ZGVmcz4KICAgIDxtYXNrIGlkPSJzbWFsbC10cmlhbmdsZS1tYXNrIj4KICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0id2hpdGUiLz4KICAgICAgPHBvbHlnb24gcG9pbnRzPSI1MDguMDEyNzAxODkyMjE5MzUgNDMzLjAxMjcwMTg5MjIxOTM1LCAyMDguMDEyNzAxODkyMjE5NCAyNTkuODA3NjIxMTM1MzMxNiwgMjA4LjAxMjcwMTg5MjIxOTI3IDYwNi4yMTc3ODI2NDkxMDciIGZpbGw9ImJsYWNrIj48L3BvbHlnb24+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxwb2x5Z29uIHBvaW50cz0iODA4LjAxMjcwMTg5MjIxOTQgNDMzLjAxMjcwMTg5MjIxOTM1LCA1OC4wMTI3MDE4OTIyMTk0NyAtMS4xMzY4NjgzNzcyMTYxNjAzZS0xMywgNTguMDEyNzAxODkyMjE5MTMgODY2LjAyNTQwMzc4NDQzODYiIG1hc2s9InVybCgjc21hbGwtdHJpYW5nbGUtbWFzaykiIGZpbGw9IiNkNDAwMDAiPjwvcG9seWdvbj4KICA8cG9seWxpbmUgcG9pbnRzPSI0ODEuMjE3NzgyNjQ5MTA3MSAzMzMuMDEyNzAxODkyMjE5NCwgMTM0LjgwNzYyMTEzNTMzMTY2IDUzMy4wMTI3MDE4OTIyMTk0IiBzdHJva2U9IiNkNDAwMDAiIHN0cm9rZS13aWR0aD0iOTAiPjwvcG9seWxpbmU+Cjwvc3ZnPgo=\" alt=\"asciinema logo red\" width=\"48\"><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u30bf\u30fc\u30df\u30ca\u30eb\u306e\u9332\u753b\u518d\u751f\u5171\u6709\u306a\u3069\u304c\u3067\u304d\u308b\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306easciinema\u306e3.0\u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u307e\u3057\u305f\uff0e<br \/>\n\u4eca\u56de\u306e\u30ea\u30ea\u30fc\u30b9\u306frust\u3067\u66f8\u304d\u76f4\u3055\u308c\uff0c<a href=\"https:\/\/docs.asciinema.org\/manual\/asciicast\/v3\/\">\u30d5\u30a1\u30a4\u30eb\u5f62\u5f0f\u3082\u65b0\u3057\u304f\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e(asciicast v3 file format)<\/a>\u307e\u305f\uff0c\u30bf\u30fc\u30df\u30ca\u30eb\u306e\u30a6\u30a7\u30d6\u306b\u3088\u308b\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u6a5f\u80fd\u3082\u4ed8\u304d\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/blog.asciinema.org\/post\/three-point-o\/\">3.0 \u00b7 asciinema blog<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/asciinema\/asciinema\/releases\/tag\/v3.0.0\">Release v3.0.0 \u00b7 asciinema\/asciinema<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<p><!--more--><\/p>\n<div class=\"paragraph\">\n<p>\u81ea\u5206\u306eDebian\u74b0\u5883\u3067\u306f\u30d1\u30c3\u30b1\u30fc\u30b8\u5ea6\u5c0e\u5165\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304c\uff0c\u51fa\u305f\u3070\u304b\u308a\u306a\u306e\u3067unstable\u3067\u30822.4.0\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ rmadison asciinema\nasciinema  | 2.0.2-2       | oldoldstable | source, all\nasciinema  | 2.2.0-1       | oldstable    | source, all\nasciinema  | 2.4.0-1       | stable       | source, all\nasciinema  | 2.4.0-1       | testing      | source, all\nasciinema  | 2.4.0-1       | unstable     | source, all<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Linux\u3067\u306fReleases\u30da\u30fc\u30b8\u306bx86_64, aarch64\u306e\u30d0\u30a4\u30ca\u30ea\u304c<a href=\"https:\/\/github.com\/asciinema\/asciinema\/releases\/tag\/v3.0.0\">\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059\uff0e<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_armhf\u3067\u306e\u30d3\u30eb\u30c9\">armhf\u3067\u306e\u30d3\u30eb\u30c9<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Raspberry Pi OS bookworm armhf\u74b0\u5883\u3067\u30d3\u30eb\u30c9\u3092\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u5c0e\u5165\u3057\u305fRust\u304c\u53e4\u3044\u3088\u3046\u3067\u3059\uff0crust 1.66\u4ee5\u964d\u304c\u5fc5\u8981\u305d\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ git clone https:\/\/github.com\/asciinema\/asciinema\n$ cd asciinema\n$ cargo build --release\n  :\nerror: package `toml v0.8.23` cannot be built because it requires rustc 1.66 or newer, while the currently active rustc version is 1.63.0\nEither upgrade to rustc 1.66 or newer, or use\ncargo update -p toml@0.8.23 --precise ver\nwhere `ver` is the latest version of `toml` supporting rustc 1.63.0<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4ee5\u4e0b\u306eManual installation\u304b\u3089armv7-unknown-linux-gnueabihf\u7248\u306erustup-init\u3092\u5165\u624b\u3057\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/rust-lang.github.io\/rustup\/installation\/other.html#manual-installation\">Other installation methods &#8211; The rustup book<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ wget https:\/\/static.rust-lang.org\/rustup\/dist\/armv7-unknown-linux-gnueabihf\/rustup-init\n    https:\/\/static.rust-lang.org\/rustup\/dist\/armv7-unknown-linux-gnueabihf\/rustup-init.sha256\n$ sha256sum --check rustup-init.sha256\n.\/rustup-init: OK\n$ chmod u+x .\/rustup-init<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>rustup-init\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u65b0\u3057\u3044rust\u3092\u5c0e\u5165\u3057\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ .\/rustup-init\n  :\nContinue? (y\/N) y\n1) Proceed with standard installation (default - just press enter)\n2) Customize installation\n3) Cancel installation\n&gt;1\n  :\ninfo: installing component 'rustfmt'\ninfo: default toolchain set to 'stable-armv7-unknown-linux-gnueabihf'\n\n  stable-armv7-unknown-linux-gnueabihf installed - rustc 1.90.0 (1159e78c4 2025-09-14)\n\n\nRust is installed now. Great!\n\nTo get started you may need to restart your current shell.\nThis would reload your PATH environment variable to include\nCargo's bin directory ($HOME\/.cargo\/bin).\n\nTo configure your current shell, you need to source\nthe corresponding env file under $HOME\/.cargo.\n\nThis is usually done by running one of the following (note the leading DOT):\n. \"$HOME\/.cargo\/env\"            # For sh\/bash\/zsh\/ash\/dash\/pdksh\nsource \"$HOME\/.cargo\/env.fish\"  # For fish\nsource $\"($nu.home-path)\/.cargo\/env.nu\"  # For nushell<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u78ba\u8a8d\u3057\u307e\u3059\uff0e\u6700\u8fd1\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u305f1.90.0\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ which cargo\n\/usr\/bin\/cargo\n$ \/usr\/bin\/cargo -V\ncargo 1.65.0\n$ ~\/.cargo\/bin\/cargo -V\nwarning: `\/home\/matoken\/.cargo\/config` is deprecated in favor of `config.toml`\nnote: if you need to support cargo 1.38 or earlier, you can symlink `config` to `config.toml`\ncargo 1.90.0 (840b83a10 2025-07-30)<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>rust 1.90.0\u3092\u4f7f\u3063\u3066\u518d\u5ea6asciinema\u3092build\u3057\u307e\u3059\uff0e\u4eca\u5ea6\u306f\u6210\u529f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ PATH=~\/.cargo\/bin:$PATH cargo build --release\n\n    Finished `release` profile [optimized] target(s) in 39m 49s<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>asciinema\u306eusage\u3068version\u3092\u78ba\u8a8d\uff0e3.0.0\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ target\/release\/asciinema\nTerminal session recorder, streamer, and player\n\nUsage: asciinema [OPTIONS] &lt;COMMAND&gt;\n\nCommands:\n  record   Record a terminal session [aliases: rec]\n  stream   Stream a terminal session\n  session  Record and stream a terminal session\n  play     Play back a terminal session\n  upload   Upload a recording to an asciinema server\n  auth     Authenticate this CLI with an asciinema server account\n  cat      Concatenate multiple recordings\n  convert  Convert a recording to another format\n  help     Print this message or the help of the given subcommand(s)\n\nOptions:\n  -q, --quiet    Quiet mode - suppress diagnostic messages\n  -h, --help     Print help (see more with '--help')\n  -V, --version  Print version\n\n$ target\/release\/asciinema --version\nasciinema 3.0.0<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_asciinema_30\u3092\u8a66\u3059\">asciinema 3,0\u3092\u8a66\u3059<\/h2>\n<div class=\"sectionbody\">\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u6a5f\u80fd\u3092\u8a66\u3059\">\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u6a5f\u80fd\u3092\u8a66\u3059<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u65b0\u6a5f\u80fd\u306e\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u6a5f\u80fd\u3092\u8a66\u3057\u307e\u3059\uff0e<br \/>\n\u30ed\u30fc\u30ab\u30eb\u3068\u30ea\u30e2\u30fc\u30c8\u304c\u9078\u3079\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ target\/release\/asciinema stream\nerror: the following required arguments were not provided:\n  &lt;--local [&lt;IP:PORT&gt;]|--remote [&lt;STREAM-ID|WS-URL&gt;]&gt;\n\nUsage: asciinema stream &lt;--local [&lt;IP:PORT&gt;]|--remote [&lt;STREAM-ID|WS-URL&gt;]&gt;\n\nFor more information, try '--help'.\n$ target\/release\/asciinema stream -h\nStream a terminal session\n\nUsage: asciinema stream [OPTIONS] &lt;--local [&lt;IP:PORT&gt;]|--remote [&lt;STREAM-ID|WS-URL&gt;]&gt;\n\nOptions:\n  -l, --local [&lt;IP:PORT&gt;]            Stream via the local HTTP server\n  -r, --remote [&lt;STREAM-ID|WS-URL&gt;]  Stream via remote asciinema server\n  -c, --command &lt;COMMAND&gt;            Command to start in the session [default: $SHELL]\n  -I, --capture-input                Enable input (keyboard) capture\n      --capture-env &lt;VARS&gt;           Comma-separated list of environment variables to capture\n                                     [default: SHELL]\n  -t, --title &lt;TITLE&gt;                Title of the session\n      --headless                     Headless mode - don't use the terminal for I\/O\n      --window-size &lt;COLSxROWS&gt;      Override session's terminal window size\n      --return                       Return the session's exit status\n      --log-file &lt;PATH&gt;              Log file path\n      --server-url &lt;URL&gt;             asciinema server URL\n  -q, --quiet                        Quiet mode - suppress diagnostic messages\n  -h, --help                         Print help (see more with '--help')\n\nExamples:\n\n  asciinema stream --local\n      Streams a shell session via the local HTTP server listening on an ephemeral port on 127.0.0.1\n\n  asciinema stream --local 0.0.0.0:8080\n      Streams via the local HTTP server listening on port 8080 on all network interfaces\n\n  asciinema stream --remote\n      Streams via an asciinema server for public viewing\n\n  asciinema stream -l -r\n      Streams both locally and remotely simultaneously\n\n  asciinema stream -r --command \"ping asciinema.org\"\n      Streams execution of the ping command\n\n  asciinema stream -r &lt;ID&gt; -t \"Live coding\"\n      Streams via a remote server, reusing the existing stream ID and setting the stream title<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u307e\u305a\u306f\u30ed\u30fc\u30ab\u30eb\u3092\u8a66\u3057\u307e\u3059\uff0e\u65e2\u5b9a\u5024\u3067\u306flocalhost\u3057\u304b\u4f7f\u3048\u306a\u3044\u3088\u3046\u306a\u306e\u3067lan\u5185\u3067\u4f7f\u3048\u308b\u3088\u3046\u306bip\u30a2\u30c9\u30ec\u30b9\u3068\u9069\u5f53\u306aport\u3092\u6307\u5b9a\u3057\u3066\u8d77\u52d5\u3057\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ target\/release\/asciinema stream --local 10.42.0.253:9999\n::: asciinema session started\n::: Live streaming at http:\/\/10.42.0.253:9999\n::: Press &lt;ctrl+d&gt; or type 'exit' to end\n$ ^d\nexit\n::: asciinema session ended<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u72b6\u614b\u3067\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067 <code>Live streaming at<\/code> \u306e\u5f8c\u308d\u306e\u30a2\u30c9\u30ec\u30b9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068asciinema\u7aef\u672b\u306e\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/matoken.org\/blog\/wp-content\/uploads\/2025\/09\/asciinema-stream-local.webp\" alt=\"asciinema stream local\"><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6b21\u306f\u30ea\u30e2\u30fc\u30c8\uff0e<br \/>\n\u521d\u56de\u306f\u8a8d\u8a3c\u304c\u5fc5\u8981\u3067\u3059\uff0eauth\u30b5\u30d6\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u305f\u3068\u304d\u306b\u8868\u793a\u3055\u308c\u308burl\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u8a8d\u8a3c\u3057\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ target\/release\/asciinema auth\nOpen the following URL in a web browser to authenticate this CLI with your asciinema.org user account:\n\nhttps:\/\/asciinema.org\/connect\/abc123de-f345-7890-1234-abc123def456\n\nThis will associate all recordings uploaded from this machine with your account (including past uploads), and enable public live streaming via asciinema.org.<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u30ea\u30e2\u30fc\u30c8\u30b5\u30fc\u30d0\u306f\u672a\u6307\u5b9a\u6642\u306e\u65e2\u5b9a\u5024\u3067\u306fasciinema.org\u304c\u5229\u7528\u3055\u308c\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ target\/release\/asciinema stream --remote\n::: asciinema session started\n::: Live streaming at https:\/\/asciinema.org\/s\/aBcDeFgHiJkLmNoP\n::: Press &lt;ctrl+d&gt; or type 'exit' to end<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u72b6\u614b\u3067\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067 <code>Live streaming at<\/code> \u306e\u5f8c\u308d\u306e\u30a2\u30c9\u30ec\u30b9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068asciinema.org\u3067\u7aef\u672b\u306e\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u95b2\u89a7\u306e\u307f\u3067\u3059\u304c\u30c7\u30e2\u306b\u3044\u3044\u611f\u3058\u305d\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_\u9332\u753b\u3068\u518d\u751f\">\u9332\u753b\u3068\u518d\u751f<\/h3>\n<div class=\"paragraph\">\n<p>\u4ee5\u524d\u306f\u9332\u753b\u6642\u306b\u30ea\u30e2\u30fc\u30c8\u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3068\u9332\u753b\u30d5\u30a1\u30a4\u30eb\u306f\u6d88\u3048\u3066\u3044\u307e\u3057\u305f\u304c\uff0casciinema 3.0\u3067\u306f\u30ed\u30fc\u30ab\u30eb\u306b\u30d5\u30a1\u30a4\u30eb\u304c\u6b8b\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e<br \/>\n\u307e\u305f\uff0c\u9332\u753b\u5f62\u5f0f\u3082asciicast v2, asciicast v3(default), raw, txt\u304b\u3089\u9078\u3079\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e\u57fa\u672c\u7684\u306b\u898f\u5b9a\u5024\u306easciicast v3\u5f62\u5f0f\u3067\u3044\u3044\u3067\u3057\u3087\u3046\u304c\uff0c\u30bb\u30eb\u30d5\u30db\u30b9\u30c8\u74b0\u5883\u306a\u3069\u3067v3\u975e\u5bfe\u5fdc\u306e\u5834\u5408\u306a\u3069\u306fv2\u5f62\u5f0f\u306b\u3059\u308b\u611f\u3058\u3067\u3057\u3087\u3046\u304b\uff0e\u3082\u3057v3\u3067\u9332\u753b\u3057\u305f\u3042\u3068v2\u304c\u5fc5\u8981\u3060\u3063\u305f(\u3082\u3057\u304f\u306f\u305d\u306e\u9006)\u306e\u5834\u5408\u3067\u3082\u5f8c\u8ff0\u306e\u5909\u63db\u30b3\u30de\u30f3\u30c9\u3067\u76f8\u4e92\u5909\u63db\u304c\u53ef\u80fd\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ target\/release\/asciinema rec -h                                                                                                                [4\/1462]\nRecord a terminal session\n\nUsage: asciinema record [OPTIONS] &lt;FILE&gt;\n\nArguments:\n  &lt;FILE&gt;  Output file path\n\nOptions:\n  -f, --output-format &lt;FORMAT&gt;   Output file format [default: asciicast-v3] [possible values:\n                                 asciicast-v3, asciicast-v2, raw, txt]\n  -c, --command &lt;COMMAND&gt;        Command to start in the session [default: $SHELL]\n  -I, --capture-input            Enable input (keyboard) capture\n      --capture-env &lt;VARS&gt;       Comma-separated list of environment variables to capture [default:\n                                 SHELL]\n  -a, --append                   Append to an existing recording file\n      --overwrite                Overwrite the output file if it already exists\n  -t, --title &lt;TITLE&gt;            Title of the recording\n  -i, --idle-time-limit &lt;SECS&gt;   Limit idle time to a given number of seconds\n      --headless                 Headless mode - don't use the terminal for I\/O\n      --window-size &lt;COLSxROWS&gt;  Override session's terminal window size\n      --return                   Return the session's exit status\n      --log-file &lt;PATH&gt;          Log file path\n  -q, --quiet                    Quiet mode - suppress diagnostic messages\n  -h, --help                     Print help (see more with '--help')\n\nExamples:\n\n  asciinema rec demo.cast\n      Records a shell session to a file\n\n  asciinema rec --command \"python script.py\" demo.cast\n      Records execution of a Python script\n\n  asciinema rec --idle-time-limit 2 demo.cast\n      Records with idle time capped at 2 seconds\n\n  asciinema rec --capture-input --title \"API Demo\" demo.cast\n      Records with keyboard input and sets a title\n\n  asciinema rec --append demo.cast\n      Continues recording to an existing file\n\n  asciinema rec demo.txt\n      Records as a plain-text log - output format inferred from the .txt extension<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u9332\u753b\u3057\u3066\u307f\u308b\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ target\/release\/asciinema rec hello-asciinema3.0.cast\n::: asciinema session started\n::: Recording to hello-asciinema3.0.cast\n::: Press &lt;ctrl+d&gt; or type 'exit' to end\n$\n$ ^d\nexit\n::: asciinema session ended\n::: Recorded to hello-asciinema3.0.cast<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u9332\u753b\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u518d\u751f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ target\/release\/asciinema play hello-asciinema3.0.cast\n::: Replaying session from hello-asciinema3.0.cast\n$\nexit\n::: Playback ended<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_\u9332\u753b\u30d5\u30a1\u30a4\u30eb\u306easciinema_org\u3078\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\">\u9332\u753b\u30d5\u30a1\u30a4\u30eb\u306easciinema.org\u3078\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9<\/h3>\n<div class=\"paragraph\">\n<p>asciicast v1, v2, v3\u5f62\u5f0f\u306e\u30d5\u30a1\u30a4\u30eb\u3092asciinema\u30b5\u30fc\u30d0\u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u307e\u3059\uff0e\u4eca\u56de\u306f\u65e2\u5b9a\u5024\u306easciinema.org\u3078\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ target\/release\/asciinema upload -h\nUpload a recording to an asciinema server\n\nUsage: asciinema upload [OPTIONS] &lt;FILE&gt;\n\nArguments:\n  &lt;FILE&gt;  The path to the asciicast recording file to upload, in a supported asciicast format (v1,\n          v2, or v3)\n\nOptions:\n      --server-url &lt;URL&gt;  asciinema server URL\n  -q, --quiet             Quiet mode - suppress diagnostic messages\n  -h, --help              Print help (see more with '--help')<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u9332\u753b\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3057\u3066\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u307e\u3059\uff0e\u6210\u529f\u3057\u305f\u3089\u5171\u6709url\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ target\/release\/asciinema upload hello-asciinema3.0.cast\nView the recording at:\n\n    https:\/\/asciinema.org\/a\/OyMKojer2JRgnQbICxZ14mmKC<\/pre>\n<\/div>\n<\/div>\n<div class=\"admonitionblock tip\">\n<table  class=\" table table-hover\" >\n<tr>\n<td class=\"icon\">\n<div class=\"title\">Tip<\/div>\n<\/td>\n<td class=\"content\">\n<div class=\"paragraph\">\n<p>\u5927\u304d\u306a\u30d5\u30a1\u30a4\u30eb\u306f\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3059\uff0easciinema server\u3092\u30bb\u30eb\u30d5\u30db\u30b9\u30c8\u3057\u305f\u308a\uff0casciinema player\u3092\u30bb\u30eb\u30d5\u30db\u30b9\u30c8\u3059\u308b\u3053\u3068\u3067\u5927\u304d\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u5171\u6709\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\uff0e<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_asciicast\u5f62\u5f0f\u306e\u5909\u63db\">asciicast\u5f62\u5f0f\u306e\u5909\u63db<\/h3>\n<div class=\"paragraph\">\n<p>asciinema 3.0\u3067\u30d5\u30a1\u30a4\u30eb\u5f62\u5f0f\u304casciicast v3\u306b\u306a\u308a\u307e\u3057\u305f\uff0e<br \/>\nconvert\u30b3\u30de\u30f3\u30c9\u3067asciicast v1, v2, v3\u3092\u76f8\u4e92\u306b\u5909\u63db\u53ef\u80fd\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e\u307e\u305f\uff0craw\u304b\u3089\u306easciicast\u5f62\u5f0f\u3078\u306e\u5909\u63db\u3082\u3067\u304d\u308b\u3088\u3046\u3067\u3059\uff0e\u4ee5\u524d\u306f\u5225\u306e\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30c4\u30fc\u30eb\u3092\u4f7f\u3063\u3066\u3044\u307e\u3057\u305f\u304casciinema\u30b3\u30de\u30f3\u30c9\u3060\u3051\u3067\u5b8c\u7d50\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ target\/release\/asciinema convert -h\nConvert a recording to another format\n\nUsage: asciinema convert [OPTIONS] &lt;INPUT&gt; &lt;OUTPUT&gt;\n\nArguments:\n  &lt;INPUT&gt;   The source recording to convert. Can be a local file path, HTTP(S) URL for remote files,\n            or '-' to read from standard input. Remote URLs allow converting recordings directly\n            from the web without need for manual downloading. Supported input formats include\n            asciicast v1, v2 and v3\n  &lt;OUTPUT&gt;  The output path for the converted recording. Can be a file path or '-' to write to\n            standard output\n\nOptions:\n  -f, --output-format &lt;FORMAT&gt;  Output file format [default: asciicast-v3] [possible values:\n                                asciicast-v3, asciicast-v2, raw, txt]\n      --overwrite               Overwrite the output file if it already exists\n  -q, --quiet                   Quiet mode - suppress diagnostic messages\n  -h, --help                    Print help (see more with '--help')\n\nExamples:\n\n  asciinema convert old.cast new.cast\n      Converts a recording to the latest asciicast format (v3)\n\n  asciinema convert demo.cast demo.txt\n      Exports a recording as a plain-text log - output format inferred from the .txt extension\n\n  asciinema convert --output-format raw demo.cast demo.txt\n      Exports as raw terminal output\n\n  asciinema convert -f txt demo.cast -\n      Exports as plain text to stdout\n\n  asciinema convert https:\/\/asciinema.org\/a\/569727 starwars.cast\n      Downloads a remote recording and converts it to the latest asciicast format (v3)<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5909\u63db\u3057\u3066\u307f\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"title\">asciicast v3\u304b\u3089v2\u3078\u5909\u63db<\/div>\n<div class=\"content\">\n<pre>$ target\/release\/asciinema convert --output-format asciicast-v2 hello-asciinema3.0.cast hello-asciinema3.0.v2.cast<\/pre>\n<\/div>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"title\">asciicast v2\u304b\u3089v3\u3078\u5909\u63db<\/div>\n<div class=\"content\">\n<pre>$ target\/release\/asciinema convert --output-format asciicast-v3 hello-asciinema3.0.v2.cast hello-asciinema3.0.v3.cast<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5909\u63db\u5f8c\u306e\u30d5\u30a1\u30a4\u30eb\u3092play\u30b3\u30de\u30f3\u30c9\u3067\u518d\u751f\u3057\u3066\u307f\u308b\u3068\u554f\u984c\u306a\u304f\u518d\u751f\u3067\u304d\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u304a\u308f\u308a\u306b\">\u304a\u308f\u308a\u306b<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>asciinema 3.0\u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u307e\u3057\u305f\uff0e\u6a19\u6e96\u3067\u30ed\u30fc\u30ab\u30eb\u306b\u9332\u753b\u30d5\u30a1\u30a4\u30eb\u304c\u6b8b\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u308a\uff0c\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u6a5f\u80fd\uff0c\u30d5\u30a1\u30a4\u30eb\u5f62\u5f0f\u5909\u63db\u6a5f\u80fd\u304c\u4fbf\u5229\u305d\u3046\u3067\u3059\uff0e<br \/>\n\u305d\u306e\u4ed6asciicast v3\u5f62\u5f0f\u306b\u5bfe\u5fdc\u3057\u305fplayer\u3082\u8a66\u3057\u3066\u307f\u305f\u3044\u3068\u3053\u308d\u3067\u3059\uff0e<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_see_also\">SEE ALSO<\/h2>\n<div class=\"sectionbody\">\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/matoken.org\/blog\/2015\/08\/13\/terminal-web-share-asciinema\/\">\u7aef\u672b\u64cd\u4f5c\u3092 Web \u3067\u5171\u6709\u51fa\u6765\u308b asciinema \u2013 matoken&#8217;s blog<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/matoken.org\/blog\/2024\/10\/21\/share-asciicast-format-files-with-asciinema-player\/\">asciicast\u5f62\u5f0f\u306e\u30d5\u30a1\u30a4\u30eb\u3092asciinema player\u3067\u5171\u6709\u3059\u308b \u2013 matoken&#8217;s blog<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u30bf\u30fc\u30df\u30ca\u30eb\u306e\u9332\u753b\u518d\u751f\u5171\u6709\u306a\u3069\u304c\u3067\u304d\u308b\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306easciinema\u306e3.0\u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u307e\u3057\u305f\uff0e \u4eca\u56de\u306e\u30ea\u30ea\u30fc\u30b9\u306frust\u3067\u66f8\u304d\u76f4\u3055\u308c\uff0c\u30d5\u30a1\u30a4\u30eb\u5f62\u5f0f\u3082\u65b0\u3057\u304f\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e(asciicast v3 file form [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[809,7,6,546,199],"tags":[853,408,854],"class_list":["post-4703","post","type-post","status-publish","format-standard","hentry","category-bookworm-raspberry-pi-os","category-debian-linux","category-linux","category-raspberry-pi-os","category-sid","tag-asciinema","tag-rust","tag-ttyrec"],"_links":{"self":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/4703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/comments?post=4703"}],"version-history":[{"count":2,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/4703\/revisions"}],"predecessor-version":[{"id":4710,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/4703\/revisions\/4710"}],"wp:attachment":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/media?parent=4703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/categories?post=4703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/tags?post=4703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}