<!--
  Full-page Markdown export (rendered HTML → GFM).
  Source: https://neotoma.io/neotoma-vs-zep
  Generated: 2026-04-01T11:48:35.044Z
-->
Cross-tool memory for AI agents·[9 on GitHub](https://github.com/markmhendrickson/neotoma)·13 releases shipped

# Your agents forget. Neotoma makes them remember.

Your contactstasksdecisionsconversationsnotespreferencestransactionsmeeting notescompanieshealth data disappear between sessions and tools. Neotoma stores them once, versioned and queryable, across every agent you run — so you stop re-explaining your world.

[Ask your agent to evaluate](/evaluate)[Install in 5 minutes](/install)

“State integrity, not retrieval quality.”, Agentic app builder

“Very relevant problem, most people rolling their own.”, Laurie Voss, npm co-founder

“Genuinely useful for production agents, overkill for hobbyist chatbots.”, Production agent evaluator

“CI/CD for agent state.”, [Tycho Onnasch, co-founder, Zest Protocol](https://x.com/TychoOnnasch)

[Claude](/neotoma-vs-zep/neotoma-with-claude)[ChatGPT](/neotoma-vs-zep/neotoma-with-chatgpt)[Cursor](/neotoma-vs-zep/neotoma-with-cursor)[OpenClaw](/neotoma-vs-zep/neotoma-with-openclaw)

You tell OpenClaw

”I've issued Acme $3,200 invoice due Dec 15.”

Stored in invoices

entity\_type: invoice · amount: $3,200 · due\_date: 2026-12-15 · status: unpaid · REFERS\_TO company: Acme

You ask Claude later

“What's my total outstanding balance?”

$16,302 from 4 unpaid invoices, 2 past due

Retrieved from stored invoices and relationships

Facts are stored privately under your control. Any agent can retrieve exactly what it needs, with full versioning and provenance.

[](#outcomes)

Before & after

## Same question, different outcome

Without a state layer, agents return stale or wrong data. With Neotoma, every response reads from versioned, schema-bound state.

Contacts & people

### Lost contact, broken handoff

You mentioned someone in a call last week. Your agent in Cursor has no idea who they are. You re-explain every person, every session, across every tool.

without Neotoma

agent session · without Neotoma

$S|

1234

[](/)[](#who)

Who this is for

## You run AI agents across tools and sessions......and become the human sync layer 😵

Stop spending real effort re-prompting context, patching state gaps, and compensating for memory that doesn’t persist across AI tools and custom scripts. The cost shows up differently depending on what you’re doing.

[

Operating

![](/assets/who_icp_operating_square-BsW4__wL.png)

When you're operating across tools

Every session starts from zero. You re-explain context, re-prompt corrections, re-establish what your agent already knew.

](/neotoma-vs-zep/operating)[

Building

![](/assets/who_icp_building_pipelines_square-B2Td-JDZ.png)

When you're building pipelines

Your agent guesses entities every session. Corrections don't persist. Memory regressions ship because the architecture can't prevent them.

](/neotoma-vs-zep/building-pipelines)[

Debugging

![](/assets/who_icp_debugging_infrastructure_square-vm-gd7hN.png)

When you're debugging infrastructure

Two runs. Same inputs. Different state. No replay, no diff, no explanation.

](/neotoma-vs-zep/debugging-infrastructure)

[](#outcomes)[](#memory-guarantees)

Guarantees

## Neotoma provides state integrity, not just storage

Systems like Mem0, Zep, Claude memory, and ChatGPT memory optimize retrieval. Neotoma enforces guarantees those systems don’t provide.

[

![](/assets/guarantee_sym_deterministic_square-BDIDrnxZ.png)

Deterministic state

Same observations always produce the same entity state - no ordering bugs.

](/neotoma-vs-zep/memory-guarantees#deterministic-state-evolution)[

![](/assets/guarantee_sym_versioned_square-ClbSlW6R.png)

Versioned history

Every change creates a new version. Nothing is overwritten.

](/neotoma-vs-zep/memory-guarantees#versioned-history)[

![](/assets/guarantee_sym_audit_square-TbIMfg-Q.png)

Auditable change log

Who changed what, when, and from which source.

](/neotoma-vs-zep/memory-guarantees#auditable-change-log)[

![](/assets/guarantee_sym_silent_square-ofWqPfo5.png)

Silent mutation prevention

No hidden overwrites or silent data drops.

](/neotoma-vs-zep/memory-guarantees#silent-mutation-risk)[

![](/assets/guarantee_sym_schema_square-BHrnYxuy.png)

Schema constraints

Invalid writes rejected at store time.

](/neotoma-vs-zep/memory-guarantees#schema-constraints)[

![](/assets/guarantee_sym_rebuild_square-DtAFJJ4V.png)

Reproducible reconstruction

Rebuild complete state from observations alone.

](/neotoma-vs-zep/memory-guarantees#reproducible-state-reconstruction)

[See all 12 guarantees compared](/neotoma-vs-zep/memory-guarantees)

[](#who)[](#record-types)

What you store

## You deserve structured records, not raw text

Neotoma stores typed entities with versioned history and provenance. Each guide shows how to store and retrieve that type via CLI, MCP, and API.

[

Contacts

People, companies, roles, and the relationships between them.

`contact``company``account`

](/neotoma-vs-zep/types/contacts)[

Tasks

Obligations, deadlines, habits, and goals - tracked across sessions.

`task``habit``goal`

](/neotoma-vs-zep/types/tasks)[

Transactions

Payments, receipts, invoices, and ledger entries - versioned, not overwritten.

`transaction``invoice``receipt`

](/neotoma-vs-zep/types/transactions)[

Contracts

Agreements, clauses, and amendments - what the terms were on any date.

`contract``clause``amendment`

](/neotoma-vs-zep/types/contracts)[

Decisions

Choices, rationale, and the audit trail that proves why.

`decision``assessment``review`

](/neotoma-vs-zep/types/decisions)[

Events

Meetings, milestones, and the outcomes attached to them.

`event``meeting``milestone`

](/neotoma-vs-zep/types/events)

[](#memory-guarantees)[](#evaluate)

![Neotoma evaluate page preview](/assets/hero_illus_evaluate_agent_page-B8tTomV1.png)

Evaluate it

## Let your agent decide if Neotoma fits

Copy this prompt into any AI agent to have it read the evaluation page, inspect your tool, workspace, and configuration context, then judge whether Neotoma fits your real workflow and what to persist first.

`Read https://neotoma.io/evaluate. Before you answer, inspect any broader tool, workspace, and configuration context you can access so you assess my real workflow rather than just this chat. Then assess whether Neotoma fits my workflow, what data would be highest value to persist first, and what I should do next.`Copy

[View evaluation page](/neotoma-vs-zep/evaluate)

[Claude](/neotoma-vs-zep/neotoma-with-claude)[ChatGPT](/neotoma-vs-zep/neotoma-with-chatgpt)[Cursor](/neotoma-vs-zep/neotoma-with-cursor)[OpenClaw](/neotoma-vs-zep/neotoma-with-openclaw)

[](#record-types)

## Frequently asked questions

Platform memory (Claude, ChatGPT) is good enough - why add another tool?

Platform memory stores what one vendor decides to remember, in a format you can't inspect or export. It doesn't version, doesn't detect conflicts, and vanishes if you switch tools. Neotoma gives you structured, cross-tool state you control.

Can't I just build this with SQLite or a JSON file?

You can start there - many teams do. But you'll eventually need versioning, conflict detection, schema evolution, and cross-tool sync. That's months of infrastructure work. Neotoma ships those guarantees on day one.

Is this production-ready?

Neotoma is in developer preview - used daily by real agent workflows. The core guarantees (deterministic state, versioned history, append-only log) are stable. Install in 5 minutes and let your agent evaluate the fit.

Does Neotoma send my data to the cloud?

No. Neotoma runs locally by default. Your data stays on your machine in a local SQLite database. There is no cloud sync, no telemetry, and no training on your data unless you choose to expose the API (for example for remote MCP clients).

What's the difference between RAG memory and deterministic memory?

RAG stores text chunks and retrieves them by similarity for prompts. Neotoma stores structured observations and composes entity state with reducers; the same observations always yield the same snapshot. RAG optimizes relevance; deterministic memory optimizes integrity, versioning, and auditability.

[More questions? See the FAQ](/neotoma-vs-zep/faq)

![](/assets/hero_illus_packrat_holding_record-DOFA7a9W.png)

Neotoma

Cross-tool memory for AI agents. Open-source and local-first.

Product

[Install](/neotoma-vs-zep/install)[Architecture](/neotoma-vs-zep/architecture)[Memory guarantees](/neotoma-vs-zep/memory-guarantees)[FAQ](/neotoma-vs-zep/faq)

Documentation

[Docs](/neotoma-vs-zep/docs)[API](/neotoma-vs-zep/api)[MCP](/neotoma-vs-zep/mcp)[CLI](/neotoma-vs-zep/cli)

External

[GitHub](https://github.com/markmhendrickson/neotoma)[npm](https://www.npmjs.com/package/neotoma)[Blog](https://markmhendrickson.com/blog)

[Ask your agent to evaluate](/neotoma-vs-zep/evaluate)

© 2026 Neotoma · v0.4.0 · 13 releases · MIT-licensed · Built by [Mark Hendrickson](https://markmhendrickson.com)

[Markdown](/neotoma-vs-zep/markdown "Markdown")