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.
If you use multiple AI tools — and most developers do — your context is split across closed silos:
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.
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.
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
}
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.
| 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 |
Model-native memory and open engrams are not in competition. They target different jobs:
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.
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
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.
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.