← lunelukkio site トップへ

INDEX-CMEM

claude_memory の使い方

Claude / Gemini の会話記録から「興味トピック・意味を聞いた英単語・深掘り度」を抽出し、大カテゴリにまとめて HTML レポート化する自作ツール。抽出には Claude Agent SDK(Max 契約枠)を使う。生成レポートは → こちら(本人限定)

クイックガイド(次回やること)

レポートを最新にするには、ターミナルで次の3つを順に実行するだけ。認証の準備は不要(Claude Code に /login 済みならそのまま動く)。

cd C:\Users\lunel\Projects\Others\claude_memory

uv run claude-memory extract         # 1. 新しい会話だけ抽出(差分のみ)
uv run claude-memory categorize      # 2. 大カテゴリに再分類(増えた時だけでOK)
uv run claude-memory render --deploy  # 3. HTML生成して公開(push)

公開先 https://lunelukkio.com/claude-memory/ に反映(Cloudflare のビルド後)。差分が無ければ extract は「差分なし」で終わる。詳細は下記。

概要

ローカルに溜まった会話ログを定期的に読み、ユーザーが何に関心を持ち、どの英単語の意味を尋ねたかを集計する Python (uv) 製の CLI。差分のみを処理してトークンを節約し、結果を SQLite に蓄積する。出力は lunelukkio-site/claude-memory/ に配置され、本サイト経由で本人だけが閲覧できる。

データソース場所状態
Claude Code~/.claude/projects/*/*.jsonl対応済み
Gemini CLI~/.gemini/tmp/<proj>/chats/session-*.jsonl対応済み
Claude DesktopIndexedDB (LevelDB)後日(SourceAdapter 追加で対応)
Gemini WebGoogle Takeout後日

セットアップ

cd C:\Users\lunel\Projects\Others\claude_memory
uv sync

LLM 認証(Max 契約枠で実行)

抽出は Claude Agent SDK を使う。このPC・同じユーザーで実行する場合、追加設定は不要。Claude Code に /login 済みの資格情報(~/.claude/.credentials.json)を SDK が既定で利用し、Max 契約の枠で動く。

無人実行や別環境向けに長寿命トークンが必要なら、ブラウザ OAuth でトークンを発行して環境変数に設定する:

claude setup-token
# PowerShell:
$env:CLAUDE_CODE_OAUTH_TOKEN = "<発行されたトークン>"

注意: 環境変数 ANTHROPIC_API_KEY が設定されていると従量課金 API が優先される。subscription 枠で動かすには未設定にしておく(/status で確認可)。

コマンド

1. extract — 差分抽出

新規メッセージのみを収集 → ノイズ除外 → 機密マスク → セッション単位で LLM 抽出 → SQLite 集約。セッションごとに逐次保存するため、途中で止めても完了分は残り、再実行で続きから再開する。

uv run claude-memory extract                      # 既定: LLM (Haiku), 並列4
uv run claude-memory extract --concurrency 6      # 同時実行数を変更(429 に注意)
uv run claude-memory extract --engine rule        # LLM を使わず動作確認
uv run claude-memory extract --limit 5            # 先頭5セッションだけ(スモークテスト)

2. categorize — 大カテゴリに分類

抽出された興味トピックを LLM(既定 Sonnet 4.6)で 2 段階分類する。まず全体から大カテゴリ(例「数学/確率過程・マルコフ理論」「Git/GitHub・CI/CD」)を導き、各トピックにカテゴリと正規名(canonical)を付与する。新トピックが増えたら再実行すると再分類される。

uv run claude-memory categorize
uv run claude-memory categorize --model claude-haiku-4-5-20251001  # 安価版

3. render — HTML 生成・公開

DB から HTML を生成する。表・一覧は Jinja2 で決定的に描画し、カテゴリがあればカテゴリ別グループ表示になる。--deploylunelukkio-site に commit & push(Cloudflare Pages が自動デプロイ)。

uv run claude-memory render                  # ローカル生成のみ
uv run claude-memory render --out ./data/preview   # 任意の場所にプレビュー
uv run claude-memory render --deploy         # 配置 + 目次リンク + commit + push

4. status — 状態確認

uv run claude-memory status

典型的な更新フロー

uv run claude-memory extract        # 差分を抽出
uv run claude-memory categorize     # 必要なら再分類
uv run claude-memory render --deploy # レポート更新を公開

2 回目以降は差分のみ処理するため、トークン消費は新規会話分に限られる。

設計上のポイント

留意点