Asciinema Player

by Dinu Gherman
5
4
3
2
1
Score: 50/100

Description

Category: Note Enhancements

The Asciinema Player plugin lets you embed terminal session recordings directly into your notes. It renders asciicasts recordings made with the Asciinema command-line tool using an interactive player that supports playback controls, speed adjustments and keyboard shortcuts. You can reference local cast files stored in your vault or pull them from remote URLs. The player offers extensive customization through options like terminal dimensions, themes, auto-play, looping and poster frames. Chapter markers appear in the playbar when defined in the recording. Since the plugin bundles the entire player library internally rather than loading it from an external CDN, it works reliably offline without depending on external services.

Reviews

No reviews yet.

Stats

2
stars
176
downloads
0
forks
127
days
100
days
138
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

RequirementsExperimental

  • Asciinema CLI tool

Latest Version

5 months ago

Changelog

Changed title in README.md to comply with Obsidian rules.

README file from

Github

Asciinema Player Plugin for Obsidian

Build Release Plugin Version License Downloads Installs TypeScript Asciinema Demo See also Buy Me a Coffee

Plugin demo placeholder

This is an Obsidian plugin to embed terminal recordings made with Asciinema inside Markdown files. These recordings, also known as asciicasts, or shorter: casts, can then be rendered inside Obsidian notes with the interactive Asciinema Player UI. Many example recordings are available on Asciinema.org.

Installation

From Obsidian community plugins list

As a registered community plugin (see process here) you can install it as follows: open Obsidian settings, turn on community plugins if not done yet, browse community plugins, search "Asciinema Player", install and enable it.

Manual Installation

  1. Download the ready-to-use zipped archive from the latest releases page on GitHub (named after the plugin id and version tag e.g., obsidian-asciinema-player-1.0.5.zip).
  2. Unzip it.
  3. Move the extracted obsidian-asciinema-player folder into your vault's .obsidian/plugins folder.
  4. Then enable the plugin in the "Community Plugins" tab in Obsidian's settings, like when installing any registered community plugin. Example:
curl -O https://github.com/deeplook/obsidian-asciinema-player/releases/download/1.0.5/obsidian-asciinema-player-1.0.5.zip
unzip obsidian-asciinema-player-1.0.5.zip
mv obsidian-asciinema-player /path/to/your-vault/.obsidian/plugins/

Usage

Install asciinema and Create Recordings

To create your own asciicasts install the asciinema CLI tool and make some example recordings as described in the Asciinema Getting-Started documentation.

You can also download examples from Asciinema.org, e.g. https://asciinema.org/a/748822.cast and save them to some place in your Obsidian vault.

Embed Asciicasts into Obsidian Notes

To embed an asciicast into an Obsidian note, use a Markdown code block with the language identifier asciinema where the first line inside the block must be a reference to the desired .cast file:

  • For local files, use the Obsidian paths starting at the vault's root (e.g., _attachments/748822.cast).
  • For remote files, prefix the URL with src: (e.g., src: https://asciinema.org/a/748822.cast).
```asciinema
src: https://asciinema.org/a/748822.cast
```
```asciinema
_attachments/748822.cast
```
Options

You can customize the player by adding options as key-value pairs after the file path.

Key Type Description
cols number Set the number of columns for the terminal.
rows number Set the number of rows for the terminal.
autoPlay boolean Start playback automatically.
loop boolean Loop the playback.
speed number Set the playback speed (e.g., 2 for double speed).
theme string Set the color theme (e.g., dracula, solarized-dark).
startAt string Start playback at a specific time (e.g., 1:23).
idleTimeLimit number Limit terminal inactivity to a maximum number of seconds.
poster string Set the poster (preview) frame, e.g., npt:1:23 shows the frame at 1 minute 23 seconds.
Example with Options

Here is an example demonstrating how to use multiple options (entries can be commented with a #):

```asciinema
_attachments/demo.cast
cols: 100
rows: 25
autoPlay: true
loop: true
speed: 1.5
theme: solarized-dark
```

The UI provides interactive features with keyboard shortcuts for playing, pausing, jumping, and even chapter markers in the play bar when specified inside the asciicasts.

Update the Plugin

Instead of loading the asciinema-player from an external CDN (Content Delivery Network), this plugin bundles the entire library directly into its code. While this results in a larger initial file size, it guarantees that the player will work every time, even if you are offline or if the external CDN is unavailable. This trade-off makes for a more robust and dependable Obsidian plugin.

If the asciinema-player library is updated, and you think you need the newest version, but it's not bundled in this Obsidian plugin, you will need to update it within the plugin manually:

Prepare the Build Environment

If you want to rebuild or modify the plugin, first install the tooling and dependencies:

npm install -g pnpm
pnpm install

After rebuilding you can remove the node_modules directory again to keep the plugin folder lean:

rm -rf node_modules

1. Check for Updates

To see if a new version of asciinema-player is available, run the following command in the plugin's directory:

pnpm outdated asciinema-player

2. Update the Library

If an update is available, run this command:

pnpm update asciinema-player

This will download the latest version and update the package.json and pnpm-lock.yaml files.

3. Rebuild the Plugin

After the update is complete, you must rebuild the plugin to include the new library code:

pnpm run build

4. Test

Finally, after rebuilding, reload Obsidian and test the plugin thoroughly to ensure the update has not introduced any issues, especially for major version updates.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.