Skip to main content
Glama

memem

Claude Codeのための、永続的で自己進化するメモリ。 セッションごとにプロジェクトを説明し直すのはもうやめましょう。

CI memem MCP server License: MIT Python 3.11+

LLM/AIツールの発見については、llms.txt を参照してください。

  ███╗   ███╗███████╗███╗   ███╗███████╗███╗   ███╗
  ████╗ ████║██╔════╝████╗ ████║██╔════╝████╗ ████║
  ██╔████╔██║█████╗  ██╔████╔██║█████╗  ██╔████╔██║
  ██║╚██╔╝██║██╔══╝  ██║╚██╔╝██║██╔══╝  ██║╚██╔╝██║
  ██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║
  ╚═╝     ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚═╝     ╚═╝
  persistent memory for Claude Code

mememとは?

mememは、Claude Codeにセッションをまたぐ永続的なメモリを提供するClaude Codeプラグインです。バックグラウンドのマイナーが完了したセッションから永続的な教訓(決定事項、規約、バグ修正、設定など)を抽出し、ObsidianボルトにMarkdownとして保存します。そして、新しいセッションを開始するたびに、クエリに合わせて調整されたブリーフィングを通じて、関連する情報を自動的に提示します。

ローカルファーストです:クラウドサービスやAPIキーは不要で、ベンダーロックインもありません。すべては ~/obsidian-brain/memem/memories/ 内に人間が読めるMarkdownとして保存されます。

mememを使うべき場面

以下のような場合にmememを使用してください:

  • Claude Codeを毎日使用しており、新しいセッションのたびにプロジェクトを説明し直している

  • Markdownとして閲覧・編集できる永続的なメモリが欲しい

  • ベンダーロックインのないローカルファーストなツールを好む

  • すでにObsidianを使用している(mememはボルトに直接プラグインできます)

以下のような場合はmememをスキップしてください:

  • CLAUDE.md で十分であり、バックグラウンドデーモンを動かしたくない

  • マシン間でクラウド同期されたメモリが必要(mememはローカル専用です)

  • Python 3.11未満の環境を使用している

mememはCLAUDE.mdとどう違うのですか?

CLAUDE.md はプロジェクトごとに手動で編集する単一のファイルです。mememは以下を提供します:

  • 自動抽出 — 手動でのメモ取りは不要。マイナーが完了したすべてのセッションから教訓をキャプチャします

  • クエリ認識型コンテキスト — 静的なダンプではなく、現在の質問に関連するメモリのみが注入されます

  • 自己進化 — プロジェクトの進化に合わせて、メモリが自動的に統合、更新、廃止されます

  • プロジェクト横断 — 1つのリポジトリに限定されず、使用するすべてのClaude Codeプロジェクトで機能します

  • セキュリティスキャン — すべての書き込みは、プロンプトインジェクションや認証情報の流出がないかスキャンされます

  • 閲覧可能 — Obsidianボルトにより、グラフビューやバックリンクを無料で利用できます

mememのインストール方法

/plugin marketplace add TT-Wang/memem
/plugin install memem

以上です。初回実行時に bootstrap.sh がすべてを自己修復します:

  1. Python 3.11以上であることを確認

  2. uv が不足している場合はインストール(公式のAstralインストーラー経由)

  3. プラグインローカルの .venv に依存関係を同期(uv.lock に対してハッシュキャッシュ)

  4. ~/.memem/~/obsidian-brain/ を作成し、カナリアテストを実行

  5. ~/.memem/.capabilities を書き込み(縮退モードの判断に使用)

  6. 実際のMCPサーバーを実行

初回実行: 約5秒。2回目以降: 約100ms。個別の pip install ステップは不要です。

最初のClaude Codeセッションでは何が起こりますか?

最初のメッセージを入力すると、UserPromptSubmitフックが起動し、メモリがゼロであることを検知して(インストール直後のため)、Claudeのコンテキストにウェルカムバナーを注入します。Claudeはそのバナーを読み、mememがアクティブであることを伝え、以前のClaude Codeセッションがある場合は /memem-mine-history を通じてそれらをマイニングすることを提案します。

通常通り作業してください。マイナーデーモンはバックグラウンドで静かに実行されます。セッションが終了し5分間経過すると、マイナーはClaude Haikuを使用してトランスクリプトからメモリを抽出し、ボルトに書き込みます。

2回目のセッション以降: フックが最初のメッセージを context_assemble に送信し、Haikuに関連メモリを渡して、調整されたブリーフィングを合成するよう求めます。[memem] 12 memories · miner OK · assembly OK のようなステータスバナーが表示され、その後にブリーフィングが続きます。Claudeは完全なコンテキストで開始するため、説明し直す必要はありません。

mememは何を保存しますか?

セッションログではなく、永続的な知識を保存します:

  • アーキテクチャの決定事項 とその根拠(「…のためRS256 JWTを使用する」)

  • 規約(「テストは spec/ ではなく tests/ に配置する」)

  • 忘れてしまいそうなバグ修正(「bcrypt.compareは非同期 — await が必要」)

  • ユーザーの好み(「スタックされたPRではなく、単一のコミットを好む」)

  • 既知の問題(「JWT_SECRETが未設定の場合、デフォルトで 'secret' になる — #123 で追跡」)

以下は保存しません:

  • 生のセッショントランスクリプト(これらは transcript_search で検索可能であり、メモリとして保存されません)

  • 自明な事実

  • セッションの結果(「今日はXに取り組んだ」)

mememはどこにメモリを保存しますか?

ストア

パス

目的

メモリ

~/obsidian-brain/memem/memories/*.md

真実のソース(人間が読めるMarkdown)

プレイブック

~/obsidian-brain/memem/playbooks/*.md

プロジェクトごとのキュレーションされたブリーフィング

検索DB

~/.memem/search.db

SQLite FTS5インデックス(マシン高速ルックアップ)

テレメトリ

~/.memem/telemetry.json

アクセス追跡(アトミック書き込み)

イベントログ

~/.memem/events.jsonl

追記専用の監査証跡

機能

~/.memem/.capabilities

ブートストラップによって書き込まれる縮退モードフラグ

ブートストラップログ

~/.memem/bootstrap.log

初回実行時の診断

MEMEM_DIR および MEMEM_OBSIDIAN_VAULT 環境変数を使用して、mememの保存先を別の場所に指定できます。

Claudeが呼び出せるMCPツールは何ですか?

ツール

動作

memory_save(content, title, tags)

教訓を保存。書き込み前にプロンプトインジェクションと認証情報流出のセキュリティスキャンが行われます。

memory_recall(query, limit)

メモリを検索。FTS5 + 時間的減衰 + アクセス強化 + 重要度重み付け。

memory_list(scope_id)

プロジェクトごとにグループ化された、統計付きの全メモリをリスト表示。

memory_import(source_path)

ファイル、ディレクトリ、またはチャットエクスポートからのバルクインポート。

transcript_search(query)

生のClaude CodeセッションJSONLログを検索(マイニングされたメモリではありません)。

context_assemble(query, project)

プレイブック + メモリ + トランスクリプトから、オンデマンドでクエリに合わせて調整されたブリーフィングを作成。

mememが追加するスラッシュコマンドは何ですか?

  • /memem — ウェルカム、ステータス、ヘルプ

  • /memem-status — メモリ数、プロジェクト、検索DBサイズ、マイナーの健全性

  • /memem-doctor — ブロッカーに対する修正手順を含む事前健全性チェック

  • /memem-mine — マイナーデーモンを手動で開始(通常は自動開始)

  • /memem-mine-history — オプトイン:インストール前のすべてのClaude Codeセッションをマイニング

claude CLIがPATHにない場合はどうなりますか?

mememは縮退モードに入ります。機能はしますが、Haikuによるコンテキストアセンブリとスマートリコールは使用できません。クエリに合わせて調整されたブリーフィングの代わりに、FTSのみのキーワードリコールが提供されます。各セッションのコンテキスト上部に [memem] N memories · miner OK · assembly degraded (claude CLI missing — FTS-only recall) と表示されるため、理由がわかります。

これは設計によるものです:オプションの依存関係が欠けている場合は失敗させるのではなく、機能を縮退させるべきです。

問題を診断するにはどうすればよいですか?

/memem-doctor を実行してください。ブートストラップシムが実行するのと同じ事前チェック(Pythonバージョン、mcp のインポート可否、PATH上の claude CLI、ディレクトリの書き込み権限、uv の利用可否)を実行し、各ブロッカーに対する明確な修正手順とともに HEALTHYDEGRADED、または FAILING とラベル付けされたレポートを出力します。

より詳細なデバッグについては:

tail -f ~/.memem/bootstrap.log   # first-run shim log
tail -f ~/.memem/miner.log       # miner daemon log
cat ~/.memem/events.jsonl        # memory operation audit trail
python3 -m memem.server --status   # detailed status dump

マイニングパイプラインはどのように機能しますか?

Session ends → miner daemon sees the JSONL file in ~/.claude/projects/
  → Waits 5 minutes for the file to "settle" (no more writes)
  → Filters to human messages + assistant prose (strips tool calls, system reminders)
  → One Haiku call with the full context: "extract durable lessons"
  → Haiku returns JSON array of memory candidates
  → Each candidate runs: security scan → dedup check → contradiction detection → save
  → Index rebuilt, per-project playbooks grown and refined
  → Session marked COMPLETE in ~/.memem/.mined_sessions

リコールパイプラインはどのように機能しますか?

First message in a new session → auto-recall.sh hook fires
  → Reads ~/.memem/.capabilities for status banner
  → If claude CLI is available → sends (message, memories) to Haiku
      → Haiku synthesizes a focused briefing (300-800 tokens usually)
      → Brief injected into Claude's context as "memem context briefing"
  → If claude CLI is missing → falls back to FTS-only keyword recall
  → Either way, Claude starts its reply with relevant context already loaded

アーキテクチャ

mememは小さく焦点を絞ったモジュールに分割されています:

  • models.py — データ型、パス定数

  • security.py — プロンプトインジェクション + 認証情報流出スキャン

  • telemetry.py — アクセス追跡、イベントログ(アトミック書き込み、fcntlロック)

  • search_index.py — SQLite FTS5インデックス

  • obsidian_store.py — メモリI/O、重複排除スコアリング、矛盾検出

  • playbook.py — プロジェクトごとのプレイブックの成長 + 洗練

  • assembly.py — Haikuによるコンテキストアセンブリ

  • capabilities.py — 縮退モードのためのランタイム機能検出

  • storage.py — サーバーライフサイクルヘルパー(PID管理、マイナー自動開始)

  • server.py — 軽量なMCPエントリーポイント(FastMCPを遅延インポート)

  • cli.py — 非MCPエントリーポイント用のコマンドディスパッチャー

  • mining.py — セッションマイニングパイプライン

マルチシグナルリコールスコアリング:

  • 50% FTS関連性

  • 15% 新規性 (0.995^時間 減衰)

  • 15% アクセス履歴 (使用頻度による強化)

  • 20% 重要度 (Haikuによる1-5スケール)

メモリのスキーマ (Markdownフロントマター):

---
id: uuid
schema_version: 1
title: "descriptive title"
project: project-name
tags: [mined, project-name]
related: [id1, id2, id3]
created: 2026-04-13
updated: 2026-04-13
source_type: mined | user | import
source_session: abc12345
importance: 1-5
status: active | deprecated
valid_to:                     # set when deprecated
contradicts: [id1]            # flagged conflicts
---

設定

環境変数

デフォルト

目的

MEMEM_DIR

~/.memem

状態ディレクトリ(PIDファイル、検索DB、ログ)

MEMEM_OBSIDIAN_VAULT

~/obsidian-brain

ボルトの場所

MEMEM_EXTRA_SESSION_DIRS

(なし)

マイニングする追加セッションディレクトリ(コロン区切り)

MEMEM_MINER_SETTLE_SECONDS

300

完了したセッションをマイニングするまでの待機秒数

MEMEM_SKIP_SYNC

0

1 に設定するとブートストラップが uv sync をスキップ(開発用のみ)

Obsidianのセットアップ (オプション、推奨)

mememはObsidianなしでも機能し、Markdownを書き込むだけです。しかし、Obsidianを使用するとグラフビューとバックリンクを無料で利用できます:

  1. ダウンロード: https://obsidian.md (無料)

  2. ~/obsidian-brain をボルトとして開く

  3. メモリは memem/memories/ に、プレイブックは memem/playbooks/ に表示されます

  4. グラフビューを使用して、related フィールドを通じてメモリがどのようにリンクしているかを確認できます

要件

  • Claude Code

  • Python 3.11以上

  • uv (初回実行時に bootstrap.sh によって自動インストール)

  • PATH上の claude CLI (オプション — Haikuによるアセンブリに必要。縮退モードはこれなしでも動作します)

開発

git clone https://github.com/TT-Wang/memem.git
cd memem
pip install -e ".[dev]"
pytest             # 54 tests
ruff check .       # lint
mypy memem # type check (strict)

PRプロセスについては CONTRIBUTING.md を、バージョン履歴については CHANGELOG.md を参照してください。

ライセンス

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TT-Wang/cortex-plugin'

If you have feedback or need assistance with the MCP directory API, please join our Discord server