Supermemory vs OpenMemory vs Uteke: agent memory compared

Supermemory puts a model in the recall loop and charges for it. Uteke keeps recall pure search, which is why its free tier can stay free.

Supermemory vs OpenMemory vs Uteke: agent memory compared

Every "your AI should remember you" product eventually answers one question: does a model run on recall? Supermemory says yes and charges for it. OpenMemory says run the model yourself, locally. Uteke says never, and prices its free tier around that promise. This post compares the three on the things that decide adoption: how you connect, what happens when your agent recalls something, and what you pay when usage grows. It updates the picture from our September comparison of Mem0, Letta, and Zep: the two newest names in the category look more like Uteke than that batch did.

Three different shapes

Supermemory is a hosted memory API with a model called learner-1 that extracts facts and "dreams" on them, storing results in a vector-graph database that gets injected into your model's context in real time. It ships a remote MCP server at mcp.supermemory.ai with OAuth sign-in, plugins for Claude and Cursor, self-hosting docs, and a migration guide from Mem0. The repo shows 31,500 GitHub stars under an MIT license.

OpenMemory is Mem0's local-first answer: an MCP server you run yourself, close to your coding agents, with a UI for reviewing memories. It is MIT licensed, but self-hosting means installing it. For personal use across many machines, that is the tradeoff.

Uteke Cloud takes the opposite position from Supermemory. Recall is hybrid search over full-text and vector indexes, fused into one ranking. No model reads your memories when an agent recalls them. The engine is open source under Apache 2.0, and the hosted version connects the same way Supermemory does: one remote MCP URL, sign in, done.

Recall: tokens in the loop or search only

Supermemory's pitch is that extracted, graph-connected memory makes responses better, and it publishes latency numbers to back the engineering (187 milliseconds server-side search, 356 end to end). The cost is structural: extraction and dreaming are model calls, and model calls cost money at every write.

Uteke's recall path is verifiably dumb in the friendly sense. In the repo, POST /recall is a first-class route in the server's API registry, the CLI has a recall command with selectable strategies (vector, fts5, hybrid, graph, fusion), and the MCP server exposes uteke_recall. The hosted Portal even gives you a Memories page with meaning search, so the same verb works by hand. Because recall never calls a model, the free tier can stay free: 500 memories, 150 recalls a day, export whenever you want.

Onboarding and what you pay

All three now support MCP, so setup converges. The real differences show up in billing. Supermemory's plans start at $5 of monthly credits on Free, then $19, $100, and $399. Mem0's hosted free tier gives 10,000 adds and 1,000 retrievals for your first 30 days, then expects your own LLM key, with graph memory and on-prem behind a custom plan (the company raised $24 million and has an AWS partnership, so it optimizes for product teams). Uteke's free plan is the whole product today, paid plans come later, and exit is an NDJSON export plus the same engine on your own machine.

Which one fits

If you build a product and want memory as a feature, Supermemory or Mem0 gives you extraction, profiles, and graph tooling, and you pay per use. If you want private memory for your own coding agents and do not mind running Docker, OpenMemory keeps everything on your laptop. If you use several agents across several machines and want one memory they all read, with search you can verify and a clean exit, that is the gap Uteke was built for.

Full disclosure: Uteke is ours, with 283 stars against Supermemory's 31,500. We think the recall design point survives that comparison anyway. Recall that never calls a model costs less to run and stays auditable. Auditable beats magical when the memory is yours.