Claude Code は1回の会話では賢いが、セッションが変わると前回の文脈を忘れる。「先週あのバグをどう直したか」「このプロジェクトの用語」は、毎回また説明し直すことになる。claude-mem(thedotmack/claude-mem)は、そこにセッションを跨ぐ永続記憶を足す OSS だ。会話中のツール使用を記録し、AI で要約に圧縮して保存し、次回に関連文脈を注入する。ライセンスは Apache-2.0、GitHub で約11万スター(112.4k・2026-11-04 時点の表示)、バージョンは 15.9.0。Claude Code が主対象だが、OpenCode・Codex・Gemini・Copilot なども対象だ。

HOW IT WORKS記憶ができるまで

捕捉→圧縮→保存→注入→検索の5段

  1. ① 捕捉(hooks)

    SessionStart・PreToolUse・Stop 等のフックが claude-mem hook を実行し、ツール使用の観測を記録

  2. ② 圧縮(observer)

    観測を意味要約に。観測モデルは hosted/自前の OpenRouter・Gemini 鍵/Anthropic プランから選ぶ

  3. ③ 保存

    SQLite(FTS5 全文)+ Chroma(ベクトル)でハイブリッド検索。Bun 管理のローカル worker と Web ビューア

  4. ④ 注入

    セッション開始時に関連文脈を注入(~/.claude-mem/settings.json で調整)

  5. ⑤ 検索

    MCP ツール search / timeline / get_observations で後から引く

出典: thedotmack/claude-mem README(2026-11-04 確認)

30秒でわかるclaude-mem(2026-11-04 時点)

  • ・エージェントにセッションを跨ぐ記憶を足す OSS。Apache-2.0・約11万スター・Node.js 20+
  • ・仕組みはフックで捕捉→要約に圧縮→SQLite/Chromaに保存→次回に注入
  • ・導入は Claude Code プラグインか npx claude-mem install。OpenCode・Codex 等にも対応
  • ・検索は MCP の search → timeline → get_observations の3層
  • ・既定はローカル完結ではない。観測モデルやCloud Syncで外に出る余地があり、設定で締められる

エージェント基盤の全体像は AIエージェントフレームワーク比較2026|LangGraph・CrewAI・Dify等9種をStar数・実コードで検証 を起点に。記憶まわりは deja-vu や hindsight でも扱っており、claude-mem は「フック+圧縮+マルチエージェント対応」の実装として位置づけられる。なお以下は公式リポジトリと README に基づく整理で、環境依存の挙動は各自で確認してほしい。

claude-mem とは——忘れる前提を、覚える前提に変える

LLM エージェントの弱点は、コンテキストウィンドウが有限で、セッションが終われば文脈が消えることだ。claude-mem は「記憶」を外付けの仕組みとして足す。鍵は、人手でメモを書かせるのではなく、作業そのものを自動で観測して蓄える点にある。あなたが Claude Code で作業すると、その裏でツール使用の観測が記録され、要約され、次に同じプロジェクトを開いたときに関連する過去が差し込まれる。

READMEの一行は「Persistent memory compression system built for Claude Code(Claude Code のための永続メモリ圧縮システム)」。要点は圧縮だ。生ログをそのまま貯めるのではなく、意味のある要約に落としてから保存する。だから量が増えても、注入する文脈は膨らみすぎない。

具体的には、こういう差になる。記憶なしだと、新しいセッションで「このリポジトリは決済に Stripe を使っていて、リトライは3回まで」と毎回説明し直す。claude-mem があると、前回までの観測から決済まわりの要約が自動で注入され、いきなり本題に入れる。覚えさせるために特別な操作はいらない——普段どおり作業するだけで、裏で観測が貯まるのがこのツールの肝だ。

claude-mem の導入——Claude Code プラグインか npx install

導入は2通り。Claude Code ならプラグインマーケットプレイス経由が簡単で、他ツールは npx インストーラを使う。

対象 コマンド
Claude Code(プラグイン) /plugin marketplace add thedotmack/claude-mem → /plugin install claude-mem
インストーラ(汎用) npx claude-mem install
他ツール指定 npx claude-mem install --ide opencode(OpenCode・T3 Code・Pi・DeepSeek Harness 等)
# Claude Code: プラグインとして入れる
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem

# もしくはインストーラ(他ツールは --ide で指定)
npx claude-mem install
npx claude-mem install --ide opencode

READMEは「npm install -g claude-mem は SDK/ライブラリのみで、フック登録やワーカーのセットアップはしない」と警告している。グローバル install だけで終わらせないこと。要件は Node.js 20 以上とプラグイン対応版の Claude Codeで、Bun と uv は無ければ自動導入、SQLite3 は同梱される。うまく動かないときの窓口として npx claude-mem repair と npx claude-mem doctor が用意されている。

claude-mem の仕組み——フック・圧縮・SQLite/Chroma、そして3層検索

記憶の流れは冒頭の図の5段だ。中でも捕捉は、Claude Code のライフサイクルフックに乗っている。各フックが1つのコマンドを呼ぶだけの、シェル非依存の設計になっている。

# 各ライフサイクルで呼ばれるフック(README より)
SessionStart / UserPromptSubmit / PreToolUse / PostToolUse / Stop / SessionEnd
  → それぞれが  claude-mem hook claude-code <event>  を実行して観測を記録

捕捉した観測は観測モデル(observer)で意味要約に圧縮され、SQLite(FTS5 全文検索)と Chroma(ベクトル)の2本立てで保存される。これにより、キーワードと意味のハイブリッド検索ができる。保存先はローカルの HTTP ワーカー(Bun 管理)で、Web ビューアから中身を見られる。

引くときは MCP ツールの3層ワークフローを使う。いきなり詳細を取らず、索引→時系列→詳細の順で絞る。

3-LAYER SEARCH後から引く順番

search → timeline → get_observations

  1. search(query, type, limit)

    まず圧縮インデックスを引き、該当する観測の当たりをつける

  2. timeline

    時系列で前後の文脈を把握する

  3. get_observations(ids=[…])

    選んだIDの詳細をまとめて取得(複数IDは必ずバッチで)

出典: 同 README の『3-layer workflow』(2026-11-04 確認)
# 3層検索(README の例)
search(query="authentication bug", type="bugfix", limit=10)
get_observations(ids=[123, 456])   # 複数IDは必ずバッチで

search で当たりをつけ、timeline で前後を把握し、get_observations で選んだ ID の詳細だけを取る。最初から全部を読み込まないのが、トークンを食い潰さないコツだ。

claude-mem のプライバシー——「ローカル完結」ではない既定と、締める設定

ここは正直に押さえたい。claude-mem は既定で必ずしもローカル完結ではない。記憶が便利なぶん、何が手元を離れうるかを知っておく価値がある。

LOCAL OR CLOUDどこまで手元に残すか

既定で“出ていく”余地と、手元に寄せる設定

⚠ 既定だとクラウド経由になり得る

✓ ローカル/手元に寄せる設定

⚠ 既定だとクラウド経由になり得る: 観測モデルが hosted だと要約がクラウド経由

✓ ローカル/手元に寄せる設定: --provider host でローカル観測に寄せる

⚠ 既定だとクラウド経由になり得る: Cloud Sync オンだとスクショ等が cmem.ai に送られる

✓ ローカル/手元に寄せる設定: スクショは既定オフ。Cloud Sync を使わない

⚠ 既定だとクラウド経由になり得る: サインイン(メール magic link)でメモリ鍵を発行

✓ ローカル/手元に寄せる設定: CLAUDE_MEM_ONLINE_OPTIN=false で飛ばす

⚠ 既定だとクラウド経由になり得る: 機微情報もそのまま観測され得る

✓ ローカル/手元に寄せる設定: <private> タグで保存から除外する

出典: 同 README のプライバシー/プロバイダ設定(2026-11-04 確認)

README によれば、観測モデルを hosted(claude-mem observer)にすると要約がクラウド経由になり、Cloud Sync をオンにするとスクリーンショット等が cmem.ai に送られる(スクショ自体は既定オフ)。サインインはメールの magic link でメモリ鍵を発行する。手元に寄せたいなら、次のように締められる。

# サインインを飛ばす(オンライン前提をオフに)
export CLAUDE_MEM_ONLINE_OPTIN=false

# 観測をローカルに寄せる(プロバイダを明示)
npx claude-mem install --provider host

# 機微な中身は保存から除外(会話内でタグ付け)
#   <private> ここは記憶に残さない </private>

観測モデルは hosted/自前の OpenRouter・Gemini 鍵/Anthropic プランから選べる。社外に要約を出したくないなら自前鍵かローカル観測を選ぶ、という判断になる。記憶の中身は「あとで自分が引く資産」であると同時に「どこかに蓄積されるログ」でもある——この二面性を理解したうえで、プロバイダと Cloud Sync を決めるのがよい。

導入後にまず確認すること

入れたら、まず Web ビューアで「実際に何が記録されているか」を自分の目で見るのがよい。想定外のものが観測されていないか、<private> の除外が効いているかを確かめられる。挙動は ~/.claude-mem/settings.json で調整でき、モードは CLAUDE_MEM_MODE(例 code--zh)で切り替える。設定を変えたら Claude Code を再起動すること。

うまく動かないとき——フックが呼ばれない、ワーカーが起動しない——の窓口も用意されている。npx claude-mem repair で再設定し、npx claude-mem doctor で診断、それでも直らなければ npm run bug-report で情報を集めてから報告する。日々の検索では、get_observations に渡す ID をまとめてバッチで渡すのがコツだ(1件ずつ引くとレイテンシもトークンも無駄になる、と README も勧めている)。

似た記憶ツールとどう選ぶか

「エージェントに記憶」を謳う OSS は増えている。claude-mem の個性は、フック自動捕捉+圧縮+SQLite/Chroma+マルチエージェント対応を一体で持つ点だ。

観点 claude-mem 手書きの CLAUDE.md 汎用メモリAPI系
記録 フックで自動観測 人が手で書く アプリから明示保存
圧縮 観測モデルで要約 なし 実装次第
保存 SQLite+Chroma(同梱) テキスト1枚 外部サービス/DB
検索 search/timeline/get_observations 全文を読む APIクエリ
対象 Claude Code 他 複数エージェント そのツールのみ SDK 経由

手書きの CLAUDE.md は確実だが、増えるとトークンを食い、更新も人力だ。claude-mem は「書く手間」を自動化する代わりに、保存先と要約モデルの選択(=プライバシー)を自分で決める必要がある。設計思想の比較は deja-vu、記憶の持たせ方の別解は hindsight も参照したい。まず試すなら、ローカル観測(--provider host)+ Cloud Sync オフで入れて、Web ビューアで「何が記録されているか」を一度自分の目で見るのがおすすめだ。

参照ソース