Skip to content

Releases: asciinema/asciinema-server

20260207

07 Feb 11:15

Choose a tag to compare

Highlights

  • new Explore page (/explore), showing live and upcoming streams plus popular and recent recordings, with sub-pages for browsing full lists
  • new user profile page, showing live and upcoming streams and recent recordings, with sub-pages for browsing full lists
  • improved view counting - now a view is counted after the playback starts instead of on page load
  • new recording popularity algorithm based on weighted daily view counts from last 90 days
  • improved performance of all pages showing a recordings list
  • fixed user links in admin panel
  • added visibility badges to a user's own streams
  • changed profile path for temporary users (owners of unclaimed uploads) from /u/<id> to ~user:<id>
  • fixed race condition in the local file store impl when multiple processes attempted to write to the same path
  • various UI tweaks
  • housekeeping: moved full-text-search columns to separate db table; db index cleanup; etc.
  • lots of new unit and feature tests

Upgrading

No manual changes needed other than bumping the container image version number as shown here.

20260114

14 Jan 15:39

Choose a tag to compare

This release is quite packed, including several new features and tons of improvements.

Highlights

  • replaced Bootstrap 4 with a simpler, custom CSS setup
  • replaced Source Sans Pro and Fira Code with Fira Sans and JetBrains Mono as UI fonts
  • replaced TTF with WOFF2 for all fonts
  • added Share button to the stream page
  • implemented email address verification when changing account's email
  • added time zone setting to user accounts
  • added schedule setting to streams (see below)
  • upgraded asciinema player
  • implemented Nerd Font symbols support in SVG previews
  • fixed special chars (e.g. shaded blocks) rendering in uncropped SVG previews
  • added "Render bold text with bright colors" option to accounts, recordings and streams (see below)
  • added copy-to-clipboard button for URLs and command snippets
  • shortened length of the secret token for new recordings to 16 characters (matches streams now)
  • improved readability of the /about page
  • added login links for user pages in the admin panel (see below)
  • various other tweaks, refactorings and cleanups

Stream scheduling

Streams can now be scheduled, by setting a cron expression in stream settings. A scheduled stream is a good way to inform the audience about stream's next start time. Scheduled streams are displayed on user profile in the "Upcoming streams" section, presenting a countdown timer both on the thumbnail and on the stream page (below the player).

Screenshot From 2026-01-14 16-37-51

The new time zone setting in user account has been added to support this feature.

New "Render bold text with bright colors" option

The new boldIsBright option of recently released asciinema player 3.14.0 has been surfaced via a checkbox on user/recording/stream settings pages. It allows enabling boldIsBright in the player, which renders bold text in bright colors. This is off by default as modern terminal emulators also default to off.

Login link display in admin panel

The user page in admin panel now displays a short-lived login link for a given user. This is particularly useful for non-public single-user instances, allowing easy login without setting up SMTP.

Upgrading

No manual changes needed other than bumping the container image version number as shown here.

20251114

14 Nov 20:38

Choose a tag to compare

Notable changes

  • Full-text search
  • Recording files created from live streams now use millisecond precision for time
  • Background jobs are now pruned from the database 1 hour after completion (before it was 1 week)
  • Improved (stricter) validation for uploaded asciicast files
  • New location for uploads inside container (see Upgrading section below)

Full-text search

There's a new search box in the top navigation bar, which lets you search recordings by title, description, and full terminal session content. You can check it out on asciinema.org.

The search is powered by PostgreSQL's native FTS engine. For syntax check the search tips - there's a link on the right side of the search results page.

The results contain public recordings, and if you're logged in you'll also be able to find your own recordings, including unlisted and private ones.

Upgrading

If you're using local filesystem for file storage (if you don't use S3 or S3-compatible object store then you are using local filesystem) then it's recommended to change the volume mapping from <host-path>:/var/opt/asciinema to <host-path>:/var/lib/asciinema. The old one will still work for the foreseeable future but it's now considered deprecated and may eventually stop being supported.

Other than that just bump the container image version number as shown here.

20251013

13 Oct 10:04

Choose a tag to compare

Notable changes

  • integrated asciinema player's new audio playback for recordings and streams
  • fixed crash in stream consumer socket for stale session cookie

New Audio URL setting for a recording:

Screenshot From 2025-10-13 12-05-15

New Audio URL setting for a stream:

Screenshot From 2025-10-13 12-05-44

Upgrading

No manual changes needed other than bumping the container image version number as shown here.

20250923

23 Sep 13:25

Choose a tag to compare

Notable changes

  • updated CLI links to point to the latest release (3.0)
  • added mail headers for suppressing auto-replies to the login emails
  • changed the schedule for recording file migration job from daily to once on boot
  • fixed UPLOAD_SIZE_LIMIT config option

Upgrading

No manual changes needed other than bumping the container image version number as shown here.

20250915

15 Sep 15:16

Choose a tag to compare

Notable changes

  • added support for asciicast v3 formatted stream on producer endpoint
  • graceful handling of upload-too-big errors
  • fixed marker serialization in live stream consumer endpoint
  • fixed authorization crash in consumer endpoint

Upgrading

No manual changes needed other than bumping the container image version number as shown here.

20250722

23 Jul 07:41

Choose a tag to compare

Notable changes

  • new HTTP API for management of recordings and streams
  • per-user stream limit now applies to live streams only, users can have any number of dead streams
  • when streaming with --title option the title is now set on the stream and used for stream recordings
  • added gruvbox-dark theme (thanks @hupfdule!)
  • uploads of recordings with invalid terminal size (cols or rows less than 1) are now rejected
  • upgraded the player and avt to latest versions
  • added audio URL attribute to recordings and streams (audio_url in the API), which will be used by the upcoming version of the player
  • fixed SMTP connection issues with TLS (#463, #464)
  • fixed oEmbed endpoint crash when looking up non-existing recordings
  • fixed duration calculation for very short (single-event) recordings
  • code cleanup, lots of new tests

Breaking changes

  • streaming related API endpoints used by asciinema CLI 3.0 RC3 (and earlier RCs) have been removed - if you use one of these RC versions then upgrade your CLI to the latest RC to be able to stream
  • DB name used in dev env has been changed from asciinema_development to asciinema_dev - run psql -U postgres asciinema_development and execute ALTER DATABASE asciinema_development RENAME TO asciinema_dev

Upgrading

No manual changes needed other than bumping the container image version number as shown here.

20250509

09 May 08:54

Choose a tag to compare

This is quite a significant release with lots of good stuff!

Notable changes

Highlights:

  • added support for asciicast v3 recording format
  • added new stream management page (/user/streams), accessible from the profile page and the session dropdown menu
  • added basic user management and background job introspection to the admin endpoint
  • recording and stream pages now use a background color matching terminal background color (darker shade of it) for greater immersion
  • added "Past recordings" section to the stream page (see STREAM_RECORDING below)
  • added terminal version info (from XTVERSION query) to the recording and stream pages
  • improved the onboarding instructions on new user's profile page
  • new config option UPLOAD_AUTH_REQUIRED, to require authentication for all uploads
  • new config option UPLOAD_PATH_TPL, which allows using a custom directory structure for uploaded recordings (see Breaking changes section below)
  • new config option STREAM_RECORDING, which lets saving all streams into regular recordings
  • new config options DEFAULT_RECORDING_VISIBILITY / DEFAULT_STREAM_VISIBILITY, for setting default recording/stream visibility (overridable by user-level setting)
  • new config options DEFAULT_STREAMING_ENABLED / DEFAULT_STREAM_LIMIT, for enabling/disabling streaming for new users (overridable by admin-only user-level setting)

Improvements to live streaming:

  • leaner streaming protocol - uses delta coding for timestamps, LEB128 encoding for all integers
  • implemented WebSocket subprotocol negotiation for stream producer and consumer endpoints for future-proofing / backward compat
  • more robust handling of stream producer (re)connections

Other changes:

  • upgraded the player and avt to latest versions
  • upgraded compilers used for Docker build - Elixir version to 1.18, Erlang/OTP to 26.2, Rust to 1.83

... and tons of other improvements and fixes.

Breaking changes

In relation to the new UPLOAD_PATH_TPL config option, the default upload path for recordings in the file store have changed in this release:

previous: asciicasts/{shard}/{id}.{ext}
new: recordings/{username}/{year}/{month}/{day}/{id}.{ext}

For example:

previous: asciicasts/09/72/12790.cast
now: recordings/ku1ik/2025/04/04/12790.cast

This is a breaking change only if you were accessing the recording files directly and assuming the old directory structure. If you didn't then there's nothing to worry about. The files are automatically migrated via a background job, which runs daily, so there's no need to manually move anything.

Upgrading

No manual changes needed other than bumping the container image version number as shown here.

20241103

03 Nov 15:36

Choose a tag to compare

Notable changes

  • upgraded the player and avt to latest versions
  • disabled auto-update (at runtime) of timezone database file used by tzdata library, fixing deployment to read-only filesystems (re #453)
  • updated link to the latest CLI RC pre-release binary on the live stream page
  • updated live stream API endpoint path/method, needed for recent changes in the upcoming CLI 3.0
  • UI tweaks

Upgrading

No manual changes needed other than bumping the container image version number as shown here.

20240627

27 Jun 20:27

Choose a tag to compare

Notable changes

  • new identicons based avatars (see below)
  • redesigned the filtering and sorting on the Explore page, for better use of horizontal space
  • improved the iframe embed: matching background color, smarter margin, better footer text look
  • upgraded the player and avt to the latest version - fixes rendering of RGB colors recorded on certain terminals (Kitty, WezTerm)
  • fixed centering of the logo in embeddable SVG previews

The new identicons avatars are now used by default, replacing previously used gravatar.com. Shout out to @waseigo for his awesome identicon Elixir library.

This change was made to make asciinema server less dependent on 3rd party services. In fact, as of this release, asciinema server doesn't depend on any 3rd party (other than a SMTP server), and is a 100% local and self-contained service.

New DEFAULT_AVATAR configuration variable can be used to select avatar implementation, accepting the following values:

  • identicon (default)
  • gravatar

Upgrading

If you wish to keep using gravatar.com then set DEFAULT_AVATAR=gravatar environment variable.

Beside that, no manual changes are needed, other than bumping the container image version number as shown here.