Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/asciinema/asciinema-player
Web player for terminal session recordings
https://github.com/asciinema/asciinema-player
asciicast asciinema player recording terminal
Last synced: 3 days ago
JSON representation
Web player for terminal session recordings
- Host: GitHub
- URL: https://github.com/asciinema/asciinema-player
- Owner: asciinema
- License: apache-2.0
- Created: 2014-03-23T10:40:11.000Z (almost 11 years ago)
- Default Branch: develop
- Last Pushed: 2024-11-05T12:38:31.000Z (2 months ago)
- Last Synced: 2025-01-06T05:34:55.680Z (4 days ago)
- Topics: asciicast, asciinema, player, recording, terminal
- Language: JavaScript
- Homepage: https://docs.asciinema.org/manual/player/
- Size: 2.7 MB
- Stars: 2,686
- Watchers: 59
- Forks: 267
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# asciinema player
[![Build status](https://github.com/asciinema/asciinema-player/actions/workflows/build.yml/badge.svg)](https://github.com/asciinema/asciinema-player/actions/workflows/build.yml)
__asciinema player__ is a web player for terminal sessions recordings.
Unlike typical web _video_ players, which play heavyweight video files (`.mp4`,
`.mov`), asciinema player plays lightweight terminal session recordings in the
text-based [asciicast](https://docs.asciinema.org/manual/asciicast/v2/) format
(`.cast`), such as those produced by the [asciinema
recorder](https://docs.asciinema.org/manual/cli/).The player is built from the ground up with JavaScript and
[Rust](https://www.rust-lang.org/) ([WASM](https://webassembly.org/)), and is
available as [npm package](https://www.npmjs.com/package/asciinema-player) and a
[standalone JS
bundle](https://github.com/asciinema/asciinema-player/releases/latest).You can use it on any HTML page - in a project documentation, on a blog, or in a
conference talk presentation.It's as easy as adding a single line of Javascript code to your web page:
```javascript
AsciinemaPlayer.create('demo.cast', document.getElementById('demo'));
```Check out the [quick start
guide](https://docs.asciinema.org/manual/player/quick-start/) for basic setup
overview.You can see the player in action in [asciinema
documentation](https://docs.asciinema.org/manual/player/).Notable features:
* ability to copy-paste terminal content - it's just text after all!
* smooth, timing-accurate playback,
* [idle time optimization](https://docs.asciinema.org/manual/player/options/#idletimelimit) to skip periods of inactivity,
* [posters](https://docs.asciinema.org/manual/player/options/#poster),
* [markers](https://docs.asciinema.org/manual/player/markers/) for navigation or auto-pause,
* configurable [font families](https://docs.asciinema.org/manual/player/fonts/) and [line height](https://docs.asciinema.org/manual/player/options/#terminallineheight),
* [automatic terminal scaling](https://docs.asciinema.org/manual/player/options/#fit) to fit into container element in most efficient way,
* full-screen mode,
* [multiple color themes for standard 16 colors](https://docs.asciinema.org/manual/player/options/#theme) + support for 256 color palette and 24-bit true color (ISO-8613-3),
* [adjustable playback speed](https://docs.asciinema.org/manual/player/options/#speed),
* [looped playback](https://docs.asciinema.org/manual/player/options/#loop), infinite or finite,
* [starting playback at specific time](https://docs.asciinema.org/manual/player/options/#startat),
* [API for programmatic control](https://docs.asciinema.org/manual/player/api/),
* [keyboard shortcuts](https://docs.asciinema.org/manual/player/shortcuts/),
* [support for other recording formats](https://docs.asciinema.org/manual/player/parsers/) like ttyrec, typescript.## Building
Building asciinema player from source requires:
- [Node.js](https://nodejs.org/) and [npm](https://www.npmjs.com/),
- [Rust](https://www.rust-lang.org/) compiler (1.77 or later) and [Cargo package
manager](https://doc.rust-lang.org/cargo/).To build the project run:
git clone https://github.com/asciinema/asciinema-player
cd asciinema-player
rustup target add wasm32-unknown-unknown
npm install
npm run build
npm run bundleThis produces following output files:
- `dist/index.js` - ES module, to be `import`-ed in your JS bundle
- `dist/bundle/asciinema-player.js` - standalone player script, to be linked directly from a website
- `dist/bundle/asciinema-player.min.js` - minimized version of the above
- `dist/bundle/asciinema-player.css` - stylesheet, to be linked directly from a website or included in a CSS bundle## Donations
Sustainability of asciinema development relies on donations and sponsorships.
Please help the software project you use and love. Become a
[supporter](https://docs.asciinema.org/donations/#individuals) or a [corporate
sponsor](https://docs.asciinema.org/donations/#corporate-sponsorship).asciinema is sponsored by:
- [Brightbox](https://www.brightbox.com/)
- [DataDog](https://datadoghq.com/)## Consulting
If you're interested in integration or customization of asciinema player to suit
your needs, check [asciinema consulting
services](https://docs.asciinema.org/consulting/).## License
© 2011 Marcin Kulik.
All code is licensed under the Apache License, Version 2.0. See
[LICENSE](./LICENSE) file for details.