EchoVault Memory について
EchoVault Memoryは、コーディングエージェント向けのローカルメモリシステムで、決定事項、バグ、プロジェクトのコンテキストをセッション間で保持します。Goバイナリで共有Markdown保管庫とキーワード検索を提供し、任意でセマンティック検索にも対応します。
主な機能
- 01MCPでセッションメモリを保存・取得
- 024種類のエージェントで保管庫を共有
- 03FTS5と任意のベクトル検索
- 04保存前にシークレットを除去
- 05Obsidian互換Markdownでメモリを保存
活用シーン
- 01セッション開始時にプロジェクトの決定事項を復元
- 02過去のバグや実装コンテキストを検索
- 03対応するコーディングエージェント間でメモリを共有
MCP 対応
MCPサーバーとして動作し、`memory_save`、`memory_search`、`memory_context`ツールを公開します。CLIからClaude Code、Cursor、Codex、OpenCode用のサーバー設定を行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e MEMORY_HOME ghcr.io/go-ports/echovault:0.3.3MEMORY_HOMEDirectory where memories are stored. Ensure this path is mounted to persistent storage for data retention across container restarts.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/go-ports/echovault:0.3.3stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
EchoVault — Go
コーディングエージェントのためのローカルメモリです。エージェントはセッションをまたいで決定事項、バグ、コンテキストを記憶します。クラウドも、API キーも、費用も不要です。
これは EchoVault のGo 移植版です。Python ランタイムへの依存がない、単一の静的バイナリです。Vault の形式と MCP インターフェースは Python 版と完全に互換性があり、メモリを失うことなく切り替えられます。
機能
4 つのエージェントで動作 — Claude Code、Cursor、Codex、OpenCode に対応しています。1 つのコマンドで、お使いのエージェントの MCP 設定を行えます。
MCP ネイティブ — MCP サーバーとして動作し、memory_save、memory_search、memory_context をツールとして公開します。エージェントはこれらを直接呼び出すため、シェルフックは不要です。
ローカル優先 — すべてのデータはお使いのマシンに保存されます。メモリは ~/.memory/vault/ に Markdown 形式で保存され、Obsidian や任意のエディターで読み取れます。
アイドル時のコストゼロ — バックグラウンドプロセスも、デーモンも、RAM のオーバーヘッドもありません。MCP サーバーはエージェントが起動したときにのみ実行されます。
ハイブリッド検索 — FTS5 によるキーワード検索をすぐに利用できます。Ollama または OpenAI を追加すると、セマンティックなベクトル検索が使えます。
シークレットのマスキング — 3 層のマスキングにより、ディスクに書き込まれる前に API キー、パスワード、認証情報を取り除きます。明示的な <redacted> タグ、パターン検出、カスタム .memoryignore ルールに対応しています。
エージェント間で共有 — Claude Code で保存したメモリは、Cursor、Codex、OpenCode から検索できます。1 つの Vault を複数のエージェントで利用できます。
Obsidian 互換 — セッションファイルは YAML フロントマター付きの有効な Markdown です。Obsidian で ~/.memory/vault/ を開くと、エージェントのメモリを視覚的に閲覧できます。
インストール
ビルド済みバイナリ
お使いのプラットフォーム向けの最新リリースをリリースページからダウンロードし、$PATH 上の任意の場所にバイナリを配置してください。
ソースからビルド
git clone https://github.com/go-ports/echovault.git
cd echovault
make build # produces ./bin/memory
sudo cp bin/memory /usr/local/bin/
CGO が必要です。 このバイナリは
go-sqlite3とsqlite-vecにリンクするため、C コンパイラー(gcc/clang)が必要です。macOS ではxcode-select --install、Debian/Ubuntu ではapt install build-essentialを実行してください。
初回起動
memory init
memory setup claude-code # or: cursor, codex, opencode
これで完了です。memory setup を実行すると、MCP サーバーの設定が自動的にインストールされます。
デフォルトでは、設定はグローバルにインストールされます。特定のプロジェクトにインストールするには、次のようにします。
cd ~/my-project
memory setup claude-code --project # writes .mcp.json in project root
memory setup opencode --project # writes opencode.json in project root
memory setup codex --project # writes .codex/config.toml + AGENTS.md
埋め込みの設定(任意)
埋め込みを有効にすると、セマンティック検索が利用できます。埋め込みを設定しなくても、FTS5 による高速なキーワード検索を利用できます。
初期設定ファイルを生成します。
memory config init
これにより、適切なデフォルト値を設定した ~/.memory/config.yaml が作成されます。
embedding:
provider: ollama # ollama | openai | openrouter
model: nomic-embed-text
context:
semantic: auto # auto | always | never
topup_recent: true
各セクションの役割:
embedding— メモリをセマンティック検索用のベクトルに変換する方法を設定します。ollamaはローカルで実行され、openaiとopenrouterはクラウド API を呼び出します。Ollama ではnomic-embed-textがローカルモデルとして適しています。context— セッション開始時にメモリを取得する方法を設定します。autoは、埋め込みが利用可能な場合はベクトル検索を使い、利用できない場合はキーワード検索にフォールバックします。topup_recentを設定すると、最近のメモリも含めるため、エージェントが新しいコンテキストを利用できます。
クラウドプロバイダーを使用する場合は、プロバイダーのセクションに api_key を追加してください。API キーは memory config の出力でマスキングされます。
メモリの保存場所を設定する
デフォルトでは、EchoVault はデータを ~/.memory に保存します。
保存場所は次の 2 つの方法で変更できます。
MEMORY_HOME=/path/to/memory(優先度が最も高く、シェル/プロセスごとに設定)memory config set-home /path/to/memory(永続的なデフォルト設定)
便利なコマンド:
memory config set-home /path/to/memory
memory config clear-home
memory config
memory config を実行すると、memory_home と memory_home_source(env、config、または default)の両方が表示されます。
グローバルフラグ --memory-home を指定すると、単一の実行に限り、すべての設定が上書きされます。
memory --memory-home /tmp/test-vault search "authentication"
使い方
セットアップが完了すると、エージェントは MCP ツールを使ってメモリを利用します。
- セッション開始時 — エージェントは
memory_contextを呼び出し、以前の決定事項やコンテキストを読み込みます - 作業中 — エージェントは
memory_searchを呼び出し、関連するメモリを検索します - セッション終了時 — エージェントは
memory_saveを呼び出し、決定事項、バグ、学びを保存します
MCP ツールの説明により、エージェントは自動的に保存と取得を行うよう指示されます。ほとんどの場合、手動でプロンプトを入力する必要はありません。
CLI を直接使うこともできます。
memory save --title "Switched to JWT auth" \
--what "Replaced session cookies with JWT" \
--why "Needed stateless auth for API" \
--impact "All endpoints now require Bearer token" \
--tags "auth,jwt" --category "decision" \
--details "Context:
Options considered:
- Keep session cookies
- Move to JWT
Decision:
Tradeoffs:
Follow-up:"
memory search "authentication"
memory details <id>
memory context --project
長い詳細には --details-file notes.md を使います。構造化された詳細を自動的に準備するには、--details-template を使います。
仕組み
~/.memory/
├── vault/ # Obsidian-compatible Markdown
│ └── my-project/
│ └── 2026-02-01-session.md
├── index.db # SQLite: FTS5 + sqlite-vec
└── config.yaml # Embedding provider config
- Markdown の保管庫 — セッションごと、プロジェクトごとに 1 つのファイルを作成し、YAML フロントマターを含みます
- SQLite インデックス — キーワード検索には FTS5、セマンティックベクトルには sqlite-vec を使用します
- 簡潔なポインター — 検索結果は約 50 トークンの要約を返し、完全な詳細は必要に応じて取得します
- 3 層のマスキング — 明示的なタグ、パターンマッチング、
.memoryignoreルールを使用します
対応エージェント
| エージェント | セットアップコマンド | インストールされるもの |
|---|---|---|
| Claude Code | memory setup claude-code | .mcp.json(プロジェクト)または ~/.claude.json(グローバル)に MCP サーバー |
| Cursor | memory setup cursor | .cursor/mcp.json に MCP サーバー |
| Codex | memory setup codex | .codex/config.toml に MCP サーバーと AGENTS.md のフォールバック |
| OpenCode | memory setup opencode | opencode.json(プロジェクト)または ~/.config/opencode/opencode.json(グローバル)に MCP サーバー |
すべてのエージェントは、有効な memory_home パス(デフォルトは ~/.memory/)にある同じメモリ保管庫を共有します。Claude Code で保存したメモリは、Cursor、Codex、OpenCode からも検索できます。
コマンド
| コマンド | 説明 |
|---|---|
memory init | 有効なメモリホームに保管庫を作成します |
memory setup <agent> | エージェント用の MCP サーバー設定をインストールします |
memory uninstall <agent> | エージェント用の MCP サーバー設定を削除します |
memory save ... | メモリを保存します(--details-file と --details-template に対応) |
memory search "query" | FTS とセマンティック検索を組み合わせて検索します |
memory details <id> | メモリの詳細をすべて表示します |
memory delete <id> | ID またはプレフィックスを指定してメモリを削除します |
memory context --project | 現在のプロジェクトのメモリ一覧を表示します |
memory sessions | セッションファイルの一覧を表示します |
memory config | 有効な設定を表示します |
memory config init | 初期設定用の config.yaml を生成します |
memory config set-home <path> | デフォルトのメモリ保存先を永続化します |
memory config clear-home | 永続化されたメモリ保存先を削除します |
memory reindex | プロバイダーの変更後にベクトルを再構築します |
memory mcp | MCP サーバーを起動します(stdio トランスポート) |
グローバルフラグ
| フラグ | 説明 |
|---|---|
--memory-home <path> | この実行に限りメモリホームを上書きします |
--help | 任意のコマンドのヘルプを表示します |
アンインストール
memory uninstall claude-code # or: cursor, codex, opencode
rm /usr/local/bin/memory
保存済みのメモリもすべて削除するには、rm -rf ~/.memory/ を実行します。
プライバシー
デフォルトでは、すべてのデータはローカルに保存されます。埋め込みに OpenAI または OpenRouter を設定した場合、それらの API 呼び出しは各サービスのサーバーに送信されます。完全にローカルで運用するには Ollama を使用してください。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。