Cc-skills asciinema-converter

Convert .cast recordings to .txt for analysis. TRIGGERS - convert cast, cast to txt, strip ANSI, batch convert.

install
source · Clone the upstream repo
git clone https://github.com/terrylica/cc-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/terrylica/cc-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/asciinema-tools/skills/asciinema-converter" ~/.claude/skills/terrylica-cc-skills-asciinema-converter && rm -rf "$T"
manifest: plugins/asciinema-tools/skills/asciinema-converter/SKILL.md
source content

asciinema-converter

Convert asciinema .cast recordings to clean .txt files for Claude Code analysis. Achieves 950:1 compression (3.8GB -> 4MB) by stripping ANSI codes and JSON structure.

Platform: macOS, Linux (requires asciinema CLI v2.4+)

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:

  • Converting .cast recordings to searchable .txt format
  • Preparing recordings for Claude Code Read/Grep tools
  • Batch converting multiple recordings
  • Reducing storage size of session archives
  • Extracting clean text from ANSI-coded terminal output

Why Convert?

FormatSize (22h session)Claude Code CompatibleSearchable
.cast3.8GBNo (NDJSON + ANSI)Via jq
.txt~4MBYes (clean text)Grep/Read

Key benefit: Claude Code's Read and Grep tools work directly on .txt output.


Requirements

ComponentRequiredInstallationNotes
asciinemaYes
brew install asciinema
v2.4+ for convert cmd

Workflow Overview

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

Single File Mode (Phases 0-6)

PhasePurposeKey Action
0Preflight checkVerify asciinema CLI v2.4+
1File discovery & selectionAskUserQuestion: file to convert
2Output optionsAskUserQuestion: conversion opts
3Output locationAskUserQuestion: save destination
4Execute conversion
asciinema convert -f txt
5Timestamp indexOptional
[HH:MM:SS]
index
6Next stepsAskUserQuestion: what's next

Full implementation details: Workflow Phases

Batch Mode (Phases 7-10)

Activated via

--batch
flag. Converts all .cast files in a directory with organized output.

PhasePurposeKey Action
7Source selectionAskUserQuestion (skip if
--source
)
8Output organizationAskUserQuestion (skip if
--output-dir
)
9Execute batchConvert all with progress reporting
10Batch next stepsAskUserQuestion: what's next

Full implementation details: Batch Workflow


iTerm2 Filename Format

iTerm2 auto-logged files follow this format:

{creationTimeString}.{profileName}.{termid}.{iterm2.pid}.{autoLogId}.cast

Example:

20260118_232025.Claude Code.w0t1p1.70C05103-2F29-4B42-8067-BE475DB6126A.68721.4013739999.cast

ComponentDescriptionExample
creationTimeStringYYYYMMDD_HHMMSS20260118_232025
profileNameiTerm2 profile (may have dots)Claude Code
termidWindow/tab/pane identifierw0t1p1
iterm2.pidiTerm2 process UUID70C05103-2F29-4B42-8067-BE475DB6126A
autoLogIdSession auto-log identifier68721.4013739999

CLI Quick Reference

# Basic conversion
asciinema convert -f txt recording.cast recording.txt

# Check asciinema version
asciinema --version

# Verify convert command exists
asciinema convert --help

Reference Documentation

Internal References

External References


Troubleshooting

IssueCauseSolution
convert command not foundasciinema too oldUpgrade:
brew upgrade asciinema
(need v2.4+)
asciinema not installedMissing CLI
brew install asciinema
Empty output fileCorrupted .cast inputVerify .cast file has valid NDJSON structure
Conversion failedInvalid cast formatCheck header line is valid JSON with
jq
numfmt not foundmacOS missing coreutilsUse raw byte count or
brew install coreutils
stat syntax errorLinux vs macOS differenceScript handles both; check stat version
Batch skipping all filesAll .txt already existUse
--skip-existing=false
to reconvert
Permission denied on outputDirectory not writableCheck output directory permissions

Post-Execution Reflection

After this skill completes, check before closing:

  1. Did the command succeed? — If not, fix the instruction or error table that caused the failure.
  2. Did parameters or output change? — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
  3. Was a workaround needed? — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.

Only update if the issue is real and reproducible — not speculative.