Spokes.wiki Search About
Software Source Code source ↗ source url updated Tue Jul 28 2026 00:00:00 GMT+0000 (Coordinated Universal Time)

iai-pme (Personal Memory Engine)

A local-first memory engine for MCP-compatible coding assistants (Claude Code, Cursor, Codex): it records every turn verbatim, consolidates the record while idle, and injects relevant context at session start. MIT, ~423★, solo-maintained by Areg Aramovich Noya, declared stable with a 1.x API commitment. Python 3.11+ with a Rust core.

“Personal” here means the assistant’s memory of you, not a PKM tool you read — the distinction that keeps it in this spoke rather than research-wiki’s gbrain/llm-wiki lineage.

What makes it different from the rest of the layer

The existing instances on agent-memory are stores: put things in, search them out (seekdb a database, memory-vault pgvector over MCP, recall markdown over hooks). This one models memory as processes, and borrows the structure from human memory research:

  • Episodic — timestamped verbatim fragments, write-once, never rewritten.
  • Semantic — summaries induced from related episodes during idle consolidation.
  • Procedural — stable learned parameters about the user (11 configurable knobs).

A “hyperdimensional substrate” (their Lilli HD) keeps the three separate so episodic detail, semantic gist and procedural habit don’t collapse into one representation. That episodic/semantic/ procedural split is Tulving’s taxonomy out of cognitive psychology, arriving here as a software architecture — an unusually literal borrowing, and the seam with ../psychology-wiki.

Three behaviours follow that a store doesn’t have:

Consolidation. Nightly, episodes induce semantic summaries — the memory reorganizes itself when nothing is asking it anything.

Decay. Unreinforced connections fade during consolidation. Pinned memories resist; marked ones queue for dissolution. Forgetting is a feature with a schedule, which nothing else in this layer attempts.

Contradiction surfacing. Recall returns matching memories and the contradictions, so a superseded fact doesn’t quietly win. That’s the staleness problem bi-temporal graphs solve with validity intervals, solved instead by handing the conflict to the model.

Retrieval and storage

Recall combines semantic similarity + graph-link strength + recency. Capture is ambient — a per-turn hook appends to a session buffer in ~5ms with no embedding, and a session-end hook rolls the buffer for processing, so nothing is asked of the user. Underneath: Hippo, a custom encrypted store (SQLite + AES-256-GCM) holding both a vector index and a graph; MOSAIC, an in-house Leiden-family community-detection algorithm with a CPM objective — the same clustering step GraphRAG uses to summarize a corpus, here applied to a personal history. Embeddings are bge-small-en-v1.5 (384-dim) computed locally by a Rust embedder over Candle, with an HTTP provider protocol if you want to swap it.

Local by construction: key at ~/.iai-mcp/.key (0600), no telemetry, no cloud, no API keys. Optional nightly LLM consolidation runs on an existing Claude subscription, capped at ≤1% of daily quota.

It publishes numbers

Rare enough in this corpus to record. On LongMemEval-S: R@5 0.962, R@10 0.978; Rescue@10 1.000 (current facts reach the top 10 after a contradiction); historical-verbatim recall 1.000. Retrieval costs ~350 tokens against ~2,850 for agent search, an ~88% reduction. Latency 77ms at 1K records, 368ms at 10K.

Still vendor-run, but on a named public benchmark rather than an internal harness, which is a rung above the self-reported claims most of this spoke’s tools offer. The token-efficiency figure is the one to treat carefully: it compares against an unspecified “agent search” baseline.

Stated limits

English-only by design, no cross-machine sync (cp -a ~/.iai-mcp/ is the backup story), poor recall for the first ~10 sessions because there is nothing to consolidate yet, seconds-long cold start while the embedder initializes, Windows in beta. Solo-maintained with no enterprise SLA.

Tier

T3 — a project README, self-described, with the benchmark numbers run by the author. The architecture is specific enough to check and the limitations section is unusually candid, but nobody independent has exercised it.

agent-memory · memory-vault · recall · seekdb · model-context-protocol · temporal-knowledge-graph · graphrag · leiden-algorithm · synthesis