← home

comparison

brainctl v2.4.3 vs Mem0, Letta, Zep, Cognee, MemPalace, OpenAI Memory — as of April 2026. Rows marked ? could not be confirmed from public docs; verify before relying on them. Retrieval numbers in the bottom rows: brainctl is measured, competitor numbers are cited from their own published material — the head-to-head sweep on identical fixtures is wired up at tests/bench/competitor_runs/ but not yet executed. This table will be updated as that sweep lands.

feature matrix
featurebrainctlmem0lettazepcogneemempalaceopenai
local-first (no required server)partial¹partial²partial³
MIT license— (Apache 2.0)— (Apache 2.0)— (proprietary)— (Apache 2.0)?— (closed)
no LLM calls required
FTS full-text search?
vector / semantic search
hybrid retrieval (FTS + vector)✓ (hybrid v5)
knowledge graph✓ (Pro)✓ (Graphiti)?
auto entity linking?
belief revision (AGM)
Ed25519-signed exports
on-chain attestation (opt-in)
managed non-custodial wallet
MCP server included✓ (201 tools)?
first-party framework plugins16???
session handoffs?
prospective memory (triggers)?
multi-agent shared store?
context profiles?
confidence decay / half-life?
write gate (dedup + surprise score)?
consolidation engine?
affect / emotional state tracking?
free at rest (no per-op billing)partial⁴partial⁴✓ (local)
embedding model flexibility✓ (any Ollama)??
LOCOMO session-level recall (head-to-head)0.922????0.603?
LongMemEval Recall@5 (head-to-head, n=470)0.970????0.966?
MemBench hit@5 (FirstAgent slice, partial)0.930????0.885?

¹ Mem0 self-hosted exists but knowledge graph (Neo4j) requires a separate server. Graph features are cloud-only on the Pro tier ($249/mo). Free open-source tier is vector-only.

² Letta supports self-hosting. Requires a running Letta server process — not a single file.

³ Zep Community Edition was deprecated April 2025. Local operation now requires Graphiti plus a separate graph database (Neo4j, FalkorDB, or Kuzu).

Mem0 and Letta open-source tiers have no per-op billing. Cloud tiers are metered.

Same-machine head-to-head, run 2026-04-18 on Intel Core Ultra 7 258V / 33.9 GB RAM / Windows 10. LOCOMO row is session-level recall on locomo10.json (1,986 QA, brainctl cmd_session vs mempalace raw_session). LongMemEval row is R@5 on longmemeval_s_cleaned.json (470 q, brainctl cmd_search vs mempalace raw_session). MemBench row is hit@5 on the FirstAgent slice (200 q, partial). Repro: python benchmarks/compare_memory_engines.py --label full_compare. Honesty caveat: the vector-on/off flag for the cmd_search run was not persisted in the artifact bundle — we will not overclaim cmd_search as a clean vector-vs-FTS statement without rerunning that variant with the flag captured. Full table + provenance on /benchmarks.

what brainctl trades

local-first and MIT-licensed is the positioning. these are the costs that follow.

no managed cloud

brainctl is local-first by design. No hosted API, no managed tier, no SaaS dashboard. Multi-machine sync requires managing brain.db replication yourself.

LOCOMO baseline is weak on hop-heavy retrieval, though hybrid closes most of it

Brain.search baseline still shows weak single-hop/multi-hop hit@1 (0.167 / 0.174). In the latest sweep, hybrid improves top-heavy metrics materially (Hit@1 0.6983, Hit@5 0.9132, MRR 0.7920) and raises multi-hop Hit@5 to 0.6739, with a small single-hop Hit@5 giveback vs session (-1.63%) and near-tied Hit@10.

no real-time multi-machine sync

brain.db is a single WAL-mode SQLite file. Multi-agent works when agents share a filesystem. Across machines, sync the file manually. Zep and Letta's server-based architectures handle distributed access natively.

on-chain pinning requires Solana

Managed wallet (brainctl wallet new) removes setup friction. Offline signature verification needs no network. But --pin-onchain depends on Solana. If you want the on-chain attestation, you're in that ecosystem.

no UI

No web dashboard, no graph explorer. Obsidian export gives a navigable vault layer, but it's one-way. Cognee ships a local graph UI; Letta has a cloud console; Mem0 has a platform dashboard.

knowledge graph is self-built, not schema-enforced

Entities and edges grow from memory writes and explicit calls. No ontology layer, no required relationship schema. Cognee's ECL pipeline is more structured. Zep's Graphiti has temporal validity windows.

where we stand · measured 2026-04-18

Same-machine head-to-head against MemPalace landed:

  • LoCoMo session-level recall (n=1,986): brainctl 0.922 vs mempalace 0.603 — substantial win.
  • LongMemEval R@5 (n=470): brainctl 0.970 vs mempalace 0.966 — narrow edge, statistical tie.
  • MemBench hit@5 (FirstAgent slice, n=200): brainctl 0.930 vs mempalace 0.885 — clear edge, partial sweep.
  • ConvoMem: blocked — evidence payload fetch failed.

Honesty note: the cmd_search run did not persist a separate vector-on/off flag in the artifact bundle, so the cmd_search numbers above should not be cited as a clean vector-vs-FTS statement without rerunning that exact variant. Full provenance, hardware, repro command, and per-metric breakdown on the benchmarks page.

view benchmarks →

brainctl — comparison