Repolode
asciinema

asciinema/asciinema-server

Self-hostable Phoenix/Elixir server for hosting, sharing, and live-streaming terminal session recordings in asciicast format.

Open-source alternative to:Asciinema.org

Stars
2,504
Forks
290
Open issues
9
Last commit
2 days ago

What is it?

asciinema server is the backend for the asciinema terminal recording ecosystem. It hosts recordings in the asciicast format and provides a web interface for viewing, browsing, sharing, and managing them, along with live streaming of terminal sessions. The HTTP API it exposes is what the asciinema CLI uses to upload and manage recordings.

The server is written in Elixir with the Phoenix framework and embeds the avt virtual terminal to generate previews, analyze recordings, and track live stream state. Full-text search covers titles, descriptions, and the terminal output itself. Recordings can be private, unlisted, or public, shared via secret links, embedded with the player, or linked as SVG preview images. Plain text transcripts can be downloaded.

A public instance is run at asciinema.org, and the server can be self-hosted for teams or organizations that need to keep their data in-house. Development requires Elixir, Erlang/OTP, Node.js, Rust, and PostgreSQL.

Key features

  • 01Hosts terminal recordings in the asciicast format
  • 02Live streaming of terminal sessions
  • 03Full-text search across titles, descriptions, and terminal output
  • 04Secret-link sharing and private, unlisted, or public visibility
  • 05Embeddable player and SVG preview images
  • 06Plain text transcript download

Use cases

  • Hosting a private, self-managed archive of terminal recordings for a team
  • Sharing command-line demos or tutorials with embedded players
  • Streaming a live terminal session to viewers
  • Serving as the backend for the asciinema CLI in an organization that cannot use a public host

Quick start

  1. 1

    Clone the source code from GitHub

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

    Enter the project directory

    cd asciinema-server
  3. 3

    Enter the Nix dev shell with all toolchains

    nix develop
  4. 4

    Install dependencies, set up the database and build assets

    mix setup

Things to know

  • Requires a running PostgreSQL server.
  • Development setup needs Elixir 1.19+, Erlang/OTP 28+, Node.js and Rust unless you use Nix.
  • Self-hosting requires setting up and maintaining your own server instance.

In collections

Topics

FAQ

What is asciinema-server?
Self-hostable Phoenix/Elixir server for hosting, sharing, and live-streaming terminal session recordings in asciicast format. asciinema server is the backend for the asciinema terminal recording ecosystem. It hosts recordings in the asciicast format and provides a web interface for viewing, browsing, sharing, and managing them, along with live streaming of terminal sessions. The HTTP API it exposes is what the asciinema CLI uses to upload and manage recordings.
Is asciinema-server free to use? What license does it have?
asciinema-server is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is asciinema-server still maintained?
Actively maintained. The last commit to asciinema-server was on Nov 6, 2026.
What can I use asciinema-server for?
Hosting a private, self-managed archive of terminal recordings for a team Sharing command-line demos or tutorials with embedded players Streaming a live terminal session to viewers Serving as the backend for the asciinema CLI in an organization that cannot use a public host
How do I install asciinema-server?
Clone the source code from GitHub: git clone https://github.com/asciinema/asciinema-server Enter the project directory: cd asciinema-server Enter the Nix dev shell with all toolchains: nix develop Install dependencies, set up the database and build assets: mix setup
Where can I get asciinema-server?
The source code and installation instructions are on GitHub: https://github.com/asciinema/asciinema-server

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects