Memnest について
Memnest は、コーディング AI 向けのローカルメモリーサービスです。LLM が生成した要約ではなく会話の原文を保存し、ソース ID 付きで過去の議論や決定を検索できます。複数のコーディングクライアントで共有するローカル記録を必要とする開発者向けです。
主な機能
- 01会話の原文を保存
- 02BM25 とローカル埋め込みによる検索
- 03ソース ID 付きで記録を参照
- 04メモリーの保存・修正・削除
- 05複数のコーディングクライアントでローカルストアを共有
活用シーン
- 01プロジェクトの決定に至った議論を検索
- 02以前のエラー対応を確認
- 03別のコーディングクライアントから文脈を取得
MCP 対応
Memnest は `http://127.0.0.1:3111/mcp` でローカル MCP サーバーを実行します。メモリーの保存、検索、読み取り、修正、削除を行うツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
memnest
コーディング AI はセッションが終わるとすべて忘れてしまいます。Memnest を使えば、AI が書いた要約ではなく、元の会話から以前に何を決めたのか、その理由を調べられます。
- 要約ではなく、元のテキストです。 LLM が履歴を書き換えることはありません。保存や検索でモデル API を呼び出さないため、API キーも追加のトークン料金も不要です。すべての結果には、開いて確認できるソース ID が付いています。
- あらゆるコーディング AI で、同じメモリを使えます。 Claude Code、Codex、Cursor、pi は同じローカルサービスに接続します。Claude Code で決めたことを、Codex から調べられます。
- データはマシン上にとどまります。 SQLite とローカルの多言語埋め込みモデルを備えた Rust バイナリは 1 つだけです。認証情報は、別の暗号化された保管庫に保存されます。
インストール
curl -fsSL https://raw.githubusercontent.com/Blue-B/memnest/main/core/scripts/install.sh | bash
ユーザー向けに最新リリースをインストールし、サーバーと会話ウォッチャーを起動して、見つかった Claude Code、Codex、Cursor の設定に Memnest を追加します。既存の設定は最初にバックアップされ、復元コマンドが表示されます。
必要条件:Apple Silicon 搭載の macOS、または x86_64(glibc 2.35 以降。例:Ubuntu 22.04、Debian 12)もしくは Arm64(glibc 2.39 以降。例:Ubuntu 24.04)で systemd を使用する Linux。セットアップには Python 3 が必要です。初回の書き込みまたは検索時に約 1.1 GB の埋め込みモデルがダウンロードされ、埋め込み処理には約 1.9 GB の RAM を使用する場合があります。
スクリプトを先に確認する、バージョンを固定する、またはアップグレードする
curl -fsSL https://raw.githubusercontent.com/Blue-B/memnest/main/core/scripts/install.sh \
-o /tmp/memnest-install.sh
less /tmp/memnest-install.sh
VERSION=v0.4.3 bash /tmp/memnest-install.sh --user
既存のインストールをアップグレードする前に、memory.db と master.key を一緒にバックアップしてください。
動作を見る
別々の 2 つのクライアントで、ローカルのストアは 1 つです。MCP 経由で保存した記録が、独立した検索から同じ ID で取得されます。自分のマシンで再現できます。
使いどころ
蓄積された記録を使って、次のような質問に答えられます。
タスク管理ツールを切り替えた理由は何ですか?その決定に至った議論を探してください。
このプロジェクトで最後に決めたデプロイ方法は何ですか?その理由も教えてください。
前回このエラーが発生したとき、何を試しましたか?
AI はメモリを検索し、関連するソースを読み、それを使って回答します。結果にはソース ID が含まれるため、根拠を確認できます。これらはリクエストの例であり、自律的なデモでも、回答が見つかることを保証するものでもありません。
毎回適用する少数のルールなら、AGENTS.md または CLAUDE.md のほうが簡単です。Memnest は、必要なときに調べたい、増え続ける会話や決定の履歴を扱うためのものです。
pi に接続する
コアが起動したら、対応する拡張機能をインストールします。
# Published extension for core 0.4.x
pi install npm:[email protected]
# Or connect a reviewed source checkout
pi install ./pi-extension
別のソースから Memnest がすでに登録されている場合は、二重に読み込まれないよう、先にその登録を削除してください。pi で /memnest を使って接続を確認します。拡張機能の設定をご覧ください。
ローカル開発:vault ツールの設定
拡張機能では、デフォルトで5つのメモリツールのみが公開されます。pi で secret_set、secret_get、secret_list、secret_delete を使って認証情報を保存および取得するには、pi を起動する前に vault ツールを有効にしてください。
export MEMNEST_EXPOSE_SECRET_TOOLS=1
pi
変数を変更した後は pi を再起動してください。/reload だけでは、実行中のプロセス環境を変更できません。vault ツールが利用可能かどうかは /memnest で確認できます。また、ツールが非表示の場合は有効化のヒントが表示されます。
その他の MCP クライアントは http://127.0.0.1:3111/mcp に接続します。接続例、その他の環境とソースからのインストール、アップグレードと復旧をご覧ください。Intel Mac ではソースからのビルドが必要です。
使い方
接続した AI に、以前の会話や決定事項を検索するよう依頼してください。自動想起はデフォルトでオフになっているため、必要なときに検索を依頼するところから始められます。自動想起を有効にするには、拡張機能の設定をご覧ください。
ツールを直接呼び出すクライアントは、次のフローを使用します。
memory_search(query="reason for switching task managers")
memory_get(id="<ID returned by search>")
5つのツールで、保存、検索、読み取り、修正、削除を行えます。重要な決定事項を明示的に保存するには、memory_remember を使用します。事実が変わった場合は、supersedes=<old ID> を指定して新しい内容を保存し、以前の記録と関連付けます。
ホストから現在のディレクトリが提供される場合、検索対象にはそのワークスペースと共有の playbook が含まれます。意図的にプロジェクト横断検索を行うには、project=all を指定してください。長い記録や近接する会話の項目については、ソースの読み取りをご覧ください。
インストール前の会話は、すべてが自動的にインポートされるわけではありません。履歴のインポートを使って、必要な元ファイルを選択してください。
ソースに裏付けられたコーディング記録(0.4.0)
報告を検証済みとして扱わずに、アプローチを提案済み、失敗、または成功報告として保存できます。任意で memory_remember(code_files=["relative/file"]) を使って選択したローカルファイルを添付し、そのバイト列と比較する場合は memory_get(check_code=true) を実行してください。無関係な編集によって警告が発生することはありません。コードの証拠をご覧ください。
任意のチームアクセスを追加すると、名前付きプロジェクトへの許可、監査、保持機能を利用できます。無料のローカル比較では、Memnest の得意な点とそうでない点を記録します。普遍的な精度の優位性を主張するものではありません。
重要な制限事項
- 検索は真偽の確認ではありません。 検索で関連する記録を見つけられない場合があります。Memnest は、過去の決定が今も有効かどうかを判断できません。後続ソースのヒントは、検証済みの返信関係ではありません。
- 取り込みは選択的です。 保存されるのは表示された会話テキストであり、推論、ツールの通信、画像、サブエージェントの会話は保存されません。ChatGPT や Claude に組み込まれたメモリはインポートされません。
- ストレージはローカルにあり、接続先の AI が回答します。 デフォルトのストレージと検索では、生成 LLM の呼び出しは行われません。明示的に
evidence_only=trueを指定すると、設定済みのローカルソース選択モデルが有効になりますが、その判断は検証されていません。クラウド AI プロバイダーには、モデルに送信する取得済みテキストが渡されます。 - 通常のメモリは暗号化されません。 マスキングでは既知の認証情報のパターンに対応しますが、あらゆる種類の秘密情報を検出できるわけではありません。ポート 3111 をインターネットに直接公開しないでください。
- ウェブコネクターはメモリへのネットワーク経路になります。 ChatGPT と Grok のコネクターには公開 URL が必要です。取得されたテキストはプロバイダーのサーバーに届き、その URL は認証情報として機能します。ウェブコネクターを参照してください。
- 削除しても即時に消去されるわけではありません。 記録はデフォルトで 30 日間ゴミ箱に保管されます。新しいプレーンテキストのアーカイブはデフォルトで無効ですが、古いアーカイブ、バックアップ、外部の会話記録にはコピーが残っている場合があります。セキュリティと削除の制限を参照してください。
ドキュメントとチェック
1 つの Rust サービスがソース記録を SQLite に保存し、BM25 とローカルの多言語埋め込みを使用して検索します。検索インデックスはソース記録から再構築できます。
- ChatGPT と Grok のウェブコネクター、実際のクライアントによる検証、再現可能な共有ストアのデモ
- 後続ソースのチェックと制限、検索評価、記録済みの 3 つの質問による想起チェック
- 設計上の決定、運用とバックアップ、コントリビューション
- 最新リリースと変更履歴
ライセンス
MIT © Blue-B
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
