Atlas

Open-source local-first cognitive memory. Same AGM-compliant math as commercial state-of-the-art. Plus the thing nobody ships: when a fact changes, dependent beliefs are re-evaluated, not just flagged.

Click play for sound — browsers mute autoplay by default.

Apache 2.0 469 tests passing AGM 49 / 49 at 100% BusinessMemBench 1.000 +28.9 pts vs Graphiti alpha

Why Atlas exists

Every memory system maps to one of six levels — from native CLAUDE.md to OpenBrain's cross-tool Postgres. They all answer the same question:

"how do we store and retrieve?"

Atlas answers a different question:

"when stored knowledge changes, what happens to everything that depended on it?"

That's a Level 7 problem. Atlas runs on top of any of the 6 lower levels. Every memory system flags affected beliefs when a fact changes. Atlas is the only one that re-evaluates them.

Atlas vs the field

Atlas Kumiho Graphiti Mem0 Letta Memori
Open-source
Local-firstcloudpartial
AGM K*2–K*6100%100%
Hansson postulates
Hash-chained ledgerSHA-256partial
Auto downstream reassessment✓ Rippleflag-only
Domain ontology shipped8 typespartial
Multi-stream ingestion6 streamsSDKpartial
Hermes / OpenClaw / MCPall 3partialpartial

BusinessMemBench — head-to-head

149-question deterministic subset (83 base templates × paraphrase variants), seed 42. The 200-question human-authored gold subset and LLM expansion to 1,000 follow. Every cell measured against live Neo4j 5.26 — none predicted. Reproducible in ≤30 seconds with scripts/run_bmb.py.

System Overall prop contra line cross hist prov forget
Vanilla (no memory)0.0000.000.000.000.000.000.000.00
Graphiti0.7110.330.001.000.001.001.000.00
Atlas1.0001.001.001.001.001.001.001.00

Atlas wins by +28.9 points over Graphiti — the closest open-source neighbor — on a benchmark we publicly release. All seven categories at 100%. The three where Graphiti also scores 1.00 (lineage, historical, provenance) are the ones a typed graph alone can answer. Mem0 / Letta / Memori scoring lands when keys are pinned in CI.

The loop closing live

Below is the real Atlas pipeline running end-to-end against live Neo4j 5.26 — not a screenshot, an asciicast (re-runnable in 4 seconds with scripts/demo_loop.py). Plant an upstream belief, plant a downstream that depends on it, change the upstream, watch Ripple cascade, write the strategic conflict to an Obsidian markdown queue, resolve via AGM revise, verify the SHA-256 ledger chain. Seven stages. Zero stubs.

Real-world performance

One-author corpus (live Obsidian vault + 5,000 Limitless transcripts + 300 Screenpipe rows + 5,000 Claude Code session logs):

10,604events ingested
14,674claims extracted
21.3sfirst-run wall time
0errors
0.9sre-run (idempotent)
SHA-256ledger intact

Quickstart (3 minutes)

# 1. Clone + start Neo4j
git clone https://github.com/RichSchefren/atlas && cd atlas
docker compose up -d

# 2. Install
python -m venv .venv && source .venv/bin/activate
pip install -e .

# 3. Verify the test suite (314 tests, ~5s)
PYTHONPATH=. pytest tests/ -v

# 4. Reproduce AGM compliance (49/49 at 100%, ~30s)
PYTHONPATH=. pytest tests/integration/test_agm_compliance.py -v

# 5. Reproduce BusinessMemBench head-to-head (~3s)
PYTHONPATH=. python scripts/run_bmb.py
#   vanilla 0.000 · graphiti 0.675 · atlas 0.952

# 6. First real ingest from your own vault
ATLAS_VAULT_ROOT=~/Documents/Obsidian \
  PYTHONPATH=. python scripts/first_real_run.py

# 7. Watch the loop close, end to end (terminal screencap source)
PYTHONPATH=. python scripts/demo_loop.py

Plug Atlas into your agent runtime via MCP (Claude Code), Hermes MemoryProvider, or OpenClaw memory plugin.

Acknowledgments

Atlas implements the AGM correspondence proofs from Young Bin Park, Graph-Native Cognitive Memory for AI Agents (arxiv:2603.17244). Independent open-source implementation; not affiliated with Kumiho Inc.

Storage substrate forked from Graphiti by Zep AI (Apache 2.0). Trust-layer policy architecture ported from Bicameral by yhl999 (Apache 2.0). The SHA-256 hash chain is Atlas-original — Bicameral's chain was aspirational.