jpskill.com
💬 コミュニケーション コミュニティ

extract-transcripts

Claude CodeやCodex CLIセッションのJSONLファイルから、読みやすいトランスクリプトを抽出するSkill。

📜 元の英語説明(参考)

Extract readable transcripts from Claude Code and Codex CLI session JSONL files

🇯🇵 日本人クリエイター向け解説

一言でいうと

Claude CodeやCodex CLIセッションのJSONLファイルから、読みやすいトランスクリプトを抽出するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o extract-transcripts.zip https://jpskill.com/download/5873.zip && unzip -o extract-transcripts.zip && rm extract-transcripts.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/5873.zip -OutFile "$d\extract-transcripts.zip"; Expand-Archive "$d\extract-transcripts.zip" -DestinationPath $d -Force; ri "$d\extract-transcripts.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して extract-transcripts.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → extract-transcripts フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

トランスクリプトの抽出

Claude Code および Codex CLI セッションの JSONL ファイルから、読みやすい Markdown 形式のトランスクリプトを抽出します。

スクリプト

Claude Code セッション

# 単一セッションを抽出
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl>

# ツール呼び出しと思考ブロックを含める場合
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl> --include-tools --include-thinking

# ディレクトリ内の全セッションを抽出
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <directory> --all

# ファイルに出力
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl> -o output.md

# 概要のみ (簡単な概要)
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl> --summary

# 空またはウォームアップのみのセッションをスキップ
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <directory> --all --skip-empty

オプション:

  • --include-tools: ツール呼び出しと結果を含めます
  • --include-thinking: Claude の思考ブロックを含めます
  • --all: ディレクトリ内のすべての .jsonl ファイルを処理します
  • -o, --output: 出力ファイルのパス (デフォルト: stdout)
  • --summary: 簡潔な概要のみを出力します
  • --skip-empty: 空のセッションおよびウォームアップのみのセッションをスキップします
  • --min-messages N: --skip-empty の最小メッセージ数 (デフォルト: 2)

Codex CLI セッション

# Codex セッションを抽出
uv run ~/.claude/skills/extract-transcripts/extract_codex_transcript.py <session.jsonl>

# Codex 履歴ファイルから抽出
uv run ~/.claude/skills/extract-transcripts/extract_codex_transcript.py ~/.codex/history.jsonl --history

セッションファイルの場所

Claude Code

  • セッション: ~/.claude/projects/<project-path>/<session-id>.jsonl

Codex CLI

  • セッション: ~/.codex/sessions/<session_id>/rollout.jsonl
  • 履歴: ~/.codex/history.jsonl

DuckDB ベースのトランスクリプトインデックス

多数のセッションを横断してクエリを実行するには、DuckDB ベースのインデクサーを使用します。

# 全セッションをインデックス化 (増分 - 新規/変更されたファイルのみ)
uv run ~/.claude/skills/extract-transcripts/transcript_index.py index

# 強制的に完全再インデックス
uv run ~/.claude/skills/extract-transcripts/transcript_index.py index --full

# 処理するファイルの数を制限
uv run ~/.claude/skills/extract-transcripts/transcript_index.py index --limit 10

# 最近のセッションを一覧表示
uv run ~/.claude/skills/extract-transcripts/transcript_index.py recent
uv run ~/.claude/skills/extract-transcripts/transcript_index.py recent --limit 20
uv run ~/.claude/skills/extract-transcripts/transcript_index.py recent --project myapp
uv run ~/.claude/skills/extract-transcripts/transcript_index.py recent --since 7d

# セッションを横断して検索
uv run ~/.claude/skills/extract-transcripts/transcript_index.py search "error handling"
uv run ~/.claude/skills/extract-transcripts/transcript_index.py search "query" --cwd ~/myproject

# セッションのトランスクリプトを表示
uv run ~/.claude/skills/extract-transcripts/transcript_index.py show <file_path>
uv run ~/.claude/skills/extract-transcripts/transcript_index.py show <file_path> --summary

要件: uv (依存関係はインラインスクリプトのメタデータにより自動インストールされます)

データベースの場所: ~/.claude/transcript-index/sessions.duckdb

出力形式

トランスクリプトは Markdown 形式で出力され、以下を含みます。

  • セッションメタデータ (日付、期間、モデル、作業ディレクトリ、Git ブランチ)
  • ## User で始まるユーザーメッセージ
  • ## Assistant で始まるアシスタントの応答
  • コードブロック内のツール呼び出し (--include-tools の場合)
  • 引用ブロック内の思考 (--include-thinking の場合)
  • Codex セッションのツール使用状況の概要
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Extract Transcripts

Extracts readable markdown transcripts from Claude Code and Codex CLI session JSONL files.

Scripts

Claude Code Sessions

# Extract a single session
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl>

# With tool calls and thinking blocks
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl> --include-tools --include-thinking

# Extract all sessions from a directory
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <directory> --all

# Output to file
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl> -o output.md

# Summary only (quick overview)
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl> --summary

# Skip empty/warmup-only sessions
uv run ~/.claude/skills/extract-transcripts/extract_transcript.py <directory> --all --skip-empty

Options:

  • --include-tools: Include tool calls and results
  • --include-thinking: Include Claude's thinking blocks
  • --all: Process all .jsonl files in directory
  • -o, --output: Output file path (default: stdout)
  • --summary: Only output brief summary
  • --skip-empty: Skip empty and warmup-only sessions
  • --min-messages N: Minimum messages for --skip-empty (default: 2)

Codex CLI Sessions

# Extract a Codex session
uv run ~/.claude/skills/extract-transcripts/extract_codex_transcript.py <session.jsonl>

# Extract from Codex history file
uv run ~/.claude/skills/extract-transcripts/extract_codex_transcript.py ~/.codex/history.jsonl --history

Session File Locations

Claude Code

  • Sessions: ~/.claude/projects/<project-path>/<session-id>.jsonl

Codex CLI

  • Sessions: ~/.codex/sessions/<session_id>/rollout.jsonl
  • History: ~/.codex/history.jsonl

DuckDB-Based Transcript Index

For querying across many sessions, use the DuckDB-based indexer:

# Index all sessions (incremental - only new/changed files)
uv run ~/.claude/skills/extract-transcripts/transcript_index.py index

# Force full reindex
uv run ~/.claude/skills/extract-transcripts/transcript_index.py index --full

# Limit number of files to process
uv run ~/.claude/skills/extract-transcripts/transcript_index.py index --limit 10

# List recent sessions
uv run ~/.claude/skills/extract-transcripts/transcript_index.py recent
uv run ~/.claude/skills/extract-transcripts/transcript_index.py recent --limit 20
uv run ~/.claude/skills/extract-transcripts/transcript_index.py recent --project myapp
uv run ~/.claude/skills/extract-transcripts/transcript_index.py recent --since 7d

# Search across sessions
uv run ~/.claude/skills/extract-transcripts/transcript_index.py search "error handling"
uv run ~/.claude/skills/extract-transcripts/transcript_index.py search "query" --cwd ~/myproject

# Show a session transcript
uv run ~/.claude/skills/extract-transcripts/transcript_index.py show <file_path>
uv run ~/.claude/skills/extract-transcripts/transcript_index.py show <file_path> --summary

Requirements: uv (dependencies auto-installed via inline script metadata)

Database location: ~/.claude/transcript-index/sessions.duckdb

Output Format

Transcripts are formatted as markdown with:

  • Session metadata (date, duration, model, working directory, git branch)
  • User messages prefixed with ## User
  • Assistant responses prefixed with ## Assistant
  • Tool calls in code blocks (if --include-tools)
  • Thinking in blockquotes (if --include-thinking)
  • Tool usage summary for Codex sessions