Record Claude Code sessions with asciinema. TRIGGERS - record session, asciinema record, capture terminal, demo recording.
allowed-tools
Read, Bash, Glob, AskUserQuestion
asciinema-recorder
Generate ready-to-copy commands for recording Claude Code sessions with asciinema. Dynamically creates filenames based on workspace and datetime.
Platform: macOS, Linux (requires asciinema CLI)
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
When to Use This Skill
Use this skill when:
Starting a new terminal recording session
Creating demos or documentation recordings
Capturing Claude Code sessions for review or sharing
Generating workspace-specific recording filenames
Why This Skill?
This skill generates ready-to-copy recording commands with:
Create the output directory selected in Phase 1.0:
mkdir -p "${OUTPUT_DIR}"
Step 1.2.4: Construct Command
Build the recording command using:
OUTPUT_DIR from Phase 1.0 (location selection)
Flags from Phase 1.1 (options selection)
TITLE if "Add title" was selected
# Base command
CMD="asciinema rec"# Add flags from Phase 1.1 options# (Claude builds this based on user selections)# Final command format:
asciinema rec ${FLAGS}"${OUTPUT_DIR}/${WORKSPACE}_${DATETIME}.cast"
Example outputs:
# Default (no options selected):
asciinema rec /home/user/projects/my-app/tmp/my-app_2025-12-21_14-30.cast
# With title + quiet mode:
asciinema rec -t "my-app Demo" -q /home/user/projects/my-app/tmp/my-app_2025-12-21_14-30.cast
# With all options:
asciinema rec -t "my-app 2025-12-21 14:30" -q --idle-time-limit 0 ~/asciinema/my-app_2025-12-21_14-30.cast
Phase 2: User Guidance
Purpose: Explain the recording workflow step-by-step.
Present these instructions:
## Recording Instructions1.**Exit Claude Code** - Type `exit` or press `Ctrl+D`2.**Copy the command** shown above
3.**Paste and run** in your terminal (starts a recorded shell)
4.**Run `claude`** to start Claude Code inside the recording
5. Work normally - everything is captured
6.**Exit Claude Code** - Type `exit` or press `Ctrl+D`7.**Exit the recording shell** - Type `exit` or press `Ctrl+D` again
Your recording will be saved to:
`$PWD/tmp/{workspace}_{datetime}.cast`
Phase 3: Additional Info
Purpose: Provide helpful tips for after recording.
## Tips-**Environment variable**: `ASCIINEMA_REC=1` is set during recording
-**Playback**: Use `asciinema-player` skill or `asciinema play file.cast`-**Upload (optional)**: `asciinema upload file.cast` (requires account)
-**Markers**: Add `asciinema marker` during recording for navigation points
TodoWrite Task Templates
Template: Record Claude Code Session
1. [Preflight] Check asciinema CLI installed
2. [Preflight] Offer installation if missing
3. [Context] Detect current workspace from $PWD
4. [Context] Generate datetime slug
5. [Context] Ensure tmp/ directory exists
6. [Command] Construct full recording command
7. [Guidance] Display step-by-step instructions
8. [Guidance] Show additional tips (playback, upload)
9. Verify against Skill Quality Checklist
Post-Change Checklist
After modifying this skill:
Command generation still uses $PWD (no hardcoded paths)
Guidance steps remain clear and platform-agnostic
TodoWrite template matches actual workflow
README.md entry remains accurate
Validate with quick_validate.py
CLI Options Reference
Option
Flag
Description
Title
-t
Recording title (for asciinema.org)
Quiet
-q
Suppress status messages
Append
-a
Append to existing recording
Troubleshooting
"Cannot record from within Claude Code"
Cause: asciinema must wrap the program, not be started from inside.
Fix: Exit Claude Code first, then run the generated command.
"Recording file too large"
Cause: Long sessions produce large files.
Fix:
Use asciinema upload to store online instead of locally
Split long sessions into smaller recordings
"Playback shows garbled output"
Cause: Terminal size mismatch.
Fix: Use -r flag during playback to resize terminal.