mcpField
C
claude-session-manager

claude-session-manager

github.com/sugarforeverエージェントワークフロー139201 回インストール1 週間前に更新
リポジトリ

claude-session-manager について

claude-session-managerは、Claude Codeのセッション記録を整理するためのスキルです。候補の一覧表示や、JSONLのMarkdownへのエクスポートに対応し、ツールの詳細は別ファイルへのリンクとして分離します。

主な機能

  1. 01セッションをMarkdownに出力
  2. 02候補セッションの一覧と選択
  3. 03プロジェクト、セッション、日付、件数で絞り込み
  4. 04ツール詳細をリンク先ファイルに分離
  5. 05インデックス作成とプロジェクト別整理

活用シーン

  1. 01Claude Codeの全セッションの保管や検索
  2. 02選択した1件のセッションを出力
  3. 03全ペイロードを読み込まずにツール操作を確認
  4. 04プロジェクトや日付を指定して出力

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sugarforever/01coder-agent-skills --skill claude-session-manager

インストール後、Claude Code で/claude-session-managerを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlscripts/manage_claude_sessions.py

詳細

Claude Session Manager

概要

Claude Code はセッションのトランスクリプトを、~/.claude/projects/<project-key>/<session-id>.jsonl の JSONL ファイルとして保存します。同梱のマネージャーを使うと、候補を一覧表示したり、セッションをプロジェクトごとに整理された Markdown トランスクリプトにエクスポートしたりできます。トランスクリプトには、ダイジェスト、ユーザーと Claude の会話を整理した内容、ツール呼び出しの詳細へのリンクが含まれます。

デフォルトの出力フォルダーは ~/.claude/session-markdown です。ここにエクスポートする前にユーザーに伝え、カスタム出力フォルダーの指定があった場合はその旨にも触れてください。

クイックスタート

ユーザーの表現からモードが明確にわかる場合は、それに合わせてください。それ以外の場合は、エクスポート前にどちらのモードにするか尋ねてください。

  • 全件モード:条件に一致するセッションをすべてエクスポートします。アーカイブ、バックアップ、広範な検索、「すべてのセッションを変換」といった依頼に使います。
  • 特定モード:まず候補セッションを一覧表示してユーザーに選んでもらい、そのセッションだけをエクスポートします。

任意のディレクトリから実行できます。

python3 /path/to/claude-session-manager/scripts/manage_claude_sessions.py

同等の明示的な形式:

python3 /path/to/claude-session-manager/scripts/manage_claude_sessions.py \
  --source ~/.claude/projects \
  --output ~/.claude/session-markdown

便利なオプション:

  • --mode full:条件に一致するセッションをすべてエクスポートします。これがデフォルトです。
  • --mode specific --list-candidates:番号付きの候補テーブルを表示し、エクスポートは行いません。
  • --mode specific --pick N:同じフィルターで絞り込んだ候補一覧から、N 番目の候補をエクスポートします。
  • --project <text>:キーにこのテキストを含むプロジェクトフォルダーのみをエクスポートします。
  • --session <text>:ID またはファイル名にこのテキストを含むセッションのみをエクスポートします。
  • --since YYYY-MM-DD:この日付以降に変更されたセッションのみをエクスポートします。
  • --limit N:条件に一致するセッションのうち、更新日時が新しいものから N 件をエクスポートします。
  • --include-tool-details-inline:すべてのツール入力と結果をメインのセッション Markdown に埋め込みます。デフォルトでは、メインのトランスクリプトには折りたたみ可能な簡潔なツールの要約が表示され、完全なペイロードはサイドカーファイルから参照されます。

特定モードの候補選択フロー

ユーザーがセッションを 1 つ選びたい場合、必要なセッションがわからない場合、または変換前に最近のセッションを確認したい場合は、このフローを使います。

  1. 候補一覧を実行します。ユーザーが別の件数を指定していない限り、デフォルトで --limit 20 を使います。
python3 /path/to/claude-session-manager/scripts/manage_claude_sessions.py \
  --mode specific \
  --list-candidates \
  --limit 20
  1. ユーザーからプロジェクトの手掛かり、日付、またはセッション ID の一部が示されている場合は、同じフィルターに渡します。
python3 /path/to/claude-session-manager/scripts/manage_claude_sessions.py \
  --mode specific \
  --list-candidates \
  --project my-repo \
  --since 2026-06-01 \
  --limit 20
  1. 番号付きの候補行をユーザーに提示します。候補テーブルには、更新日時、プロジェクトキー、短縮セッション ID、cwd、最初のユーザープロンプトの抜粋が含まれます。これらを選択の手掛かりとして使い、生の JSONL パスを確認するようユーザーに求めないでください。
  2. ユーザーが番号を選んだら、まったく同じフィルターを使い、--pick N を指定して再実行します。
python3 /path/to/claude-session-manager/scripts/manage_claude_sessions.py \
  --mode specific \
  --pick 3 \
  --limit 20

ユーザーがすでに正確なセッション ID または一意な一部を指定していても、曖昧さがある場合は、まず --mode specific --session <id-or-fragment> --list-candidates を使います。候補一覧に一致するものが 1 件だけの場合に限り、--pick 1 でエクスポートします。

出力レイアウト

エクスポーターは次のものを書き出します。

~/.claude/session-markdown/
├── index.md
└── <project-key>/
    ├── index.md
    ├── <session-id>.md
    └── tool-details/
        └── <session-id>.tools.md

元の Claude プロジェクトキーをフォルダー名として保持してください。安定しており、パスのデコード方法を推測せずに済みます。

各セッションの Markdown には、次の内容が含まれます。

  • ダイジェスト:ソースパス、プロジェクトキー、セッション ID、cwd、タイムスタンプ、イベント/メッセージ/ツールの件数、最初のユーザープロンプトの抜粋。
  • ツール呼び出しまたは結果が存在する場合は、ツールの詳細ファイルへのリンク。
  • タイムライン:すべてのイベントは ## Timeline セクションに、ISO-8601 形式の番号付き第 3 レベル見出しとして出力されます。ユーザーのターンには ### N. user - <ISO>、アシスタントのターンには ### N. assistant - <ISO> が使われます。
  • メインの会話に含まれるメッセージ本文でも、Markdown の見出し構文は避けます。コードフェンスの外にある見出しは太字の行に変換し、一般的な Markdown リーダーで会話の流れの中に過度に大きな見出しが表示されないようにします。
  • 関連するアシスタントのターンには、<tool_call_000001> Bash - command: npm test - result のような簡潔なツール参照を含めます。デフォルトでは、サイドカーの詳細ファイルに対応するセクションが作成されます。
  • メタデータと添付ファイルのイベント(### N. attachment - <ISO>、### N. permission-mode、### N. file-history-snapshot、### N. last-prompt など)と、アシスタントのターンに含まれる [thinking] ブロブは、それぞれタイムライン上の番号付きイベントとして出力されます。読み手はノイズとして読み飛ばしてください。これらには会話の内容は含まれていません。

エクスポートしたセッションを読む

  • まず、メインのセッション Markdown を読みます。会話と簡潔なツール参照だけで、流れを把握できるはずです。
  • 各 <tool_call_000001> 参照は、tool-details/<session-id>.tools.md 内の項目を指すものとして扱います。
  • 正確なコマンド入力、ファイルの内容、検索結果、またはツールの出力全体が必要な場合に限り、ツール詳細ファイルを開きます。
  • 大規模なセッションでは、サイドカーファイル全体をデフォルトで読み込まず、該当するツール参照を検索します。

ワークフロー

  1. ソースフォルダーを確認します。デフォルトは ~/.claude/projects です。
  2. ユーザーがまだ選択していない場合は、全件モードか個別指定モードかを尋ねます。
  3. 出力フォルダーを確認するか、ユーザーに知らせます。デフォルトは ~/.claude/session-markdown です。
  4. 全件モードでは、必要なフィルターを指定してエクスポータースクリプトを実行します。
  5. 個別指定モードでは、候補を一覧表示し、ユーザーに選んでもらってから --pick を指定してエクスポートします。
  6. エクスポートしたセッション数、出力インデックスのパス、解析時の警告を報告します。
  7. ユーザーが特定のセッションの説明を求めた場合は、まず生成された Markdown を読みます。正確なツール入力や結果が必要な場合に限り、サイドカーのツール詳細を読み込みます。

注意事項

  • トランスクリプトのデータは非公開情報として扱います。プロンプト、ファイルの内容、コマンドの出力、チャットに誤って貼り付けられた秘密情報、ツールの結果が含まれる場合があります。
  • 元の .jsonl ファイルを削除または変更しないでください。
  • 大規模なセッションでは、サイドカーのツール詳細を優先します。ツールのペイロードをインラインで埋め込むと、Markdown の検索や読み込みが難しくなることがあります。

コメント