DEV Community

gregor
gregor

Posted on Originally published at plur.ai

What's the Difference Between Open Engrams and Model-Native Memory?

What's the Difference Between Open Engrams and Model-Native Memory?

Model-native memory is locked to the vendor that created it. Open engrams are a portable, developer-controlled memory format that any model in your stack can read. ChatGPT, Claude, and Gemini each have their own built-in memory systems — useful within their own interfaces, but siloed: what ChatGPT learns about you never reaches Claude, and vice versa. Open engrams (the format used by PLUR) are structured memory units stored locally in a format you own, so any model, tool, or agent workflow can read and write the same memory store without crossing a vendor boundary.


The Problem: Your Memory Is Fragmented Across Vendors

If you use multiple AI tools — and most developers do — your context is split across closed silos:

  • ChatGPT Memory stores up to ~1,500 words of extracted facts tied to your OpenAI account. When you open Claude or Cursor to continue the same project, it knows nothing about you (source).
  • Gemini's memory doesn't sync to ChatGPT or Claude (source).
  • Claude's memory for managed agents is in public beta — cross-session recall within Claude, not portable outside it (source).

This is a structural problem: every vendor solves memory for their own surface, not for your workflow. When you run a multi-agent pipeline that touches Claude Code, a Hermes agent, and a custom CLI tool, there is no shared memory layer unless you build one.


What Is Model-Native Memory?

Model-native memory is memory managed and controlled by the model vendor:

Feature Typical model-native memory
Storage location Vendor cloud
Who controls what's stored The model (implicit extraction)
Portability Locked to one vendor
Auditability Limited — you can view some, rarely edit raw data
API access Proprietary or none
Works across models No

ChatGPT Memory uses implicit extraction: the model decides what to save from your conversations. You can view and delete memories, but you can't query them programmatically or export them to another tool in a structured format (source). Claude's managed-agent memory is similar: optimized for recall within Claude, not designed to be read by a Cursor plugin or a Python script.

This is appropriate for consumer chat use cases. It is not appropriate for agent workflows where memory needs to cross tool and model boundaries.


What Are Open Engrams?

An engram is a single, structured unit of memory: a statement, a type, a confidence score, and metadata — stored in a format you own.

{
  "statement": "Use snake_case for all database column names in this project.",
  "type": "architectural",
  "domain": "conventions",
  "confidence": 0.95
}
Enter fullscreen mode Exit fullscreen mode

The open engram format (used by PLUR) is:

Feature Open engrams
Storage location Local SQLite on your machine
Who controls what's stored You or your agent, explicitly
Portability Any MCP-compatible model or tool
Auditability Full — inspect, edit, or delete any engram
API access MCP tools: plur_learn, plur_recall, plur_recall_hybrid
Works across models Yes — Claude, Cursor, Hermes, custom agents

Because engrams are stored in a local SQLite file and accessed via the Model Context Protocol, any model in your stack can read the same memory. Claude Code, a Hermes agent, and a custom Python script all see the same engram store.


Side-by-Side Comparison

Dimension Model-native memory Open engrams (PLUR)
Portability Vendor-locked Any MCP client
Transparency Opaque synthesis Every engram readable
Control Implicit background extraction Explicit, developer-driven
Auditability View + delete (limited) Full CRUD on every record
Staleness handling Contradictions accumulate silently Confidence decay + retirement
Infrastructure Vendor cloud Local-first, you own the data
Cross-model No Yes
Works for agent workflows Limited Designed for it

They Do Different Jobs — Use Both

Model-native memory and open engrams are not in competition. They target different jobs:

  • Model-native memory is best for conversational continuity within one vendor's surface — remembering your name, your preferences for that product, the last project you discussed.
  • Open engrams are best for programmable, portable recall across agent workflows — conventions, corrections, project context, facts that need to survive across models, tools, and sessions.

The question to ask is: who needs to read this memory? If the answer is "just ChatGPT," model-native memory is fine. If the answer is "my Claude Code session, my Hermes agent, and my custom script," you need open engrams.


Getting Started

PLUR is an open-source memory layer that implements the open engram format. Install the MCP server and your memory is instantly available to any MCP-compatible client:

npx @plur-ai/mcp init
Enter fullscreen mode Exit fullscreen mode

After setup, call plur_learn to write an engram and plur_recall or plur_recall_hybrid to retrieve it — from any model in your stack.


FAQ

Can I use open engrams alongside ChatGPT or Claude memory?
Yes. They operate at different layers. Model-native memory handles session context within a vendor's product; open engrams handle portable, cross-model recall. Running both is the recommended setup for developers who use multiple AI tools.

Is the open engram format a specification or a product?
Both. The open engram format is a specification for how memory units are structured. PLUR is an open-source implementation of that specification. The goal is to prevent vendor lock-in at the memory layer the same way SQLite prevents vendor lock-in at the storage layer.

Do I have to choose one model to use PLUR?
No. PLUR connects to any MCP-compatible client — Claude Code, Cursor, Hermes agents, and custom applications. You write to one engram store; every tool reads from it.

Top comments (0)