mcpField
A
asciinema

asciinema

官方
github.com开发者工具17.9kasciinema1 天前更新
代码仓库访问官网

关于 asciinema

asciinema 将终端操作录制为纯文本文件,可以在任何地方播放和分享。支持嵌入到网页或生成视频,是制作教程和演示的理想工具。

主要功能

  1. 01将终端会话录制为文本格式
  2. 02播放和回放已录制的终端操作
  3. 03将录制内容分享到在线平台或嵌入网页

适用场景

  1. 01创建命令行工具和开源项目的演示视频
  2. 02编写包含可交互演示的技术文档
  3. 03记录和分享故障排查的完整过程

安装

选择你的系统或包管理器,复制命令到终端运行。

$
brew install asciinema

安装完成后运行asciinema --version确认安装成功。

命令示例

常用命令按使用顺序排列。

01
asciinema rec demo.cast
02
asciinema play demo.cast

详细介绍

asciinema

Build Status license

asciinema(又称 asciinema CLI 或 asciinema recorder)是一款用于录制和实时流式传输终端会话的命令行工具。

与典型的屏幕录制软件不同,后者会将屏幕的视觉输出录制为体积庞大的视频文件(.mp4、.mov),asciinema CLI 在终端中运行,将终端会话输出捕获为轻量级录制文件,采用 asciicast 格式(.cast),也可以实时向观看者直播。

录制内容可以在终端中回放、嵌入网页(使用 asciinema player),或发布到 asciinema server(例如 asciinema.org)以便进一步分享。实时流允许观看者实时观看终端会话。

asciinema 可在 GNU/Linux、macOS 和 FreeBSD 上运行。

asciinema CLI 演示

主要功能:

  • 将终端会话录制到文件,可选择捕获键盘输入 以及配置要捕获的环境变量,
  • 在终端中回放录制内容,支持调整速度、循环播放、限制空闲时间、逐步导航、在标记处暂停,以及可选的终端自动调整大小,
  • 将终端会话本地和远程实时流式传输给多个观看者,并支持内置 HTTP 服务和嵌入式网页播放器,供局域网或本地主机观看,
  • 组合会话:录制到文件的同时,本地和远程流式传输,
  • 轻量级 asciicast 录制格式,原生支持读取和写入 zstd 压缩(.zst)录制文件(平均大小为原始文件的 8%),
  • 将 asciicast v1/v2/v3 转换为 asciicast v2/v3、原始终端输出或纯文本,
  • 将多个录制文件拼接为一个,并自动调整时间,
  • 会话进行中的控制:通过可自定义按键绑定暂停/恢复捕获,并即时添加标记,
  • 捕获会话元数据,包括终端大小、终端主题、命令和标题,
  • 支持配置文件,可设置默认录制命令、捕获选项、播放速度、空闲时间限制、通知和按键绑定等,
  • 无头模式、可配置的终端窗口大小,以及退出状态传递,适用于脚本和 CI 友好的录制与流式传输,
  • 转换时支持 stdin/stdout,并支持从本地文件、stdin 或 HTTP(S) URL 回放,
  • 与 asciinema server 集成,例如 asciinema.org,支持上传、托管、远程实时流式传输、可自托管服务、可见性控制、描述和同步音频 URL。

要录制会话,请在 shell 中运行以下命令:

asciinema rec demo.cast

要通过内置 HTTP 服务流式传输会话,请运行:

asciinema stream -l

要通过中继(asciinema server)流式传输会话,请运行:

asciinema stream -r

请参阅入门指南,了解安装和使用概览。

构建

如需下载源代码、构建 asciinema 二进制文件并将其安装到 $HOME/.cargo/bin,只需运行:

cargo install --locked --git https://github.com/asciinema/asciinema

这需要 Rust 工具链(1.82 或更高版本)和 Cargo,可通过系统软件包管理器或 rustup 安装。

安装后,请确保 $HOME/.cargo/bin 位于 shell 的 $PATH 中。

或者,也可以从本地检出版本构建。首先下载源代码:

git clone https://github.com/asciinema/asciinema
cd asciinema

推荐使用 Nix 开发 shell 来获取工具链,它会提供所需的一切,开箱即用:

nix develop

如果不使用 Nix,则需要像上文所述安装 Rust 和 Cargo。

然后使用以下命令构建二进制文件:

cargo build --release

这会在 target/release/asciinema 生成二进制文件。你可以直接将该文件复制到 $PATH 中的某个目录。

要生成 man 手册页和 shell 补全文件,请将 ASCIINEMA_GEN_DIR 设置为存放这些文件的路径。例如:

ASCIINEMA_GEN_DIR=/foo cargo build --release

上述命令会构建二进制文件,并将 man 手册页放入 /foo/man/,将 shell 补全文件放入 /foo/completion/ 目录。

说明

目前不支持 Windows。请参阅 #467。 你可以改用 PowerSession。

开发

所有开发工作都在 develop 分支上进行。该分支包含当前一代(3.x)的 asciinema CLI,使用 Rust 编写。

上一代(2.x)使用 Python 编写,可在 python 分支中找到。

有关工具链设置和构建说明,请参阅构建。使用 cargo test 运行测试套件。

如果你想提出或提交更改,请先阅读贡献指南。

捐赠

asciinema 的持续发展依赖捐赠和赞助。

如果你喜欢这个项目,不妨成为个人支持者或企业赞助方。

asciinema 的赞助方:

咨询服务

如果你有兴趣根据自身需求集成或定制 asciinema,请查看 asciinema 咨询服务。

许可证

© 2011 Marcin Kulik。

所有代码均采用 GPL v3 或更高版本许可。详情请参阅 LICENSE 文件。

评论

支持 Markdown