memory
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@memorysave that we decided to use Postgres for the new auth service"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
This is the Go port of EchoVault. It is a single static binary with no Python runtime dependency. The vault format and MCP interface are fully compatible with the Python version — you can switch between them without losing any memories.
Features
Works with 4 agents — Claude Code, Cursor, Codex, OpenCode. One command sets up MCP config for your agent.
MCP native — Runs as an MCP server exposing memory_save, memory_search, and memory_context as tools. Agents call them directly — no shell hooks needed.
Local-first — Everything stays on your machine. Memories are stored as Markdown in ~/.memory/vault/, readable in Obsidian or any editor.
Zero idle cost — No background processes, no daemon, no RAM overhead. The MCP server only runs when the agent starts it.
Hybrid search — FTS5 keyword search works out of the box. Add Ollama or OpenAI for semantic vector search.
Secret redaction — 3-layer redaction strips API keys, passwords, and credentials before anything hits disk. Supports explicit <redacted> tags, pattern detection, and custom .memoryignore rules.
Cross-agent — Memories saved by Claude Code are searchable in Cursor, Codex, and OpenCode. One vault, many agents.
Obsidian-compatible — Session files are valid Markdown with YAML frontmatter. Point Obsidian at ~/.memory/vault/ and browse your agent's memory visually.
Related MCP server: Turbo Quant Memory MCP Server
Install
Pre-built binary
Download the latest release for your platform from the releases page and place the binary somewhere on your $PATH.
Build from source
git clone https://github.com/go-ports/echovault.git
cd echovault
make build # produces ./bin/memory
sudo cp bin/memory /usr/local/bin/CGO required. The binary links against
go-sqlite3andsqlite-vec, so a C compiler (gcc/clang) must be present. On macOS:xcode-select --install. On Debian/Ubuntu:apt install build-essential.
First run
memory init
memory setup claude-code # or: cursor, codex, opencodeThat's it. memory setup installs the MCP server config automatically.
By default the config is installed globally. To install for a specific project:
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.mdConfigure embeddings (optional)
Embeddings enable semantic search. Without them, you still get fast keyword search via FTS5.
Generate a starter config:
memory config initThis creates ~/.memory/config.yaml with sensible defaults:
embedding:
provider: ollama # ollama | openai | openrouter
model: nomic-embed-text
context:
semantic: auto # auto | always | never
topup_recent: trueWhat each section does:
embedding— How memories get turned into vectors for semantic search.ollamaruns locally;openaiandopenroutercall cloud APIs.nomic-embed-textis a good local model for Ollama.context— Controls how memories are retrieved at session start.autouses vector search when embeddings are available, falls back to keywords.topup_recentalso includes recent memories so the agent has fresh context.
For cloud providers, add api_key under the provider section. API keys are redacted in memory config output.
Configure memory location
By default, EchoVault stores data in ~/.memory.
You can change that in two ways:
MEMORY_HOME=/path/to/memory(highest priority, per-shell/per-process)memory config set-home /path/to/memory(persistent default)
Useful commands:
memory config set-home /path/to/memory
memory config clear-home
memory configmemory config shows both memory_home and memory_home_source (env, config, or default).
The --memory-home global flag overrides everything for a single invocation:
memory --memory-home /tmp/test-vault search "authentication"Usage
Once set up, your agent uses memory via MCP tools:
Session start — agent calls
memory_contextto load prior decisions and contextDuring work — agent calls
memory_searchto find relevant memoriesSession end — agent calls
memory_saveto persist decisions, bugs, and learnings
The MCP tool descriptions instruct agents to save and retrieve automatically. No manual prompting needed in most cases.
You can also use the CLI directly:
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 --projectFor long details, use --details-file notes.md. To scaffold structured details automatically, use --details-template.
How it works
~/.memory/
├── vault/ # Obsidian-compatible Markdown
│ └── my-project/
│ └── 2026-02-01-session.md
├── index.db # SQLite: FTS5 + sqlite-vec
└── config.yaml # Embedding provider configMarkdown vault — one file per session per project, with YAML frontmatter
SQLite index — FTS5 for keywords, sqlite-vec for semantic vectors
Compact pointers — search returns ~50-token summaries; full details fetched on demand
3-layer redaction — explicit tags, pattern matching, and
.memoryignorerules
Supported agents
Agent | Setup command | What gets installed |
Claude Code |
| MCP server in |
Cursor |
| MCP server in |
Codex |
| MCP server in |
OpenCode |
| MCP server in |
All agents share the same memory vault at your effective memory_home path (default ~/.memory/). A memory saved by Claude Code is searchable from Cursor, Codex, or OpenCode.
Commands
Command | Description |
| Create vault at effective memory home |
| Install MCP server config for an agent |
| Remove MCP server config for an agent |
| Save a memory ( |
| Hybrid FTS + semantic search |
| Full details for a memory |
| Delete a memory by ID or prefix |
| List memories for current project |
| List session files |
| Show effective config |
| Generate a starter config.yaml |
| Persist default memory location |
| Remove persisted memory location |
| Rebuild vectors after changing provider |
| Start the MCP server (stdio transport) |
Global flags
Flag | Description |
| Override memory home for this invocation |
| Show help for any command |
Uninstall
memory uninstall claude-code # or: cursor, codex, opencode
rm /usr/local/bin/memoryTo also remove all stored memories: rm -rf ~/.memory/
Privacy
Everything stays local by default. If you configure OpenAI or OpenRouter for embeddings, those API calls go to their servers. Use Ollama for fully local operation.
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Shared memory for coding agents. Stop re-explaining your codebase every session.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Persistent memory for AI agents. Search and store durable facts, preferences and decisions.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceProvides AI coding agents with persistent, long-term memory through local semantic search and SQLite storage. It enables agents to save and retrieve architectural decisions or project context across different conversation sessions without requiring cloud services.MIT
- FlicenseNot gradedqualityAmaintenanceProvides persistent, local-first memory with knowledge graph and hybrid search for AI coding agents, reducing token usage by storing decisions, patterns, and codebase context.8-
- AlicenseNot gradedqualityBmaintenancePersistent shared memory for AI coding agents that turns a folder of markdown files into searchable memory across sessions, repos, and machines.11 npmFunctional Source , Version 1.1, MIT Future
- AlicenseNot gradedqualityCmaintenanceProvides persistent, searchable memory and knowledge capture for AI-assisted development, enabling agents to retain decisions, bugs, and patterns across sessions and projects.MIT