Skip to content
asciinema-player logo

Asciinema Player

asciinema-player

Play .cast terminal recordings in iTerm2. TRIGGERS - asciinema play, .cast file, play recording, recording playback.

SKILL.md

Full skill instructions

asciinema-player

Play terminal session recordings (.cast files) in a dedicated iTerm2 window with full playback controls. Opens a clean window (bypasses default arrangements) for distraction-free viewing.

Platform: macOS only (requires iTerm2)


Why iTerm2 Instead of Browser?

AspectBrowser PlayeriTerm2 CLI
Large files (>100MB)Crashes (memory limit)Streams from disk
Memory usage2-4GB for 700MB fileMinimal
Startup timeSlow (download + parse)Instant
Native feelWeb-basedTrue terminal

Decision: iTerm2 CLI is the only reliable method for large recordings.


Requirements

ComponentRequiredInstallation
iTerm2Yesbrew install --cask iterm2
asciinema CLIYesbrew install asciinema

Note: This skill is macOS-only. Linux users should run asciinema play directly in their terminal.


Workflow Phases (ALL MANDATORY)

IMPORTANT: All phases are MANDATORY. Do NOT skip any phase. AskUserQuestion MUST be used at each decision point.

Phase 0: Preflight Checks

Purpose: Verify iTerm2 and asciinema are installed.

Step 0.1: Check Dependencies
# Check iTerm2 is installed
ls -d /​Applications/​iTerm.app 2>/​dev/​null && echo "iTerm2: OK" || echo "iTerm2: MISSING"

# Check asciinema CLI
which asciinema && asciinema --version
Step 0.2: Report Status and Ask for Installation

MANDATORY AskUserQuestion if any dependency is missing:

Question: "Required dependencies are missing. Install them?"
Header: "Setup"
Options:
  - Label: "Install all (Recommended)"
    Description: "Will install: {list of missing: iTerm2, asciinema}"
  - Label: "Cancel"
    Description: "Abort - cannot proceed without dependencies"
Step 0.3: Install Missing Dependencies (if confirmed)
# Install iTerm2
brew install --cask iterm2

# Install asciinema CLI
brew install asciinema

Phase 1: File Selection (MANDATORY)

Purpose: Discover and select the recording to play.

Step 1.1: Discover Recordings
# Search for .cast files in common locations
fd -e cast . --max-depth 5 2>/​dev/​null | head -20

# Also check common locations
ls -lh ~/​scripts/​tmp/​*.cast 2>/​dev/​null
ls -lh ~/​.local/​share/​asciinema/​*.cast 2>/​dev/​null
ls -lh ./​tmp/​*.cast 2>/​dev/​null
Step 1.2: Get File Info
# Get file size and line count for selected file
ls -lh {file_path}
wc -l {file_path}
Step 1.3: Present File Selection (MANDATORY AskUserQuestion)

If user provided path directly, confirm:

Question: "Play this recording?"
Header: "Confirm"
Options:
  - Label: "Yes, play {filename}"
    Description: "{size}, {line_count} events"
  - Label: "Choose different file"
    Description: "Browse for other recordings"

If no path provided, discover and present options:

Question: "Which recording would you like to play?"
Header: "Recording"
Options:
  - Label: "{filename} ({size})"
    Description: "{line_count} events"
  - ... (up to 4 most recent)

Phase 2: Playback Settings (MANDATORY)

Purpose: Configure playback options before launching iTerm2.

Step 2.1: Ask Playback Speed (MANDATORY AskUserQuestion)
Question: "Select playback speed:"
Header: "Speed"
Options:
  - Label: "2x (fast)"
    Description: "Good for review, see everything"
  - Label: "6x (very fast)"
    Description: "Quick scan of long sessions"
  - Label: "16x (ultra fast)"
    Description: "Rapid skim for 700MB+ files"
  - Label: "Custom"
    Description: "Enter your own speed multiplier"

If "Custom" selected, ask for speed value (use Other option for numeric input).

Step 2.2: Ask Additional Options (MANDATORY AskUserQuestion)
Question: "Select additional playback options:"
Header: "Options"
multiSelect: true
Options:
  - Label: "Limit idle time (2s)"
    Description: "Cap pauses to 2 seconds max (recommended)"
  - Label: "Loop playback"
    Description: "Restart automatically when finished"
  - Label: "Resize terminal"
    Description: "Match terminal size to recording dimensions"
  - Label: "Pause on markers"
    Description: "Auto-pause at marked points (for demos)"

Phase 3: Launch in iTerm2

Purpose: Open clean iTerm2 window and start playback.

Step 3.1: Build Command

Construct the asciinema play command based on user selections:

# Example with all options
asciinema play -s 6 -i 2 -l -r /​path/​to/​recording.cast

Option flags:

  • -s {speed} - Playback speed
  • -i 2 - Idle time limit (if selected)
  • -l - Loop (if selected)
  • -r - Resize terminal (if selected)
  • -m - Pause on markers (if selected)
Step 3.2: Launch iTerm2 Window

Use AppleScript to open a clean window (bypasses default arrangements):

osascript -e 'tell application "iTerm2"
    create window with default profile
    tell current window
        tell current session
            write text "asciinema play -s {speed} {options} {file_path}"
        end tell
    end tell
end tell'
Step 3.3: Display Controls Reference
## Playback Started

**Recording:** `{filename}`
**Speed:** {speed}x
**Options:** {options_summary}

### Keyboard Controls

| Key      | Action                            |
| -------- | --------------------------------- |
| `Space`  | Pause / Resume                    |
| `Ctrl+C` | Stop playback                     |
| `.`      | Step forward (when paused)        |
| `]`      | Skip to next marker (when paused) |

### Tips

- Press `Space` to pause anytime
- Use `.` to step through frame by frame
- `Ctrl+C` to exit when done

TodoWrite Task Template (MANDATORY)

Load this template into TodoWrite before starting:

1. [Preflight] Check iTerm2 installed
2. [Preflight] Check asciinema CLI installed
3. [Preflight] AskUserQuestion: install missing deps (if needed)
4. [Preflight] Install dependencies (if confirmed)
5. [Selection] Get file info (size, events)
6. [Selection] AskUserQuestion: confirm file selection
7. [Settings] AskUserQuestion: playback speed
8. [Settings] AskUserQuestion: additional options (multi-select)
9. [Launch] Build asciinema play command
10. [Launch] Execute AppleScript to open iTerm2
11. [Launch] Display controls reference

CLI Options Reference

OptionFlagValuesDescription
Speed-s0.5, 1, 2, 6, 16...Playback speed multiplier
Idle limit-iseconds (e.g., 2)Cap idle/​pause time
Loop-l(flag)Continuous loop
Resize-r(flag)Match terminal to recording size
Markers-m(flag)Auto-pause at markers
Quiet-q(flag)Suppress info messages

AppleScript Reference

Open Clean iTerm2 Window (No Default Arrangement)

tell application "iTerm2"
    create window with default profile
    tell current window
        tell current session
            write text "your command here"
        end tell
    end tell
end tell

Why this works: create window with default profile creates a fresh window, bypassing any saved window arrangements.

One-liner for Bash

osascript -e 'tell application "iTerm2"
    create window with default profile
    tell current window
        tell current session
            write text "asciinema play -s 6 -i 2 /​path/​to/​file.cast"
        end tell
    end tell
end tell'

Troubleshooting

"Device not configured" error

Cause: Running asciinema play from a non-TTY context (e.g., Claude Code's Bash tool)

Fix: Use AppleScript to open a real iTerm2 window (this skill does this automatically)

Recording plays too fast/​slow

Fix: Use the speed AskUserQuestion to select appropriate speed:

  • 2x for careful review
  • 6x for quick scan
  • 16x for ultra-fast skim of very long recordings

iTerm2 not opening

Cause: iTerm2 not installed or AppleScript permissions not granted

Fix:

  1. Install iTerm2: brew install --cask iterm2
  2. Grant permissions: System Settings → Privacy & Security → Automation → Allow Terminal/​Claude to control iTerm2

Large file (>500MB) considerations

The CLI player streams from disk, so file size doesn't cause memory issues. However:

  • Very long recordings may benefit from higher speeds (6x, 16x)
  • Use -i 2 to skip idle time
  • Consider splitting very long recordings

Post-Change Checklist

After modifying this skill:

  1. Preflight checks verify iTerm2 and asciinema
  2. AskUserQuestion phases use proper multiSelect where applicable
  3. AppleScript uses heredoc wrapper for bash compatibility
  4. Speed options match CLI capability (-s flag)
  5. TodoWrite template matches actual workflow phases

Reference Documentation

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View