asciinema server is a server-side component of the asciinema ecosystem.
It implements a hosting platform for terminal session recordings and live streaming. It offers a familiar web interface for viewing, browsing, sharing and managing recordings and streams. This includes HTTP API, which is used by the asciinema CLI.
The server is built with Elixir language and Phoenix framework. It embeds asciinema's virtual terminal, avt, which is utilized by tasks such as preview generation, recording analysis and live stream state bookkeeping.
asciinema.org is a public asciinema server instance managed by the asciinema project team, providing free hosting for terminal recordings and streams, available to everyone. Check asciinema.org/about to learn more about this instance.
You can easily self-host asciinema server and use the asciinema CLI with your own instance. If you're not comfortable with hosting your data at asciinema.org, if your company policy prevents you from doing so, or if you simply prefer self-hosting everything, then asciinema has you covered.
Notable features:
- hosting of terminal session recordings in asciicast format,
- live streaming of terminal sessions,
- perfectly integrated asciinema player for best viewing experience,
- full-text search using recording titles, descriptions, and full terminal session content,
- easy sharing of recordings via secret links,
- easy embedding of the player, or linking via preview images (SVG),
- privacy friendly - no tracking, no ads,
- visibility control for recordings and streams: private, unlisted, or public,
- editable recording/stream metadata like title or long description (Markdown),
- configurable terminal themes and font families,
- download of plain text transcripts (
.txt) of a recordings.
Refer to asciinema server docs for further details.
To work on the server, first download the source code:
git clone https://github.com/asciinema/asciinema-server
cd asciinema-serverThe recommended way to get the toolchain is the Nix dev shell, which provides everything needed (Elixir, Node.js, Rust, and supporting tools) and just works:
nix developIf you don't use Nix, you need Elixir (1.19 or later), Erlang/OTP (28 or later), Node.js, and the Rust toolchain (used for the native NIFs).
Either way, a running PostgreSQL server is required.
Then run mix setup to install dependencies, set up the database and build
assets, just serve (or iex -S mix phx.server) to start the server, and
mix test to run the tests.
If you'd like to propose or submit any changes, please read the contribution guidelines first.
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:
If you're interested in hosting, maintenance or customization of asciinema server, check asciinema consulting services.
© 2011 Marcin Kulik.
All code is licensed under the Apache License, Version 2.0. See LICENSE file for details.