Claude-Mem

Claude Code 向けの永続メモリ圧縮。セッションをまたいでコンテキストを保持し、ツール利用の観察を要約して将来のセッションに注入する。

1 — 概要

Claude-MemClaude Code 用のプラグインで、セッション終了や再接続後もプロジェクトの知識を継続させる。ツール使用の観察を自動で取り込み、Claude Agent SDK でセマンティック要約を生成し、DB とベクトル検索で保持。新しいセッション開始時に関連コンテキストを注入する。

5ライフサイクルフック
37777Worker ポート
SQLiteDB
Chromaベクトル検索

主な機能: 永続メモリ、Progressive Disclosure(段階的なコンテキスト取得)、mem-search スキルによる自然言語検索、Web Viewer(localhost:37777)、<private> タグによるプライバシー制御、コンテキスト注入の細かい設定。

2 — アーキテクチャ

5 つのライフサイクルフックで Claude Code のセッションイベントにフックする: SessionStartUserPromptSubmitPostToolUseSummarySessionEnd。フックは src/hooks/*.ts で TypeScript に書き、plugin/scripts/*-hook.js にビルドされる。

コンポーネント説明
Worker Servicesrc/services/worker-service.ts。Express API がポート 37777 で待ち受け、Bun で起動。AI 処理は非同期。
Databasesrc/services/sqlite/。SQLite3 で ~/.claude-mem/claude-mem.db。セッション・観察・要約を保存。
Chromasrc/services/sync/ChromaSync.ts。ベクトル埋め込みでセマンティック検索。
Viewer UIsrc/ui/viewer/。React の Web UI。http://localhost:37777 で表示。ビルド成果は plugin/ui/viewer.html
mem-search Skillplugin/skills/mem-search/SKILL.md。過去作業の検索用 HTTP API。履歴に関する質問で自動起動。

<private>content</private> でユーザーが指定した範囲は保存されない。タグの除去はフック層(src/utils/tag-stripping.ts)で行い、Worker や DB に渡る前に処理する。

3 — 使い方

Claude Code のターミナルで次を実行:

/plugin marketplace add thedotmack/claude-mem

/plugin install claude-mem

Claude Code を再起動すると、前のセッションのコンテキストが新しいセッションに自動で現れる。

OpenClaw ゲートウェイに永続メモリとして導入する場合:

curl -fsSL https://install.cmem.ai/openclaw.sh | bash

インストーラが依存関係・プラグイン・Worker 起動などをまとめて行う。npm の npm install -g claude-mem は SDK/ライブラリのみで、プラグインフックや Worker は入らない。プラグインとして使う場合は上記 /plugin コマンドを使う。

トークン効率のため、searchtimelineget_observations の 3 段階で絞り込んでから詳細を取得する。

レイヤーツール役割
1searchコンパクトなインデックスと ID を取得(結果あたり約 50–100 トークン)
2timeline気になる結果の前後の時系列コンテキストを取得
3get_observationsフィルタした ID の観察の詳細のみ取得(結果あたり約 500–1000 トークン)。複数 ID はまとめて指定する。

最初に search でインデックスを取り、必要な ID を選んでから get_observations で詳細を取ることで、トークンが約 10 倍節約できる。

設定は ~/.claude-mem/settings.json。初回起動時にデフォルトで自動作成される。AI モデル、Worker ポート、データディレクトリ、ログレベル、コンテキスト注入の細かいオプションを変更できる。