Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
jagoff avatar

Memo

  • 10 repo stars
  • Updated July 28, 2026
  • jagoff/memo

Memo is an MCP server that stores agent memory as local markdown with sqlite-vec and BM25 hybrid search, with no cloud backend.

About

Memo MCP provides local, MLX-oriented long-term memory for AI agents: notes live as markdown on disk, while sqlite-vec and BM25 hybrid search retrieve relevant prior context without a hosted memory vendor. Developers who care about privacy, offline work, or repeatable local dev environments install it during Build when agent-tooling needs persistent recall across weeks of shipping. The server is published as mlx-memo on PyPI with stdio transport and a memo-mcp runtime hint, version 0.8.0 at catalog time. It is intermediate complexity—you run Python tooling, manage on-disk stores, and tune what gets embedded versus keyword-indexed. Memo complements cloud context services by keeping sensitive repo and customer details on your machine while still letting Claude Code, Cursor, or Codex query memory through MCP.

  • Markdown-on-disk storage with sqlite-vec and BM25 hybrid retrieval
  • MLX-native local stack—zero cloud dependency for memory operations
  • PyPI package mlx-memo version 0.8.0 with stdio transport (runtime hint memo-mcp)
  • Privacy-friendly recall for solo builders on Apple Silicon MLX paths
  • Fits long-horizon agent projects that must remember decisions offline

Memo by the numbers

  • Data as of Jul 28, 2026 (Skillselion catalog sync)
terminal
claude mcp add mlx-memo -- memo-mcp mlx-memo

Add your badge

Show developers this MCP server is listed on Skillselion. Paste this into your README.

Listed on Skillselion
repo stars10
Packagemlx-memo
TransportSTDIO
AuthNone
Last updatedJuly 28, 2026
Repositoryjagoff/memo

What it does

Give coding agents durable local memory with hybrid search—markdown on disk, sqlite-vec plus BM25—without sending recall to the cloud.

Who is it for?

Best when you're on MLX-friendly setups and want private, offline-capable agent memory without a SaaS recall layer.

Skip if: Skip if you need multi-user synced cloud memory or Windows-only workflows without Python/PyPI MCP setup.

What you get

Agents retrieve and update durable local memory through MCP using hybrid vector and keyword search on your disk.

  • stdio MCP server exposing local read/write memory tools
  • Hybrid sqlite-vec + BM25 search over agent-stored markdown
  • Offline-capable memory layer with no required cloud API

By the numbers

  • Package version 0.8.0 (mlx-memo on PyPI)
  • Transport: stdio; registryType pypi
  • Storage pattern: markdown-on-disk with sqlite-vec + BM25 hybrid
README.md

memo

Persistent semantic memory for AI agents — 100% local, MLX-native, Apple Silicon.

PyPI Python License: MIT MCP

memo gives any MCP-aware agent (Claude Code, Codex, Devin, OpenCode, Cursor, Cline, Continue, …) a long-term memory that runs entirely on your Mac. Each memory is a plain Markdown file in an Obsidian-friendly folder; embeddings live in a single sqlite file; the LLM, embedder, and reranker run in-process via Apple MLX — no Ollama, no Qdrant, no cloud API, no keys. Your prompts and memories never leave the machine.

How memo works

Why it pays for itself — in tokens

memo is built to spend fewer tokens, not more. Two measured wins (real numbers from the shipped build, commits ee78f05 + 1ad7bdf):

  • 96.4% smaller MCP surface. The default agent tool profile exposes 5 tools / ~589 schema tokens, versus 118 tools / ~16,157 tokens for a full surface — that overhead is paid every session, in every client. memo trims it to almost nothing. (core profile = 25 tools, ~2.4k vs ~35k tokens.)
  • Recall injects the answer instead of re-deriving it. Ambient recall surfaces the top memory before the agent answers, on a tight ~160-token budget, with the directive sent only on the first turn. The agent stops re-explaining what it already figured out last week.

On a ~200-memory corpus, memo's ROI meter estimates ~80k tokens of model work avoided (≈62.6k from 179 grounded facts + ≈17.1k from 19 re-asks it prevented; ~259 tokens/response). The estimate is corpus-specific — memo roi shows yours.

Install — one step

# One-line installer: pipx under the hood, installs GitHub master,
# downloads MLX models, and wires up Claude Code / Codex / OpenCode / Windsurf.
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/master/install.sh | bash

Prefer a published release? Any of these work and expose the same two binaries — memo (CLI) and memo-mcp (MCP server):

pipx install mlx-memo
uv tool install mlx-memo
brew tap jagoff/memo && brew install mlx-memo

Keep memo isolated as its own tool (pipx / uv tool / Homebrew). Don't vendor it inside another project's .venv — its MLX runtime, model cache, sqlite state, and memo-mcp should move together as one subsystem. memo doctor --strict-runtime verifies the install.

First install downloads ~7 GB of MLX models (5–15 min); later installs hit the HuggingFace cache. Full installer knobs, model list, and "move to a new Mac" steps live in docs/reference.md.

Hand it to your agent

memo is designed so you can give the repo (or just the install line) to an AI coding agent and it installs itself. The whole setup is three commands:

curl -fsSL https://raw.githubusercontent.com/jagoff/memo/master/install.sh | bash
memo doctor --strict-runtime          # verify the runtime is healthy
memo install-slash                    # register MCP + /memo for every client found

memo install-slash configures Claude Code, Codex, Devin, Windsurf, and OpenCode where each supports it — it writes the MCP server entry (pinned to the absolute memo-mcp path) and the /memo skill, forwarding your MEMO_* env so GUI clients inherit the right model profile. Per-client setup (Claude Desktop, Cursor, Cline, Continue, manual JSON) is in docs/reference.md.

After install, tools surface inside the agent as mcp__memo__memo_* (memo_save, memo_search, memo_ask, memo_get, memo_unified_briefing).

Quick start

memo doctor                                  # self-check: models, vault path, sqlite-vec
memo save 'MLX prefill ~30% faster than Ollama on M3 Max' --title 'MLX bench' -t mlx -t bench
memo search 'how fast was the MLX benchmark'  # search by meaning, not just keywords
memo list --limit 5                          # most recent
memo ask 'what changed in the embedder this month?'   # RAG — cites memories by id

What you get

  • Ambient recall — with the Claude Code plugin, every prompt silently consults memory and injects the top memories as context, with a warm recall daemon (<200 ms). No /remember calls.
  • Auto-capture — a Stop hook extracts durable insights from each exchange through a quality gate and saves them. The corpus grows on its own.
  • Session briefingSessionStart surfaces open loops, a memory of the day, and one-line crash recovery for the last session.
  • 🕰️ Time-machine — rewind the corpus to any past date: memo as-of ask "..." --date 2026-02-01, memo diff --from … --to …. No other agent-memory store offers this.
  • Hybrid retrieval + reranker — vec + BM25 (FTS5, diacritic-folding for Spanish) fused via RRF, then an optional MLX cross-encoder rerank.
  • Markdown is the source of truth — plain .md + frontmatter you can edit in Obsidian/vim; the sqlite index is rebuildable (memo reindex).
  • Semantic mapmemo map renders an interactive 2D canvas (UMAP/PCA + Plotly) of the whole corpus.

Requirements

  • macOS on Apple Silicon (M1–M4) — MLX is the load-bearing piece. memo does not run on Linux / Windows / Intel Macs.
  • Python ≥ 3.13.
  • ~8 GB free disk for the default model set (the installer downloads it).
  • Optional: an Obsidian vault. Without one, memo defaults to ~/Documents/memo/.

Documentation

The README is the front door; the full manual lives in docs/.

Topic Where
Full install detail, installer knobs, new-Mac migration docs/reference.md › Install
Per-client MCP setup + the /memo slash command docs/reference.md › MCP setup
Tools exposed over MCP docs/reference.md › MCP tools
Ambient memory, recall daemon, capture & recall tuning docs/reference.md › Ambient memory
Session briefing, semantic map, time-machine docs/reference.md › Surfaces
Full CLI reference + live dashboard (memo tui) docs/reference.md › CLI
All MEMO_* configuration, model profiles, upgrading the embedder docs/reference.md › Configuration
Design notes & how memo compares to mem0 / letta / cognee / … docs/reference.md › Design & comparison
Architecture / install / ambient-loop / time-machine diagrams docs/architecture.svg · install-flow · ambient-loop · time-machine

Contributors: git clone https://github.com/jagoff/memo && cd memo && uv pip install -e '.[dev]'. See CONTRIBUTING.md.

License & provenance

MIT — see LICENSE. Forked philosophically from mem-vault (storage layout + frontmatter schema); the MLX backend pieces are ported from obsidian-rag. memo is one of three sovereign systems in a wider stack (Memflow, Synapse) — the integration is opt-in everywhere; single-Mac users see zero behaviour change.


Español

memo es memory semántica persistente para agentes de IA: 100% local, sobre Apple Silicon con MLX. Cada memory es un archivo Markdown; los embeddings viven en un único sqlite; el LLM, el embedder y el reranker corren en proceso vía MLX — sin Ollama, sin nube, sin API keys. Tus prompts y memories nunca salen de la Mac.

Por qué ahorra tokens: la superficie MCP por defecto son 5 tools (~589 tokens) contra 118 (~16.157) → 96,4% menos contexto por sesión; y el recall inyecta la respuesta (presupuesto ~160 tokens) en vez de que el agente la vuelva a deducir. En un corpus de ~200 memories, memo roi estima ~80k tokens de trabajo del modelo evitados.

Instalación en un paso:

curl -fsSL https://raw.githubusercontent.com/jagoff/memo/master/install.sh | bash
memo doctor --strict-runtime    # verifica el runtime
memo install-slash              # registra el MCP + /memo en Claude Code, Codex, Devin, Windsurf, OpenCode

Requisitos: macOS en Apple Silicon (M1–M4), Python ≥ 3.13, ~8 GB de disco para los modelos. La documentación completa está en inglés en docs/reference.md.

Recommended MCP Servers

How it compares

Local hybrid-search memory MCP—not a hosted cross-tool context account like CacheTank.

FAQ

Who is Memo for?

Developers running local AI agents who need persistent markdown Memory and hybrid search without cloud recall services.

When should I use Memo?

Use it while building agent features when sessions must remember architecture decisions and notes across days, entirely on your machine.

How do I add Memo to my agent?

Install mlx-Memo from PyPI, configure the stdio MCP server with runtime hint Memo-mcp in your client, and ensure the on-disk markdown store path is writable.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.