スキルで過去ログを一括保存・検索する

15分⭐⭐⭐☆☆

このモジュールで学ぶこと

  • Claude Codeのスキル機能の仕組み
  • 過去ログを一括でエクスポートする方法
  • プロジェクトや日付を指定した検索・保存

学習目標

このモジュールを終えると、以下のことができるようになります:

  • スキルを導入してClaude Codeから呼び出せる
  • 全プロジェクトのログを一括でバックアップできる
  • 特定の日付やプロジェクトのログを検索・保存できる

目次


事前準備

必要なもの

  • Module 01(Hooksで会話ログを自動保存する)を完了していること
  • Python 3.8以上

前提知識

  • Module 01の内容を理解していること

セクション1: なぜスキルが必要か

Hooksだけでは不十分なケース

Module 01でHooksを設定しましたが、以下のケースでは自動保存されません:

ケースHooks発火結果
/clear で終了する保存される
Ctrl+C で終了する保存される
ターミナルを直接閉じるしない保存されない
PCをシャットダウンしない保存されない

スキルの役割

役割Hooksスキル
自動保存-
Hooks未発火時のバックアップ-
全プロジェクト一括保存-
過去ログの検索-

重要:ログの保持期間

Claude Codeの元データ(~/.claude/projects/)は約1ヶ月で自動削除されます。

定期的にスキルで一括バックアップしておくと安心です。

チェックポイント

  • Hooksが発火しないケースを理解した
  • スキルの役割を理解した
  • ログの保持期間(約1ヶ月)を理解した

セクション2: スキルの導入

スキルの配置場所

スキルは ~/.claude/skills/ に配置します。

mkdir -p ~/.claude/skills/claude-code-log-exporter/scripts

ファイル構成

以下の構成でファイルを作成します:

~/.claude/skills/claude-code-log-exporter/
├── SKILL.md              # スキル定義
└── scripts/
    └── export_date_range_logs.py  # メインスクリプト

SKILL.mdを作成

~/.claude/skills/claude-code-log-exporter/SKILL.md を以下の内容で作成してください:

---
name: claude-code-log-exporter
description: Extract and export Claude Code project transcripts. Use when you need to export Claude Code conversation logs, extract transcripts by date, search projects, or generate markdown logs from projects.
allowed-tools: Bash
---

# Claude Code Log Exporter

会話ログを検索・エクスポートするスキルです。

## 使い方

全プロジェクト・全期間:
` ` `bash
python3 ~/.claude/skills/claude-code-log-exporter/scripts/export_date_range_logs.py
` ` `

特定の日付:
` ` `bash
python3 ~/.claude/skills/claude-code-log-exporter/scripts/export_date_range_logs.py 2026-01-26
` ` `

特定のプロジェクト:
` ` `bash
python3 ~/.claude/skills/claude-code-log-exporter/scripts/export_date_range_logs.py my-project
` ` `

日付 + プロジェクト:
` ` `bash
python3 ~/.claude/skills/claude-code-log-exporter/scripts/export_date_range_logs.py 2026-01-26 my-project
` ` `

スクリプトを配置

Module 01で作成した ~/.claude/scripts/extract_claude_logs.py をベースに、全プロジェクト対応版のスクリプトを ~/.claude/skills/claude-code-log-exporter/scripts/export_date_range_logs.py に配置してください。

スクリプトの主な機能:

  • 全プロジェクト自動検出
  • 日付・プロジェクト名でのフィルタリング
  • セッション単位でファイル保存(Hooksと同じルール)
  • 22パターンのシステムメッセージ自動除去

出力先の設定

スクリプト内の DEFAULT_OUTPUT_BASE をModule 01と同じ値に設定してください:

DEFAULT_OUTPUT_BASE = "{YOUR_OUTPUT_DIR}"

チェックポイント

  • ~/.claude/skills/claude-code-log-exporter/ ディレクトリを作成した
  • SKILL.md を配置した
  • スクリプトを配置した
  • DEFAULT_OUTPUT_BASE を設定した

セクション3: スキルの使い方

基本的な使い方

コマンド対象
python3 ~/.claude/skills/.../export_date_range_logs.py全プロジェクト・全期間
... 2026-01-26全プロジェクト・特定日
... my-project特定プロジェクト・全期間
... 2026-01-26 my-project特定プロジェクト・特定日

実行例:全プロジェクト一括バックアップ

python3 ~/.claude/skills/claude-code-log-exporter/scripts/export_date_range_logs.py

出力例:

Found 8 projects
Target: All dates (全期間)
Output directory: /mnt/d/project_logs

Processing 8 projects

✓ engineer-course: 118 sessions saved
✓ work-manual: 97 sessions saved
✓ mnt-c: 14 sessions saved
...

✓ Total: 233 sessions saved to /mnt/d/project_logs

実行例:特定日のログを検索

python3 ~/.claude/skills/claude-code-log-exporter/scripts/export_date_range_logs.py 2026-01-26

保存されるファイル

Hooksと同じルールでセッション単位で保存されます:

{YOUR_OUTPUT_DIR}/
├── engineer-course/
│   ├── session_2026-01-25_abc12345.md
│   ├── session_2026-01-26_def67890.md
│   └── ...
├── work-manual/
│   └── ...
└── ...

同じセッションIDのファイルは上書きされるため、重複は発生しません。

チェックポイント

  • 全プロジェクト一括バックアップを実行した
  • 特定日のログ検索を試した
  • 保存されたファイルを確認した

セクション4: 注意事項

ログの保持期間

Claude Codeの元データ(~/.claude/projects/)は約1ヶ月で自動削除されます。

推奨:

  • 初回セットアップ時に全プロジェクト一括バックアップを実行
  • 定期的(週1回程度)にスキルで一括バックアップ

Hooksが発火しないケース

以下のケースでは自動保存されません。スキルで手動バックアップしてください:

ケース対処法
ターミナルを直接閉じたスキルで手動実行
PCをシャットダウンしたスキルで手動実行
強制終了したスキルで手動実行

日をまたいだセッション

セッションが日をまたいだ場合、ファイル名の日付は**終了日(ファイルの最終更新日)**になります。

これにより、同じセッションが異なる日付で重複保存される可能性はほぼありません。

チェックポイント

  • ログの保持期間を理解した
  • Hooksが発火しないケースの対処法を理解した

トラブルシューティング

スクリプト実行時にエラーが出る

症状: ModuleNotFoundErrorSyntaxError が表示される

対処法:

  • Python 3.8以上がインストールされているか確認: python3 --version
  • スクリプトのパスが正しいか確認

プロジェクトが見つからない

症状: Found 0 projects と表示される

対処法:

  • ~/.claude/projects/ ディレクトリが存在するか確認
  • Claude Codeで一度でもセッションを開始しているか確認

まとめ

このモジュールで学んだこと

  • Hooksが発火しないケースがあるため、スキルでのバックアップが重要
  • Claude Codeの元データは約1ヶ月で自動削除される
  • スキルで全プロジェクト一括バックアップ、日付・プロジェクト検索が可能
  • HooksとスキルはセッションID単位で同じファイル名を使うため重複しない

運用の推奨

頻度操作
常時Hooksで自動保存(設定済み)
週1回スキルで全プロジェクト一括バックアップ
必要時スキルで特定日・プロジェクトを検索

参考資料


よくある質問

Q: HooksとスキルでログのA重複は発生しませんか? A: 発生しません。どちらも同じファイル名ルール(session_YYYY-MM-DD_セッションID.md)を使用するため、同じセッションは上書きされます。

Q: 定期的に自動でスキルを実行できますか? A: はい。cronやタスクスケジューラでスクリプトを定期実行すれば可能です。ただし、Claude Codeが起動していない状態でも実行できます。

Q: 特定のプロジェクトだけをバックアップしたい場合は? A: プロジェクト名をキーワードとして指定してください:

python3 ~/.claude/skills/.../export_date_range_logs.py my-project

Q: 元データが1ヶ月で消えるなら、過去のログは取得できない? A: その通りです。約1ヶ月より前のログは元データが削除されているため取得できません。早めにバックアップを取ることが重要です。

Q: スキルをClaude Codeから呼び出すにはどうすればいい? A: Claude Codeのセッション中に「ログをエクスポートして」などと依頼すると、スキルのSKILL.mdを参照して適切なコマンドを実行してくれます。

運営: ゆめスタ