MCPcopy Index your code
hub / github.com/LegNeato/asciinema-rs

github.com/LegNeato/asciinema-rs @v0.5.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.1 ↗ · + Follow
188 symbols 355 edges 31 files 3 documented · 2% updated 2y agov0.5.1 · 2018-11-07★ 9021 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

asciinema-rs

Build Status

A reimplementation of the asciinema command line program written in Rust.

Installation

Prebuilt asciinema binaries can be downloaded from GitHub releases. There are no dependencies and the binary can be run directly once downloaded.

(asciinema is not available on crates.io due to https://github.com/rust-lang/cargo/issues/1565).

Usage

This program intends be a drop-in replacement for the official asciinema python client program. Accordingly, the official documentation serves as documentation for this version as well. If you find behavior differences, please file an issue.

# Record terminal and upload it to asciinema.org:
asciinema rec

# Record terminal to local file:
asciinema rec demo.cast

# Record terminal and upload it to asciinema.org, specifying title:
asciinema rec -t "My git tutorial"

# Record terminal to local file, limiting idle time to max 2.5 sec:
asciinema rec -i 2.5 demo.cast

Example

Below is an example recording where the program records itself.

Feature Parity

We are not yet at 100% parity with the official binary. This project welcomes contributors and is a great project for Rust beginners. Please contribute!

Record (asciinema rec)

  • [x] Record stdout
  • [x] Record stdin via --stdin
  • [x] Upload to remote server
  • [x] Save to local file
  • [ ] [Prompt for where to save after recording]issue.5
  • [x] Append to output via --append
  • [x] Save only raw stdout output via --raw
  • [x] --overwrite
  • [ ] [Run a command via --command]issue.3
  • [x] By default capture SHELL and TERM environment variables
  • [ ] [Specify environment variables to capture via --env]issue.8
  • [x] Set a title via --title
  • [x] Set an idle limit via --idle-time-limit
  • [ ] [Answer yes to all prompts via --yes]issue.9
  • [ ] [Quiet output via --quiet]issue.10

Auth (asciinema auth)

  • [x] Authenticate via an install-id

Upload (asciinema upload)

  • [x] Upload saved asciicast session

Play (asciinema play)

  • [x] Play from local file
  • [x] Play from remote url
  • [ ] [Play from asciicast page url]issue.24
  • [ ] [Play from stdin]issue.25
  • [ ] [Play from ipfs]issue.26
  • [ ] [Pause playback via SPACE]issue.27
  • [ ] [Step through a frame via .]issue.28
  • [ ] [Exit playback via CTRL+C]issue.29
  • [x] Limit replayed terminal inactivity via --idle-time-limit
  • [x] Adjust playback speed via --speed

Cat (asciinema cat)

  • [x] Support for local files
  • [x] Support for remote files

License

asciinema is licensed under either of the following, at your option:

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)

Note that the reference python implementation is licensed under GPLv3. This program is developed without looking at or using any of the code.

Extension points exported contracts — how you extend this code

PtyHandler (Interface)
(no doc) [4 implementers]
pty-shell/src/lib.rs
Output (Interface)
(no doc) [3 implementers]
src/output_formats/mod.rs
PtyShell (Interface)
(no doc) [1 implementers]
pty-shell/src/lib.rs

Core symbols most depended-on inside this repo

validate_output_path
called by 7
src/commands/record.rs
get_mock_settings
called by 6
src/commands/record.rs
get_elapsed_seconds
called by 5
src/clock.rs
go
called by 5
src/commands/play.rs
exec
called by 4
pty-shell/src/lib.rs
proxy
called by 4
pty-shell/src/lib.rs
from_fd
called by 4
pty-shell/src/winsize.rs
restore_termios
called by 4
pty-shell/src/terminal.rs

Shape

Function 72
Method 70
Class 27
Enum 16
Interface 3

Languages

Rust100%

Modules by API surface

src/commands/record.rs22 symbols
pty-shell/src/lib.rs21 symbols
src/settings/config.rs13 symbols
src/session.rs12 symbols
src/api.rs12 symbols
src/output_formats/mod.rs11 symbols
pty-shell/src/raw_handler.rs10 symbols
src/settings/mod.rs9 symbols
src/clock.rs9 symbols
src/output_formats/raw.rs8 symbols
src/output_formats/asciicast.rs8 symbols
src/uploader.rs6 symbols

For agents

$ claude mcp add asciinema-rs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page