<!--
  Full-page Markdown export (rendered HTML → GFM).
  Source: https://neotoma.io/
  Generated: 2026-04-15T13:21:24.951Z
-->
# Your agents forget.Neotoma makes them remember.

Your agents pick up where they left off and coordinate across Claude, Cursor, ChatGPT, and everything else. No re-explaining, no lost context, no conflicting answers.

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

Durable memory for agents that persists across sessions and tools

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.

Works with

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

[](#who)

Who this is for

## You run AI agents seriously......and pay the tax for missing memory

The re-prompting wastes your time and tokens. The deeper risk is when your agent acts confidently on wrong facts, and you don’t find out until the damage is done.

[

Cross-tool sync

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

You're the context janitor between tools

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

Stop acting as the human sync layer between tools. Start operating with continuity — steering instead of re-explaining.

](/operating)[

Pipeline state

![](/assets/who_icp_building_pipelines_square-C7qNZNtF.png)

You're babysitting inference variance

Your agent guesses entities every run. Corrections don’t persist. Regressions ship because the architecture can’t prevent them.

Stop babysitting inference variance. Build on solid ground — state that stays corrected from run to run.

](/building-pipelines)[

Replay & debug

![](/assets/who_icp_debugging_infrastructure_square-ESMbcH6i.png)

You're the log archaeologist

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

Stop reverse-engineering truth from logs. Debug from replayable state you can inspect, diff, and trust.

](/debugging-infrastructure)

Already building your own memory system? Most developers start with SQLite, JSON, markdown, or a custom MCP server. Neotoma ships [the guarantees you’d otherwise build and maintain yourself](/faq#i-m-already-building-my-own-memory-system-why-would-i-use-neotoma): versioning, conflict detection, schema evolution, and cross-tool sync.

Not for [one-off thought-partner workflows or note-taking apps](/faq#is-neotoma-a-note-taking-app-or-thought-partner-tool).

[](/)[](#outcomes)

Before & after

## Same question, different outcome

Without shared memory, agents act on facts they can’t verify. With Neotoma, every response reads from versioned, structured history.

Contacts & people

### Silently overwritten, confidently wrong

You corrected a contact's email last week. A different agent session overwrote it with the old address. Your agent sends to the wrong person, and nobody notices until it's too late.

without Neotoma

agent session · without Neotoma

$|

1234

[](#who)[](#demo)

Product demo

## Inspect, version, diff, and replay what your agents remember

The same operations work from the CLI, the REST API, the Inspector app, or through any MCP-connected agent. Toggle between views to try each interface.

ChatCLIMCPAPIInspector

Cross-tool syncReplay & debug

Cursor

Ask anything...

[Install in 5 minutes](/install)

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

Guarantees

## Memory that stays correct from session one to month twelve

Chat memory fades. RAG drifts. Markdown and JSON files accumulate silent conflicts. Neotoma enforces versioning, provenance, and tamper detection that hold over months and years: not just between recent sessions.

[

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

Deterministic state

You run the same pipeline twice and get different results — no way to trace why.

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

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

Versioned history

A retry silently overwrites a preference. The original is gone.

](/memory-guarantees#versioned-history)[

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

Auditable change log

Your agent makes a bad call. You can’t trace what data it relied on.

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

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

Silent mutation prevention

Data changes without your knowledge. You find out when something breaks.

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

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

Schema constraints

An agent writes a malformed record. Nothing rejects it — errors compound silently.

](/memory-guarantees#schema-constraints)[

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

Reproducible reconstruction

Your database corrupts. There’s no path back to a known-good state.

](/memory-guarantees#reproducible-state-reconstruction)

[See all 15 guarantees compared](/memory-guarantees)

[](#demo)[](#proof)

How it’s used

Trustworthy state for AI agents·[13 on GitHub](https://github.com/markmhendrickson/neotoma)·16 releases shipped

> Running daily for 5+ months across Claude Code, Cursor, ChatGPT, and CLI. Same state graph from day one: every version preserved, every correction traceable. Contacts evolve, contracts get amended, tasks close and reopen. I ask my agents what changed on a deal since October or what I originally told an investor three months ago. The memory compounds; nothing silently drifts.
> 
> ![Mark Hendrickson](/assets/mark_hendrickson-Ch9qk0bs.jpg)
> 
> Mark Hendrickson·Neotoma creator·[Read the full post](https://markmhendrickson.com/posts/what-my-agentic-stack-actually-does/)

1,100+contacts

16,000+tasks

900+conversations

2,000+agent messages

380+entity types

“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)

“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)

[](#memory-guarantees)[](#record-types)

What to store

## Not sure where to start? Pick three.

Your contacts, tasks, and events disappear between sessions and tools. Store them once, versioned and queryable across every agent you run, and stop re-explaining your world.

[Start here

Contacts

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

`contact``company``account`

](/types/contacts)[Start here

Tasks

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

`task``habit``goal`

](/types/tasks)[Start here

Events

Meetings, milestones, and the outcomes attached to them.

`event``meeting``milestone`

](/types/events)[

Transactions

Payments, receipts, invoices, and ledger entries versioned instead of overwritten.

`transaction``invoice``receipt`

](/types/transactions)[

Contracts

Agreements, clauses, and amendments with the exact terms preserved over time.

`contract``clause``amendment`

](/types/contracts)[

Decisions

Choices, rationale, and the audit trail that proves why an agent acted.

`decision``assessment``review`

](/types/decisions)

[](#proof)[](#evaluate)

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

Evaluate it

## Let your agent decide if Neotoma fits

Your agent can read the docs, inspect the evaluation criteria, and tell you whether Neotoma fits your actual workflow before you install anything.

Copy this prompt into any AI agent. It reads the evaluation page, inspects your context, and judges whether Neotoma fits.

Evaluation prompt

Copy

`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 prompt

Works with

[Claude](/neotoma-with-claude)[ChatGPT](/neotoma-with-chatgpt)[Cursor](/neotoma-with-cursor)[OpenClaw](/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 memory 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 memory, versioned history, append-only change log) are stable. Install in 5 minutes and let your agent evaluate the fit.

Does Neotoma replace Claude's memory or ChatGPT's?

No — it works alongside them. Platform memory stores what one vendor decides to remember within that vendor's tool. Neotoma stores facts you control across all your tools. Keep using platform memory for quick context; use Neotoma when you need versioning, auditability, and cross-tool consistency.

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. Neotoma stores structured facts and builds a versioned history for each one; the same inputs always produce the same result. RAG optimizes relevance; deterministic memory optimizes integrity, versioning, and auditability.

Does the memory degrade or drift over time?

No. Neotoma uses an append-only observation log with deterministic reducers. Nothing is overwritten or silently dropped. Facts stored six months ago are as retrievable and verifiable as facts stored today — with full version history and provenance intact. The memory compounds; it never decays.

[More questions? See the FAQ](/faq)

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

Neotoma

The state layer for AI agents. Open-source and local-first.

Product

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

Documentation

[Docs](/docs)[API](/api)[MCP](/mcp)[CLI](/cli)

External

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

Re-prompting costs time. Wrong state costs trust. Find out if Neotoma fits before either compounds.

[Ask your agent to evaluate](/evaluate)[Meet the creator](/meet)

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

[Markdown](/markdown "Markdown")