Skip to content

Repository files navigation

asciinema server

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.

Development

To work on the server, first download the source code:

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

The 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 develop

If 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.

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 hosting, maintenance or customization of asciinema server, check asciinema consulting services.

Copyright

© 2011 Marcin Kulik.

All code is licensed under the Apache License, Version 2.0. See LICENSE file for details.

About

Platform for hosting and sharing terminal session recordings

Topics

Resources

Contributing

Stars

2.5k stars

Watchers

38 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages