You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Neotoma](https://neotoma.io) is a **truth layer**: an explicit, inspectable, replayable substrate for personal data that AI agents read and write. When agents act, personal data becomes state. Neotoma treats that state the way production systems do: contract-first, deterministic, immutable, and queryable.
5
+
_Give your agents memory you can inspect, replay, and trust._
6
6
7
-
**Why it exists:** The thing that keeps breaking in agentic systems is not intelligence but trust. Memory changes implicitly, context drifts, and you cannot see what changed or replay it. Neotoma provides the missing primitive: user-controlled, deterministic, inspectable memory with full provenance, so you can trust agents with real, ongoing state.
7
+
For a guided overview, see [neotoma.io](https://neotoma.io).
8
+
9
+
Agent memory is forgetful. What keeps breaking automation is trust, not intelligence: memory changes implicitly, context drifts, and you cannot see what changed or replay it. When agents act, personal data becomes state. The missing primitive is a layer of explicit, inspectable, replayable state.
10
+
11
+
[Neotoma](https://neotoma.io) is that layer. Open-source, privacy-protective, and user-controlled. It is contract-first and deterministic (same input, same output), with immutable, queryable state in one graph for documents you upload and data agents write.
12
+
13
+
It works with Cursor, Claude, Codex, and other MCP-capable tools, with CLI fallback when MCP is unavailable. Install with npm, then configure MCP for your editor or use the CLI directly.
8
14
9
15
For the full rationale, see [Building a truth layer for persistent agent memory](https://markmhendrickson.com/posts/truth-layer-agent-memory).
10
16
11
17
---
12
18
13
19
## What Neotoma Is
14
20
15
-
Neotoma is a **Truth Layer**, not an app, agent, or workflow engine. It is the lowest-level canonical source of truth for personal data (documents and agent-created data), exposed to AI tools via Model Context Protocol (MCP).
21
+
Neotoma is a _truth layer_, not an app, agent, or workflow engine. It is the lowest-level canonical source of truth for personal data (documents and agent-created data), exposed to AI tools via Model Context Protocol (MCP).
16
22
17
-
**In practice:**You upload documents (PDFs, images, receipts, contracts) or share information during agent conversations. You don't have to structure it yourself: agents structure and store it via Neotoma when you provide unstructured or semi-structured content. Neotoma resolves entities across all sources, builds timelines from date fields, and keeps every fact traceable to its source. ChatGPT, Claude, and Cursor can read this memory, write new structured data, correct mistakes, and trigger reinterpretation. One graph connects people, companies, events, and relationships across all your data.
23
+
You upload documents (PDFs, images, receipts, contracts) or share information during agent conversations. You don't have to structure it yourself: agents structure and store it via Neotoma when you provide unstructured or semi-structured content. Neotoma resolves entities across all sources, builds timelines from date fields, and keeps every fact traceable to its source. ChatGPT, Claude, and Cursor can read this memory, write new structured data, correct mistakes, and trigger reinterpretation. One graph connects people, companies, events, and relationships across all your data.
18
24
19
-
**What it is not:** Not a note-taking app or "second brain." Not provider-controlled ChatGPT Memory or Claude Projects (those are conversation-only and platform-locked; Neotoma is structured personal data memory with entity resolution and timelines, cross-platform via MCP). Not a vector store or RAG layer. Not an autonomous agent. It is the memory layer agents read and write; you control what goes in and what stays.
25
+
It's not a note-taking app or "second brain." Not provider-controlled ChatGPT Memory or Claude Projects (those are conversation-only and platform-locked; Neotoma is structured personal data memory with entity resolution and timelines, cross-platform via MCP). Not a vector store or RAG layer. Not an autonomous agent. It is the memory layer agents read and write; you control what goes in and what stays.
| Truth Layer | Deterministic, immutable structured memory substrate that tools and agents read and write. |
77
+
| Source | Raw data (file, text, URL, or structured JSON) stored with content-addressed deduplication. |
78
+
| Observation | Granular fact extracted from a source; reducers merge observations into entity snapshots. |
79
+
| Entity | Canonical representation of a person, company, task, or other object with a deterministic ID. |
80
+
| Entity snapshot | Current truth for an entity computed from all related observations. |
81
+
| Provenance | Origin tracking (source, timestamp, operation) so each value is traceable. |
82
+
| Memory graph | Graph of sources, observations, entities, events, and typed relationships. |
83
+
84
+
For the full glossary, see [Core terminology](https://neotoma.io/#terminology).
85
+
86
+
---
87
+
66
88
## Who It's For
67
89
68
-
-**AI-native operators** who rely on ChatGPT, Claude, or Cursor and need persistent memory across sessions.
69
-
-**Knowledge workers** (researchers, analysts, consultants, legal) who need cross-data reasoning and entity unification across contracts, invoices, and agent-created data.
70
-
-**Small teams (2–20)** who want a shared truth layer with row-level security.
71
-
-**Builders of agentic systems** who need a deterministic memory and provenance layer for agents and toolchains (e.g. agent frameworks, orchestration pipelines, observability stacks).
90
+
| Who | What they need | Example data to remember |
| AI-native individual operators | Memory that follows across daily tools and sessions | Tasks, preferences, notes, recurring reminders, contacts, deadlines |
93
+
| Knowledge workers with scattered data | Durable context across documents and sessions, with evidence and lineage | Source documents, extracted entities, citations, key quotes, timelines |
94
+
| Builders of agentic systems | Structured memory agents can read and write with provenance | Session histories, accumulated facts, decisions, runbooks, tool configs |
72
95
73
96
**Why Neotoma:** One memory graph across documents and agent-created data; agents remember context without re-explanation; full provenance and audit trail; works with any MCP-compatible tool; privacy-first and user-controlled. The same substrate serves both human-in-the-loop use and agent frameworks or toolchains that need deterministic memory and provenance.
74
97
@@ -161,7 +184,7 @@ Full release index: [docs/releases/](docs/releases/).
161
184
162
185
The **primary entrypoint** for all documentation is the index and navigation guide. All contributors and AI assistants working on the repo should load it first.
163
186
164
-
-**[Documentation index and navigation](docs/context/index_rules.mdc)** – Map of the docs system, reading order by change type, dependency graph, and quick-reference answers. Start here when contributing or navigating the repo.
187
+
-**[Documentation index and navigation](#documentation-index)** – Map of the docs system, reading order by change type, dependency graph, and quick-reference answers. Start here when contributing or navigating the repo.
165
188
166
189
**Foundational (load first):**
167
190
@@ -213,6 +236,16 @@ neotoma init
213
236
neotoma api start
214
237
```
215
238
239
+
CLI transport defaults are API-first. Use `--offline` only when you explicitly want in-process local transport:
240
+
241
+
```bash
242
+
# Default (API transport; no implicit local fallback)
243
+
neotoma entities list --type task
244
+
245
+
# Explicit local inline mode (no API server required)
246
+
neotoma --offline entities list --type task
247
+
```
248
+
216
249
After installation, configure MCP for your AI tool:
217
250
218
251
```bash
@@ -232,6 +265,56 @@ npm test
232
265
233
266
**Prerequisites:** Node.js v18.x or v20.x (LTS), npm v9+. Developer preview uses **local storage only**. For local storage, **no `.env` is required**; the app uses defaults (`./data`, `./data/neotoma.db`, `./data/sources`). Optional overrides: [Getting started](docs/developer/getting_started.md).
docker exec neotoma neotoma entities list --type task
304
+
```
305
+
306
+
---
307
+
308
+
## Get started
309
+
310
+
After installation:
311
+
312
+
1. Run `neotoma init` and configure your MCP client.
313
+
2. In a conversation, tell your assistant: "Remind me to review my subscription Friday."
314
+
3. In the same conversation, ask it to list your open tasks.
315
+
316
+
This gives you a quick end-to-end validation that memory is persisting and retrievable across sessions and tools. For full setup steps, see [Getting started](docs/developer/getting_started.md).
317
+
235
318
---
236
319
237
320
## Development
@@ -287,6 +370,20 @@ To use the Neotoma MCP server from another workspace, see [Cursor MCP setup](doc
287
370
288
371
---
289
372
373
+
## Agent Instructions (Behavior Summary)
374
+
375
+
Neotoma-compatible agents follow a consistent behavior contract across MCP and CLI:
376
+
377
+
-**Store first:** Persist the conversation turn before responding.
378
+
-**Bounded retrieval:** Retrieve likely related entities before storing new ones.
379
+
-**Entity extraction:** Extract and store relevant people, tasks, events, places, and relationships from user input.
380
+
-**Task creation:** Create tasks when users express intent, obligations, deadlines, or reminders.
381
+
-**External data safety:** Store relevant entities from external tool results before responding.
382
+
383
+
Full instructions: [MCP instructions](docs/developer/mcp/instructions.md) and [CLI agent instructions](docs/developer/cli_agent_instructions.md).
384
+
385
+
---
386
+
290
387
## Core Principles
291
388
292
389
1.**Deterministic** – Same input → same output. Hash-based IDs, no randomness in core components.
@@ -310,6 +407,15 @@ If remote backend support is needed later, recover it from git history.
-[Building a truth layer for persistent agent memory](https://markmhendrickson.com/posts/truth-layer-agent-memory)
414
+
-[Agent memory has a truth problem](https://markmhendrickson.com/posts/agent-memory-truth-problem)
415
+
-[Why agent memory needs more than RAG](https://markmhendrickson.com/posts/why-agent-memory-needs-more-than-rag)
416
+
417
+
---
418
+
313
419
## Contributing
314
420
315
421
Neotoma is in active development. For questions or collaboration, open an issue or discussion. The work is in the open: [github.com/markmhendrickson/neotoma](https://github.com/markmhendrickson/neotoma). See [CONTRIBUTING.md](CONTRIBUTING.md) and [SECURITY.md](SECURITY.md).
Copy file name to clipboardExpand all lines: docs/developer/cli_agent_instructions.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ When a Neotoma CLI session starts (dev or prod), the applied rule files (e.g. `.
24
24
25
25
## CLI startup protocol (use-existing)
26
26
27
-
CLI uses connect-only startup for interactive sessions. It does not auto-start servers on session start. On no-args startup, it discovers running local API instances from session ports, defaults (`8080`, `8180`), remembered ports, and optional configured ports. If multiple instances are healthy, it applies `--env` as a preference and then prompts for explicit selection.
27
+
CLI uses connect-only startup for interactive sessions. It does not auto-start servers on session start. On no-args startup, it discovers running local API instances from session ports, defaults (`3080`, `3180`), remembered ports, and optional configured ports. If multiple instances are healthy, it applies `--env` as a preference and then prompts for explicit selection.
0 commit comments