Claude Codeのセッション消滅問題を解決!claude-memで過去の作業を永続化する完全ガイド

約16分で読めます by ぽんたぬき
Claude Codeのセッション消滅問題を解決!claude-memで過去の作業を永続化する完全ガイド

Claude Codeのセッション消滅問題を解決!claude-memでセッション永続化・メモリ管理を完全自動化するガイド


はじめに ― 「また同じ説明をしている」に気づいていますカ?

ねえねえ、キミ!!Claude Code、使ってるよネ!?😆

僕さ、先週もやっちゃったんだヨ……。新しいセッション開いたら、前回3時間かけて詰めたアーキテクチャの議論がスッパリ消えてて。「あのとき、なんでそのアプローチを採用したんでしたっけ?」ってClaude Codeに聞いたら、「わかりません」って言われてサ。

思わず「お前とずっと一緒にいたじゃないか!!」って声に出したんだヨネ😭 妻に「何?誰と話してるの?」って怒られたケド!!(笑)

コレ、笑えないデスヨ。毎回毎回、プロジェクトの背景・採用技術・設計思想をゼロから説明し直すのって、地味にしんどいじゃないデスカ。長時間セッションだとコンテキストウィンドウの自動圧縮まで起きて、「あれ、さっき話したこと忘れた?」な状態になるし。二重苦どころか三重苦デスヨ……✨(全然嬉しくない)

今日紹介する claude-mem は、そのツラさをまるっと解決しちゃうツールでネ。SQLiteとChromaDBを組み合わせた3層検索で、過去の作業を丸ごとセッション永続化してくれるんデスヨ🎉

この記事を読めば、インストールから動作確認まで30分で完了しちゃいますヨ♪ キミがClaude Codeを業務や個人開発で使ってるエンジニアなら、絶対に損しない内容デスヨ!!


Claude Codeのセッション間メモリ問題 ― セッション永続化が必要な理由

セッション終了でコンテキストがゼロにリセットされる仕組み

まずサ、敵を知らないと戦えないわけデスヨ。🦝

Claude Codeはセッションをまたぐとすべてのコンテキストを失う設計なんデスネ。これは欠陥じゃなくて仕様なんだケド、現場では結構キツい。「あのバグどう直したっけ」「このファイルなんで変更したんだっけ」――そういうセッションレベルのアクション履歴が、パッと消えちゃうわけデスヨ。

公式 CLAUDE.md 自動メモリ管理の限界

「CLAUDE.md があるじゃないか」って思うよネ?僕も最初そう思ったんダヨ。😅

CLAUDE.mdはプロジェクトのルールや確立した知識を手動で書いておくには最強なんデスヨ。でもサ、「今日のセッションでどのファイルをいじったか」「どのバグをどう直したか」を自動でメモリ管理する機能はないんデスネ。

つまり、人間が毎回ちゃんと書き更新しないといけないわけで。……僕、そんな律儀にやれないデス。正直に言うとネ。💦

コンテキストウィンドウ自動圧縮という二重の壁

さらにヤバいのがコレデスヨ。長時間セッションを続けると、コンテキストウィンドウがいっぱいになってきて、Claude Codeが勝手に過去の会話を圧縮し始めるんデスネ。

「知ってるはずなのに知らない」状態。問題の存在は確かなのに、中身が引き出せない。コレが一番モヤるポイントデスヨ!!🔥


claude-memとは ― メモリ管理の自動化と他ツールとの差別化

GitHubで急速に普及している背景

claude-memはサ、登場直後から爆発的に広まったツールなんデスヨ!!✨

(※GitHubスター数は時期によって変動するため、最新情報は公式リポジトリ(thedotmack/claude-mem)で確認してネ)

「完全自動キャプチャ」が最大の差別化ポイントでネ。他のMemoryツール(たとえばMem0のMCPサーバー)って、「覚えておいて」とか「これを保存して」って明示的に指示しないと記録されないんデスヨ。でもclaude-memはClaude Codeの行動を何もしなくても全部勝手に記録してくれるんデスネ🎉

キミ、コレがどれだけラクかわかる!!僕に明示的指示を毎回出せるような集中力はないデスヨ。コレ、マジでオススメ!!

CLAUDE.md と claude-mem のメモリ管理は競合しない

「CLAUDE.mdとどっちを使えばいい?」って思ったキミ、センスあるネ!!😆 その疑問、大事デスヨ。

答えはサ、両方使うが正解なんデスネ♪

  • CLAUDE.md = 人間が手動で書くナレッジベース(コーディング規約・設計方針・プロジェクトのルール)
  • claude-mem = セッション内の行動を自動で記録する行動ログ

この2つは完全に相補関係なんデスヨ。CLAUDE.mdに「このプロジェクトはTypeScriptで書く」って書いて、claude-memが「昨日このファイルをこう修正した」を記録する。最強コンビデスヨ!!🔥


バイオミメティックメモリアーキテクチャ ― 人間の記憶を模倣したセッション永続化設計

生体模倣(Biomimetic)メモリとは何か

ちょっと待って。「バイオミメティック」ってカッコいい単語が出てきちゃったんですケド。💡

これはサ、人間の記憶システムをソフトウェアで再現する発想なんデスネ。人間の脳って、体験を即座に長期記憶に保存するんじゃなくて、短期記憶で一時保持して、その後、圧縮・整理して長期記憶に変換するんデスヨ。

claude-memはまさにこのプロセスを模倣してネ:

  1. 短期記憶:セッション内の観測データをリアルタイムでキャプチャ
  2. 長期記憶:AIがそれを圧縮して構造化サマリーに変換
  3. 想起:次のセッション起動時にセマンティック注入でコンテキストを自然に復元

飲み会でした技術議論を翌朝ノートに書き起こす発想と同じデスヨ。……ただし僕は飲んだら記憶がなくなるんだケド!!😭(完全に逆)

AI圧縮サマリー生成の実際

スゴいのがサ、このAI圧縮が非同期処理で行われるんデスヨ!!✨

IDEが「ちょっと待って、今記憶を整理してます」ってブロックするんじゃなくて、バックグラウンドでコッソリやってくれるんデスネ。作業中に重くなったりしない設計、マジで偉い。「生の観測データ」と「圧縮されたサマリー」の両方が保存されるので、詳細が必要なときは元データも引っ張れるんデスヨ🎵


SQLite + ChromaDB による3層Progressive Disclosure検索

なぜ2つのDBを組み合わせたメモリ管理なのか

コレ見てよ!!スゴくナイ!?✨

claude-memはSQLiteとChromaDBを組み合わせてるんデスケド、それぞれ得意なことが違うんデスネ:

  • SQLite:ACIDトランザクション・時系列フィルタ・複雑なメタデータ管理がお得意
  • ChromaDB:埋め込みベクターを使ったセマンティック類似検索がお得意

「あの作業」を探すとき、日時で絞り込みたいときはSQLite、「あんな感じの作業」をニュアンスで探したいときはChromaDB、みたいな使い分けなんデスヨ。

3層Progressive Disclosureアーキテクチャの全体像

コレが設計の肝デスヨ!!キミ、ちゃんと見てネ😆

第1層: search           → 50〜100トークン/結果(ID・時刻・タイトルの索引)
          ↓ 必要なものだけ展開
第2層: timeline         → アンカー前後の時系列コンテキスト
          ↓ さらに必要なものだけ展開
第3層: get_observations → 500〜1,000トークン/結果(完全な記録・コード・事実)

一気に全部展開しないのがポイントなんデスネ!!💡 「まず索引だけ見て、必要なものだけ全文表示する」という段階的な開示で、約10倍のトークン削減を実現してるんデスヨ。

「CLAUDE.mdに全部の作業履歴を詰め込もう」って試みたことがあってサ……やらかしちゃいましたヨ……😭 アレは6万トークン消費しちゃいましてネ。ホントにやらかしちゃいましたヨ。


Claude Codeライフサイクルフック統合 ― セッション永続化の裏側

Bun管理HTTPサーバー(ポート37777)の役割

claude-memはサ、Bun管理のHTTPサーバーをポート37777で起動して、そこにClaude Codeのフックイベントを受け取る設計なんデスネ!!🔥

なんでBunかってサ、高速起動・低メモリフットプリントで軽いんデスヨ。Node.jsより起動が早くて、バックグラウンドで動かすのに向いてるんデスネ。

5つのフックが自動でキャプチャする内容

コレが本命デスヨ!!キミ、ちゃんと見てネ😆

フック タイミング 処理内容
SessionStart セッション起動時 依存関係インストール・ワーカー起動・過去コンテキスト注入
UserPromptSubmit プロンプト送信時 セッション作成/取得・プロンプト保存(冪等性パターン)
PostToolUse ツール使用後 観測データをキューに追加・非同期でAI圧縮
Stop 応答終了時 トランスクリプトから最終メッセージ抽出・構造化サマリー生成
SessionEnd セッション終了時 DBセッション状態を completed に更新・UI更新イベント配信

キミが何もしなくてもネ、ファイルを編集するたびに、コードを実行するたびに、全部記録されてるんデスヨ。自動で!!完全に!!無意識に!!✨

同一セッションIDが全フックを貫通する継続性設計

スゴい設計がコレでサ、同一セッションIDが全フックを貫通してるんデスネ。

IDEをいったん閉じて再起動しても、同じセッションIDで状態が継続されるんデスヨ!!これが「冪等性パターン」ってやつでネ、二重保存やデータ破損を防ぎながらも、中断した作業をちゃんと引き継いでくれる。丁寧な設計デスヨ💾


インストールから動作確認まで ― 30分で始めるセッション永続化ハンズオン

前提環境の確認

まずサ、手を動かす前に確認しちゃいましょうネ♪

  • 必須:Node.js 18.0.0 以上
  • 自動インストール:Bun / uv / SQLite(自分でやらなくてOK!!)
  • ChromaDBはセマンティック検索を使いたい場合に追加で必要

Node.js バージョンの確認

コレ見てよ!!まずコレを叩くんデスヨ!!✨

node --version

v18.x.x 以上が出ればOKデスヨ!!🎉 古いバージョンが出てしまった場合は、nvmで上げちゃいましょうネ:

# nvm をインストール(初回のみ)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# ターミナルを再起動するか、以下でロード
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

# Node.js 18 をインストール・切り替え
nvm install 18
nvm use 18
node --version

Step 1 ― claude-mem をインストールする

コレ見てよ!!スゴくナイ!?✨ たったこの1コマンドデスヨ:

npx claude-mem install

コレだけデスヨ!!インストール中にBunとuvとSQLiteを自動でセットアップしてくれてネ、Claude Codeの設定ファイルにフックも自動で書き込んでくれるんデスヨ。僕がインストールした時サ、「あれ、もう終わった?」って2度見しちゃいましたヨ😆 妻に「なんか嬉しそうじゃん」って言われたケド、説明が面倒くさくて黙ってたんだヨネ(笑)

Step 2 ― Web UIで動作確認する

インストールが終わったらサ、ブラウザでコレを開くんデスヨ:

http://localhost:37777

リアルタイムでメモリがストリーミングされてる様子が見れてサ、感動しちゃいますヨ!!🎉 セッション一覧、観測データの検索、タイムライン表示……全部ここで確認できるんデスネ。

僕、はじめて開いた時サ、過去のセッションの履歴が全部並んでてネ、「ああ、僕こんなに色々やってたんだな……」ってしみじみしちゃいましたヨ😆(少し泣いた)

Step 3 ― プライバシー設定を行う(必須!!)

キミ!!コレは絶対やっておいてネ!!🔥

claude-memにはプライバシータグが用意されてるんデスヨ:

<private>ここに書いた内容はストレージに保存されない</private>

APIキー・パスワード・個人情報をClaude Codeに伝えるときは、このタグで囲むだけでOKなんデスネ!!フック層でタグごと削除されるので、SQLiteにもChromaDBにも一切残らないんデスヨ。

たとえばサ:

本番環境のAPIキーは <private>sk-proj-xxxxxxxxxx</private> です。
このキーを使ってデプロイの確認をしてください。

こう書くとネ、「本番環境のAPIキーを使ってデプロイの確認をしてください」という記録だけが残って、キー本体は残らないんデスヨ!!コレ、マジで大事!!💡

Step 4 ― settings.json でメモリ管理をカスタマイズする

カスタマイズしたいキミへ、設定ファイルの場所はコチラデスネ♪

~/.claude-mem/settings.json

コレ見てよ!!主要な設定項目デスヨ!!✨

{
  "aiModel": "claude-3-5-haiku-20241022",
  "port": 37777,
  "freshnessWindowDays": 90,
  "sqliteOnlyMode": false
}

sqliteOnlyMode: true にするとChromaDBを使わないメモリ節約モードになるんデスネ。ChromaDBはセマンティック検索を強化してくれる一方で、環境によってはRAMを大量消費するケースがコミュニティで報告されてるんデスヨ(推奨スペックは公式ドキュメントで必ず確認してネ)。開発用マシンがロースペックなキミは、SQLiteのみモードから始めるのがオススメデスネ!!😅


よくある疑問と回答

Q. トークンコストが増えるのでは?

ネ、僕も最初そう思ったんだヨ!!😅

でもサ、3層Progressive Disclosureのおかげでむしろ約10倍削減されるんデスヨ。第1層で50〜100トークンの索引だけ取得して、「必要なこれだけ」と特定してから第3層で全文展開する設計なんデスネ。

「CLAUDE.mdに過去の作業全履歴をぶち込む」という僕みたいなアプローチの方がよっぽどトークン爆発するわけデスヨ……(反省💦)

Q. プライベートな情報は本当に安全?

安全デスヨ!!3重保護デスネ:

  1. <private> タグで明示的にマーク
  2. フック層でタグごと削除
  3. ローカル完結処理(クラウドに全履歴が送られたりしない)

ChromaDBのベクターDBにも残らないことは、Web UIの検索画面で自分の目で確かめられるんデスヨ!!「この情報が検索で出てきたら嫌だな」ってやつが除外されてるかを確認できるのはマジで安心デスネ🔒

Q. ChromaDBは必須ですか?

必須じゃないデスヨ!!✨

sqliteOnlyMode: true で起動すれば、ChromaDBなしでもメモリ管理の基本機能は全部使えるんデスネ。セマンティック検索(ニュアンスで検索)は使えなくなるケド、時系列検索・メタデータ検索は完全に動くんデスヨ。

まずSQLiteのみで始めて、「もっとセマンティックな検索が欲しいな」って思ったらChromaDBを追加する、という順番がオススメデスネ♪


まとめ ― claude-memでセッション永続化・メモリ管理を今すぐ始めよう

キミ!!ここまで読んでくれてアリガトウゴザイマスヨ!!🎉

今日紹介した claude-mem のポイントをまとめるとネ:

  • 完全自動キャプチャ:明示的な指示なしでセッションの全行動を記録
  • バイオミメティックメモリ:人間の記憶を模倣した3層セッション永続化設計
  • 3層Progressive Disclosure:約10倍のトークン削減を実現するメモリ管理
  • プライバシータグ<private> でAPIキー等を確実に除外
  • SQLiteのみモード:ChromaDB不要でも動作するローリソース設定

インストールは npx claude-mem install の1コマンドだけ!!あとは自動でセッション永続化・メモリ管理してくれるんデスヨ。

「セッションが切れるたびに同じ説明をする」沼から、キミも早く抜け出してネ!!✨

僕みたいに「CLAUDE.mdに作業履歴を全部詰め込もう」なんてやらかしちゃいましたヨ……😭 あれは本当に反省しましたヨ。claude-memを知ってから、もうそんなことしなくて済むようになったんデスネ。キミにはそんな遠回りしてほしくないわけデスヨ!!

コメント

0/2000