Web player for terminal session recordings and live streams
asciinema player
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 format (.cast), such as those produced by the asciinema recorder.
The player is built from the ground up with JavaScript and Rust (WASM), and is available as npm package and a standalone JS bundle.
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:
AsciinemaPlayer.create('demo.cast', document.getElementById('demo'));
Check out the quick start guide for basic setup overview.
You can see the player in action in asciinema documentation.
Notable features:
- ability to copy-paste terminal content - it's just text after all!
- smooth, timing-accurate playback,
- idle time optimization to skip periods of inactivity,
- posters,
- markers for navigation or auto-pause,
- configurable font families and line height,
- automatic terminal scaling to fit into container element in most efficient way,
- full-screen mode,
- keystroke overlay showing keys typed during the recording,
- multiple color themes for standard 16 colors + support for 256 color palette and 24-bit true color (ISO-8613-3),
- adjustable playback speed,
- looped playback, infinite or finite,
- starting playback at specific time,
- API for programmatic control,
- keyboard shortcuts,
- support for other recording formats like ttyrec, typescript.
Building
Building asciinema player from source requires:
- Node.js and npm,
- Rust compiler (1.77 or later) and Cargo package
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
This produces following output files:
dist/index.js- monolithic ES module, to beimport-ed in your JS bundledist/bundle/asciinema-player.js- standalone monolithic player script (IIFE), to be linked directly from a websitedist/bundle/asciinema-player.min.js- minimized version of the abovedist/bundle/asciinema-player.css- stylesheet, to be linked directly from a website or included in a CSS bundle
In addition, the split version of the player is built with npm run build, producing the following files:
dist/ui.js- UI ES module, to beimport-ed in your JS bundledist/bundle/asciinema-player-ui.js- standalone UI script (IIFE), to be linked directly from a websitedist/bundle/asciinema-player-ui.min.js- minimized version of the abovedist/bundle/asciinema-player-worker.js- standalone web worker script (IIFE), to be linked directly from a websitedist/bundle/asciinema-player-worker.min.js- minimized version of the above
Donations
Sustainability of asciinema development relies on donations and sponsorships.
Please help the software project you use and love. Become a supporter or a corporate sponsor.
asciinema is sponsored by:
Consulting
If you're interested in integration or customization of asciinema player to suit your needs, check asciinema consulting services.
License
ยฉ 2011 Marcin Kulik.
All code is licensed under the Apache License, Version 2.0. See LICENSE file for details.