asciinema-converter について
asciinema-converter は、asciinema の .cast 形式の端末録画を検索可能なテキストに変換する Claude Code 向けスキルです。単一ファイルと一括処理に対応し、制御コードや JSON 構造を取り除いて Read や Grep で扱いやすくします。
主な機能
- 01.cast 録画を .txt に変換
- 02ディレクトリ内の録画を一括変換
- 03ANSI コードと JSON 構造を除去
- 04任意でタイムスタンプ索引を追加
- 05asciinema のバージョンと入力を確認
活用シーン
- 01Claude Code の Read と Grep 用に録画を準備
- 02端末セッション録画をまとめて整理
- 03ANSI コード付き出力からテキストを抽出
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill asciinema-converterインストール後、Claude Code で/asciinema-converterを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/anti-patterns.mdbatch-processing.mdbatch-workflow.mdevolution-log.mdintegration-guide.mdpost-change-checklist.mdtask-templates.mdworkflow-phases.mdtests/converter-integration.batsconverter.test.tstests/fixtures/simple.castwith spaces.cast詳細
asciinema-converter
asciinema の .cast 録画を、Claude Code の分析に適したクリーンな .txt ファイルに変換します。ANSI コードと JSON 構造を取り除くことで、950:1 の圧縮率(3.8GB → 4MB)を実現します。
プラットフォーム:macOS、Linux(asciinema CLI v2.4 以降が必要です)
自己進化するスキル:このスキルは使用を通じて改善されます。手順に誤りがあった場合、パラメーターにずれが生じた場合、または回避策が必要だった場合は、先送りせず、すぐにこのファイルを修正してください。実際に再現可能な問題がある場合にのみ更新してください。
このスキルを使用するタイミング
次のような場合に、このスキルを使用してください。
- .cast 録画を検索可能な .txt 形式に変換する
- Claude Code の Read/Grep ツールで使えるように録画を準備する
- 複数の録画を一括変換する
- セッションアーカイブの保存容量を削減する
- ANSI コード付きのターミナル出力からクリーンなテキストを抽出する
変換する理由
| 形式 | サイズ(22 時間のセッション) | Claude Code との互換性 | 検索方法 |
|---|---|---|---|
| .cast | 3.8GB | なし(NDJSON + ANSI) | jq 経由 |
| .txt | 約 4MB | あり(クリーンなテキスト) | Grep/Read |
主な利点:Claude Code の Read ツールと Grep ツールは、.txt の出力を直接扱えます。
要件
| コンポーネント | 必須 | インストール方法 | 備考 |
|---|---|---|---|
| asciinema | はい | brew install asciinema | convert コマンドには v2.4 以降が必要 |
ワークフローの概要
重要:すべてのフェーズは必須です。フェーズを省略しないでください。各判断ポイントでは必ず AskUserQuestion を使用してください。
単一ファイルモード(フェーズ 0~6)
| フェーズ | 目的 | 主な操作 |
|---|---|---|
| 0 | 事前確認 | asciinema CLI v2.4 以降を確認 |
| 1 | ファイルの検出と選択 | AskUserQuestion:変換するファイル |
| 2 | 出力オプション | AskUserQuestion:変換オプション |
| 3 | 出力先 | AskUserQuestion:保存先 |
| 4 | 変換の実行 | asciinema convert -f txt |
| 5 | タイムスタンプインデックス | 任意の [HH:MM:SS] インデックス |
| 6 | 次のステップ | AskUserQuestion:次に行うこと |
実装の詳細:ワークフローのフェーズ
一括モード(フェーズ 7~10)
--batch フラグで有効になります。ディレクトリ内のすべての .cast ファイルを、整理された出力先に変換します。
| フェーズ | 目的 | 主な操作 |
|---|---|---|
| 7 | ソースの選択 | AskUserQuestion(--source が指定されている場合は省略) |
| 8 | 出力の整理 | AskUserQuestion(--output-dir が指定されている場合は省略) |
| 9 | 一括処理の実行 | 進捗を報告しながらすべて変換 |
| 10 | 一括処理後の次のステップ | AskUserQuestion:次に行うこと |
実装の詳細:一括ワークフロー
iTerm2 のファイル名形式
iTerm2 の自動ログファイルは、次の形式に従います。
{creationTimeString}.{profileName}.{termid}.{iterm2.pid}.{autoLogId}.cast
例:20260118_232025.Claude Code.w0t1p1.70C05103-2F29-4B42-8067-BE475DB6126A.68721.4013739999.cast
| コンポーネント | 説明 | 例 |
|---|---|---|
| creationTimeString | YYYYMMDD_HHMMSS | 20260118_232025 |
| profileName | iTerm2 プロファイル(ドットを含む場合があります) | Claude Code |
| termid | ウィンドウ/タブ/ペインの識別子 | w0t1p1 |
| iterm2.pid | iTerm2 プロセス UUID | 70C05103-2F29-4B42-8067-BE475DB6126A |
| autoLogId | セッション自動ログの識別子 | 68721.4013739999 |
CLI クイックリファレンス
# Basic conversion
asciinema convert -f txt recording.cast recording.txt
# Check asciinema version
asciinema --version
# Verify convert command exists
asciinema convert --help
リファレンスドキュメント
内部リファレンス
- ワークフローのフェーズ - 単一ファイルモードのフェーズ 0~6と完全なスクリプト
- バッチワークフロー - バッチモードのフェーズ 7~10と完全なスクリプト
- タスクテンプレート - 単一モードとバッチモード用の TodoWrite テンプレート
- 変更後のチェックリスト - 変更後の検証
- アンチパターン - 避けるべきよくある間違い
- バッチ処理 - 一括変換のパターン
- 統合ガイド - analyze/summarize との連携
外部リファレンス
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
| convert コマンドが見つからない | asciinema が古すぎる | アップグレード:brew upgrade asciinema(v2.4 以降が必要) |
| asciinema がインストールされていない | CLI がない | brew install asciinema |
| 出力ファイルが空 | .cast 入力が破損している | .cast ファイルに有効な NDJSON 構造があることを確認します |
| 変換に失敗した | cast 形式が無効である | ヘッダー行が jq で有効な JSON として確認できることを確認します |
| numfmt が見つからない | macOS に coreutils がない | バイト数をそのまま使うか、brew install coreutils を実行します |
| stat の構文エラー | Linux と macOS の違い | スクリプトは両方に対応しています。stat のバージョンを確認します |
| バッチですべてのファイルがスキップされる | すべての .txt がすでに存在する | 再変換するには --skip-existing=false を使います |
| 出力時に権限が拒否される | ディレクトリに書き込み権限がない | 出力ディレクトリの権限を確認します |
実行後の振り返り
このスキルの実行後、終了する前に次の点を確認します。
- コマンドは成功しましたか? — 成功しなかった場合は、失敗の原因となった手順またはエラー表を修正します。
- パラメーターや出力は変わりましたか? — 基盤となるツールのインターフェイスに変更があった場合は、使用例とパラメーター表を更新して一致させます。
- 回避策が必要でしたか? — 即興で対応した場合(異なるフラグ、追加手順など)は、次回の実行で同じ回避策が不要になるよう、この SKILL.md を更新します。
問題が実際に発生し、再現可能な場合にのみ更新してください。推測に基づく更新は行わないでください。