mcpField
A
asciinema-recorder

asciinema-recorder

github.com/terrylicaクリエイティブ・メディア1135 回インストール今日更新
リポジトリ

asciinema-recorder について

asciinema-recorderは、Claude Codeのセッション録画用にasciinemaコマンドを生成するスキルです。セッションの記録やデモ作成に向け、ワークスペースと日時を使ったファイル名や録画オプションを設定します。

主な機能

  1. 01コピー可能な録画コマンドの生成
  2. 02ワークスペースと日時による命名
  3. 03録画ファイルの保存先選択
  4. 04タイトル・静音・アイドル時間の設定
  5. 05asciinema CLIの利用確認

活用シーン

  1. 01Claude Codeセッションの振り返り用録画
  2. 02ターミナルのデモやドキュメント録画
  3. 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

変更後のチェックリスト

このスキルを変更した後は、次の点を確認してください。

  1. コマンド生成で引き続き $PWD を使用している(ハードコードされたパスがない)
  2. 案内手順が引き続き明確で、プラットフォームに依存しない
  3. TodoWrite テンプレートが実際のワークフローと一致している
  4. README.md の項目が引き続き正確である
  5. quick_validate.py で検証する

CLI オプションのリファレンス

オプションフラグ説明
タイトル-t録画タイトル(asciinema.org 用)
静音-qステータスメッセージを抑制
追記-a既存の録画に追記

トラブルシューティング

「Claude Code 内から録画できません」

原因:asciinema はプログラムをラップする必要があり、プログラムの内部から起動することはできません。

対処方法:まず Claude Code を終了し、生成されたコマンドを実行してください。

「録画ファイルが大きすぎます」

原因:セッションが長いと、ファイルも大きくなります。

対処方法:

  • ローカルに保存する代わりに、asciinema upload を使ってオンラインに保存します
  • 長いセッションを短い録画に分割します
「再生すると出力が文字化けします」

原因:ターミナルのサイズが一致していません。

対処方法:再生時に -r フラグを使ってターミナルのサイズを変更します。


リファレンスドキュメント

実行後の振り返り

このスキルの実行が完了したら、タスクを終了する前に振り返ってください。

  1. 現在の場所を確認します。 — 編集する前に、この SKILL.md の正規パスを確認します。
  2. 何が失敗しましたか? — 原因となった指示を修正します。
  3. 予想以上にうまくいったことは何ですか? — 推奨プラクティスとして取り入れます。
  4. 実態と乖離したものはありますか? — 実態に合わなくなったスクリプト、リファレンス、依存関係を修正します。
  5. 記録します。 — きっかけ、修正内容、根拠を含む進化ログの項目を追加します。

先送りしないでください。次回の実行では、ここに残した状態が引き継がれます。

コメント