An agent runtime vs a knowledge base
Letta, which grew out of the MemGPT paper, is a framework for building stateful agents. Its idea is OS-style tiered memory: a small core context, a recall layer, and an archival store, which the agent edits itself as it runs. There is also Letta Code, a coding agent. The point of Letta is the runtime, the place agents live and think and rewrite what they remember.
Hjarni is not a runtime. It is a knowledge base you write in. Notes are plain Markdown, in folders, tagged and linked, and the built-in MCP server lets ChatGPT, Claude, and other clients read and write them. The human is the author and owner; the AI is a reader and, when you allow it, a contributor.
Who owns the memory
This is the real split. In Letta, the agent owns its memory and self-edits it over time, which is the whole design. That is powerful for autonomous agents, and it means the memory is shaped by the runtime, not by a person sitting down to write.
In Hjarni, you own the content. A note changes when you change it. That predictability is the point: the next time your AI asks, it sees what you wrote, organized the way you filed it.
Letta is where an agent rewrites its own memory. Hjarni is where a person writes the knowledge down.
A note on MCP
The MCP relationship runs the opposite way for each product. Letta agents primarily consume external MCP servers as tools, calling out to capabilities you connect. There are MCP servers that expose Letta memory back to clients, but the prominent ones are community projects, so do not assume an official "expose Letta memory" server exists. Hjarni is itself the MCP server: your assistant connects to Hjarni and reads and writes your notes directly.
When Letta is the better fit
If you are a developer who wants to build and run autonomous agents that manage their own evolving memory, Letta is built for that. It is fully open-source, Apache-2.0, self-hostable via Docker, with a managed Letta Cloud if you prefer not to run it. That is the right tool when you need a runtime, not a knowledge base.
Memory that does not depend on a tool call landing
Self-editing memory has a quiet failure mode. In Letta, a fact gets written only if the model decides to call the save or edit function inside its reasoning loop, and it is recalled only if the right retrieval call fires. When the model skips that step, the memory is silently never written, and because retrieval is model-dependent, what comes back can be inconsistent from run to run. People have also reported that a self-hosted Letta deployment is operationally heavy to stand up and keep running.
Hjarni takes the determinism out of the model's hands. A note is durable, human-readable Markdown that a person or an AI writes, and you can open it, read exactly what it says, and edit or revert it. Nothing important rides on whether a tool call happened to fire. And it is a ready-to-use hosted knowledge base rather than infrastructure you operate. The honest tradeoff is that Letta gives you a runtime that manages its own state, where Hjarni asks you to keep the knowledge written down, which is the part that makes it verifiable.
When people choose Hjarni instead
The case for Hjarni is not that Letta lacks memory. It clearly has a sophisticated memory model. The case is that some people want a deliberate knowledge base, written and owned by a human, that every AI they connect can read, rather than a runtime where the AI owns and rewrites the memory. If you want to write notes, not build agents, Hjarni is the simpler home.