asciinema-recorder について
asciinema-recorderは、Claude Codeのセッション録画用にasciinemaコマンドを生成するスキルです。セッションの記録やデモ作成に向け、ワークスペースと日時を使ったファイル名や録画オプションを設定します。
主な機能
- 01コピー可能な録画コマンドの生成
- 02ワークスペースと日時による命名
- 03録画ファイルの保存先選択
- 04タイトル・静音・アイドル時間の設定
- 05asciinema CLIの利用確認
活用シーン
- 01Claude Codeセッションの振り返り用録画
- 02ターミナルのデモやドキュメント録画
- 03ワークスペース別の録画ファイル整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill asciinema-recorderインストール後、Claude Code で/asciinema-recorderを入力して読み込まれたか確認します。
同梱ファイルreferences/evolution-log.md
詳細
asciinema-recorder
asciinema を使って Claude Code セッションを録画するための、すぐにコピーできるコマンドを生成します。ワークスペースと日時に基づいてファイル名を動的に作成します。
プラットフォーム:macOS、Linux(asciinema CLI が必要です)
自己進化型スキル:このスキルは使用を通じて改善されます。手順に誤りがある場合、パラメーターにずれが生じた場合、または回避策が必要だった場合は、先延ばしにせず、すぐにこのファイルを修正してください。実際に再現できる問題がある場合にのみ更新してください。
このスキルを使うタイミング
以下の場合にこのスキルを使用します。
- 新しいターミナル録画セッションを開始するとき
- デモやドキュメント用の録画を作成するとき
- Claude Code セッションをレビューや共有用に記録するとき
- ワークスペース固有の録画ファイル名を生成するとき
このスキルを使う理由
このスキルは、すぐにコピーできる録画コマンドを次の内容で生成します。
- ワークスペースに基づく動的なファイル名
- 一意性を保つ日時スタンプ
- プロジェクトの tmp/ フォルダーへの保存(gitignore 対象)
要件
| コンポーネント | 必須 | インストール方法 |
|---|---|---|
| asciinema CLI | はい | brew install asciinema |
ワークフローのフェーズ
フェーズ 0:事前確認
目的:asciinema がインストールされていることを確認します。
# Check asciinema CLI
which asciinema && asciinema --version
asciinema がインストールされていない場合は、AskUserQuestion を使用します。
- question: "asciinema が見つかりません。どのように進めますか?"
header: "セットアップ"
multiSelect: false
options:
- label: "asciinema をインストールする(推奨)" description: "実行:brew install asciinema(macOS)または apt install asciinema(Linux)"
- label: "手動の手順を表示する" description: "すべてのプラットフォームのインストールコマンドを表示する"
- label: "キャンセル" description: "録画せずに終了する"
選択に応じて処理します。
-
「asciinema をインストールする」 → OS に応じた適切なインストールコマンドを実行します。
# macOS brew install asciinema # Linux (apt) sudo apt install asciinema # Linux (pip) pip install asciinemaその後、フェーズ 1.0 に進みます。
-
「手動の手順を表示する」 → 上記のコマンドを表示してから、スキルを終了します。
-
「キャンセル」 → 何もせずにスキルを終了します。
フェーズ 1.0:録画の保存先
目的:録画の保存先をユーザーが選択できるようにします。
AskUserQuestion を使用します。
- question: "録画をどこに保存しますか?"
header: "保存先"
multiSelect: false
options:
- label: "$PWD/tmp/(推奨)" description: "プロジェクトの tmp ディレクトリ(gitignore 対象)"
- label: "~/asciinema/" description: "録画の共通ディレクトリ"
- label: "カスタムパス" description: "任意のディレクトリを指定する"
選択に応じて処理します。
- 「$PWD/tmp/」 →
OUTPUT_DIR="$PWD/tmp"を設定します。 - 「~/asciinema/」 →
OUTPUT_DIR="$HOME/asciinema"を設定し、存在しない場合は作成します:mkdir -p ~/asciinema - 「カスタムパス」 → ユーザーの「その他」の入力を
OUTPUT_DIRとして使用します。
フェーズ 1.1:録画オプション
目的:録画の動作をユーザーが設定できるようにします。
AskUserQuestion を使用します。
- question: "どの録画オプションを使いますか?"
header: "オプション"
multiSelect: true
options:
- label: "タイトル/説明を追加" description: "セッションタイトルを録画メタデータに含める(-t フラグ)"
- label: "アイドル時間の上限を無効にする" description: "2 秒を上限とせず、停止時間をすべて記録する(--idle-time-limit 0)"
- label: "静音モード" description: "asciinema のステータスメッセージを抑制する(-q フラグ)"
選択内容に応じて、コマンドフラグを組み立てます。
- 「タイトルを追加」 → タイトル選択の質問に進み、
-t "title"フラグを追加します。 - 「アイドル時間の上限を無効にする」 →
--idle-time-limit 0フラグを追加します。 - 「静音モード」 →
-qフラグを追加します。
「タイトルを追加」が選択された場合は、次の質問を続けます。
- question: "この録画のタイトルを入力してください:"
header: "タイトル"
multiSelect: false
options:
- label: "ワークスペース名を使う" description: "タイトル:${WORKSPACE}"
- label: "ワークスペース名と日時を使う" description: "タイトル:${WORKSPACE} ${DATETIME}"
- label: "カスタムタイトル" description: "任意のタイトルを入力する"
タイトルの選択に応じて処理します。
- 「ワークスペース名を使う」 →
TITLE="${WORKSPACE}"を設定します。 - 「ワークスペース名と日時を使う」 →
TITLE="${WORKSPACE} ${DATETIME}"を設定します。 - 「カスタムタイトル」 → ユーザーの「その他」の入力を
TITLEとして使用します。
フェーズ 1.2:コンテキストの検出とコマンドの生成
目的:コピーしてすぐに使える録画コマンドを生成します。
ステップ 1.2.1:ワークスペースの検出
$PWD からワークスペース名を抽出します。
/usr/bin/env bash << 'SKILL_SCRIPT_EOF'
WORKSPACE=$(basename "$PWD")
echo "Workspace: $WORKSPACE"
SKILL_SCRIPT_EOF
ステップ 1.2.2:日時の生成
/usr/bin/env bash << 'SKILL_SCRIPT_EOF_2'
DATETIME=$(date +%Y-%m-%d_%H-%M)
echo "Datetime: $DATETIME"
SKILL_SCRIPT_EOF_2
ステップ 1.2.3:出力ディレクトリの存在確認
フェーズ 1.0 で選択した出力ディレクトリを作成します。
mkdir -p "${OUTPUT_DIR}"
ステップ 1.2.4:コマンドの組み立て
次の情報を使って録画コマンドを組み立てます。
- フェーズ 1.0(場所の選択)で指定した
OUTPUT_DIR - フェーズ 1.1(オプションの選択)で指定したフラグ
- 「タイトルを追加」が選択された場合の
TITLE
# 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"
出力例:
# 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
フェーズ 2:ユーザーへの案内
目的:録画のワークフローを手順に沿って説明します。
次の手順を提示します。
## Recording Instructions
1. **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`
フェーズ 3:追加情報
目的:録画後に役立つヒントを提供します。
## 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 タスクテンプレート
テンプレート:Claude Code セッションの録画
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
変更後のチェックリスト
このスキルを変更した後は、次の点を確認してください。
- コマンド生成で引き続き
$PWDを使用している(ハードコードされたパスがない) - 案内手順が引き続き明確で、プラットフォームに依存しない
- TodoWrite テンプレートが実際のワークフローと一致している
- README.md の項目が引き続き正確である
- quick_validate.py で検証する
CLI オプションのリファレンス
| オプション | フラグ | 説明 |
|---|---|---|
| タイトル | -t | 録画タイトル(asciinema.org 用) |
| 静音 | -q | ステータスメッセージを抑制 |
| 追記 | -a | 既存の録画に追記 |
トラブルシューティング
「Claude Code 内から録画できません」
原因:asciinema はプログラムをラップする必要があり、プログラムの内部から起動することはできません。
対処方法:まず Claude Code を終了し、生成されたコマンドを実行してください。
「録画ファイルが大きすぎます」
原因:セッションが長いと、ファイルも大きくなります。
対処方法:
- ローカルに保存する代わりに、
asciinema uploadを使ってオンラインに保存します - 長いセッションを短い録画に分割します
「再生すると出力が文字化けします」
原因:ターミナルのサイズが一致していません。
対処方法:再生時に -r フラグを使ってターミナルのサイズを変更します。
リファレンスドキュメント
実行後の振り返り
このスキルの実行が完了したら、タスクを終了する前に振り返ってください。
- 現在の場所を確認します。 — 編集する前に、この SKILL.md の正規パスを確認します。
- 何が失敗しましたか? — 原因となった指示を修正します。
- 予想以上にうまくいったことは何ですか? — 推奨プラクティスとして取り入れます。
- 実態と乖離したものはありますか? — 実態に合わなくなったスクリプト、リファレンス、依存関係を修正します。
- 記録します。 — きっかけ、修正内容、根拠を含む進化ログの項目を追加します。
先送りしないでください。次回の実行では、ここに残した状態が引き継がれます。