# Memo

Persistent, local-first semantic memory for AI coding agents.

- Category: Developer Tools
- Pricing: Free
- Tags: Coding Assistants, Knowledge Management
- Website: https://github.com/ybonda/memo
- Aigregator page: https://aigregator.com/tools/memo
- API: https://x402.aigregator.com/v1/tools/memo

## Overview
Memo is a local MCP server that gives AI coding agents like Claude Code, Cursor, and Windsurf persistent memory across sessions. It stores memories semantically using embeddings and vector search in a local SQLite database, allowing agents to recall architecture decisions, bug patterns, and project context without losing information between conversations. Every memory is automatically mirrored to an Obsidian-compatible vault, letting you browse and graph your memory store using Obsidian's full UI. The tool uses pure Go embeddings (GoMLX with BAAI/bge-small-en-v1.5 model) and sqlite-vec for cosine distance search, keeping everything on your machine with zero cloud dependencies. One limitation is that body edits made directly in Obsidian are silently overwritten on the next sync—you must use memo update to modify memories.
## Key Features
- Semantic memory search using vector embeddings (BAAI/bge-small-en-v1.5)
- Automatic deduplication (exact hash + cosine similarity >= 0.90)
- Configurable memory types (note, incident, ticket, guides, architecture, custom)
- MCP server interface (memo serve) and CLI tools (memo remember, search, recall, etc.)
- Obsidian-compatible vault with YAML frontmatter and automatic sync
- LLM-polished markdown export using Claude CLI (optional, async)
- Two-tier deduplication (exact SHA256 + semantic similarity)
- Custom memory types validated at runtime
- Full-text search and graph visualization via Obsidian integration

## Use Cases
- AI agents remembering API rate limits, rate limiting patterns, and security rules across projects
- Storing and retrieving production incident post-mortems and bug patterns for faster debugging
- Maintaining architecture decisions and system design patterns that persist across conversations
- Building a project-agnostic knowledge base accessible to Claude Code, Cursor, or other MCP clients
- Using Obsidian to visualize and explore memories with graph view and full-text search

## Who It Is For
- AI coding agents (Claude Code, Cursor, Windsurf, Codex)
- Software engineers using AI-assisted coding workflows
- Teams building AI agent memory systems
- Developers wanting persistent context across projects

## Pros
- Pure Go implementation with zero external dependencies (no Python, ONNX, separate vector DB)
- All data stays local in ~/.memo/memories.db—full privacy and offline capability
- Obsidian integration provides rich UI (graph view, full-text search, mobile sync) at no extra cost
- Seamless MCP integration means agents can automatically manage memories without explicit prompting

## Cons
- Direct Obsidian edits to memory content are silently overwritten on next sync (only CLI/MCP updates persist)
- Embedding model (~50MB) requires local download on first run; offline-only after that
- LLM polish timeout (60s default) can fail on large memories; reverts to deterministic formatting

## Alternatives
- [Cursor AI](https://aigregator.com/tools/cursor-ai)
- [Bloop AI](https://aigregator.com/tools/bloop-ai)
- [Fig AI](https://aigregator.com/tools/fig-ai)
- Anthropic Files API for agent memory
- Langchain memory modules

---
Source: Aigregator — AI tools directory. https://aigregator.com/tools/memo
