Skip to content
plugmcp
DirectorySkillsCategoriesBlog
EN/中文
Sign inSign up
Home/Servers/ZenBrain Memory

ZenBrain Memory

by ai.zensation

Seven-layer agent memory: episodic, semantic, procedural and core. Local SQLite, no account.

Power your agent

Add this server

The publisher's own command. Not a PlugMCP endpoint.

Local command
npx -y @zensation/[email protected]
Credentials from the publisher
  • ZENBRAIN_DB — Path to the SQLite file that holds the memory. A leading ~/ means your home directory; a relative path depends on where the client starts the server (some start it in /), so give an absolute or ~/ path. Use ':memory:' for a store that is discarded when the process exits.
  • ZENBRAIN_CONTEXTS — Comma-separated context domains for cross-context memory.
Provider
Claude Code
ZENBRAIN_DB=<value> ZENBRAIN_CONTEXTS=<value> claude mcp add ai.zensation-zenbrain -- npx -y @zensation/[email protected]

Run in a terminal.

Claude Desktop
{
  "mcpServers": {
    "ai.zensation-zenbrain": {
      "command": "npx",
      "args": [
        "-y",
        "@zensation/[email protected]"
      ],
      "env": {
        "ZENBRAIN_DB": "<value>",
        "ZENBRAIN_CONTEXTS": "<value>"
      }
    }
  }
}

claude_desktop_config.json

Step-by-step: add this in Claude

Remote URL or a command on your machine? How the two installs differ

Run on PlugMCP

Host a copy with our keys and logs.

A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.

Launch

Related MCP

View more
  • Firecrawl🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
  • N
    NotionToken-auth Notion MCP: pages, databases, blocks, comments, files. Runs headless in CI and agents.
  • Context7Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

Related skills

View all
  • reaReverse engineer anything with agents, from app behavior down to native binaries.
  • rea-changelog-updatePrepare or rewrite REA release changelogs and GitHub release notes from pinned Git history, with verified contributor thanks and Release Please synchronization.
  • rea-tool-designDesign or change REA investigation tools, CLI/MCP contracts, provider capabilities, and Evidence semantics.

Questions

How do I install ZenBrain Memory?
Copy the stdio config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does ZenBrain Memory need an API key?
The publisher lists these environment variables: ZENBRAIN_DB, ZENBRAIN_CONTEXTS.
What transport does ZenBrain Memory use?
ZenBrain Memory runs locally over stdio.
When was ZenBrain Memory last checked?
Last checked 2026-10-16. Seven-layer agent memory: episodic, semantic, procedural and core. Local SQLite, no account.

Seven-layer agent memory: episodic, semantic, procedural and core. Local SQLite, no account.

  • arXiv preprint (cs.AI): arxiv.org/abs/2604.23878
  • Open-access archive (Zenodo / CERN): doi.org/10.5281/zenodo.19353663
  • ORCID: 0009-0001-1793-012X
  • License: CC BY 4.0 (paper) · Apache-2.0 (code)
@misc{bering2026zenbrain,
  title         = {ZenBrain: A Neuroscience-Inspired 7-Layer Memory Architecture for Autonomous AI Systems},
  author        = {Bering, Alexander},
  year          = {2026},
  eprint        = {2604.23878},
  archivePrefix = {arXiv},
  primaryClass  = {cs.AI},
  doi           = {10.5281/zenodo.19353663},
  url           = {https://arxiv.org/abs/2604.23878}
}

Feedback, replications, and counter-results are explicitly welcome — please open an issue or reach out via [email protected].

Your AI forgets everything after every conversation. ZenBrain gives it a memory that lasts across sessions, split into layers the way human memory is, and ships the mechanisms memory research describes (spaced repetition, emotional tagging, Hebbian strengthening, forgetting curves, sleep replay) as tested functions. Which of them run on their own and which you call yourself is in one table.

Architecture vs. this package. ZenBrain's architecture is 15 neuroscience-inspired mechanisms — 9 foundational algorithms + 6 Predictive Memory Architecture (PMA) components (paper). The six PMA components are proprietary: they ran in the ZenAI production system and are not in these packages, which contain the hooks they plug into. This open-source package ships the algorithm library: 10 core algorithms + 10 advanced research modules (20 modules), zero-dependency.


Benchmark: LongMemEval-500

On LongMemEval-500, three of nine head-to-head comparisons hold against Letta, Mem0 and A-Mem — all three against A-Mem, the remaining six are ties, none lost. Three competitors x three LLM judges, Bonferroni-corrected (alpha = 0.05/18) and version-matched. The measured ZenBrain arm (per the correction notice a Python port of a test-harness class, not the seven-layer system) reaches 91.3% of the binary-judge accuracy of a full-context comparison arm (whose answer model reads the whole history) with 1/109.6 of its input tokens in the answer step (47.7% vs. 52.2%); building the memory is not counted.

Works out of the box without an embedding provider — lexical ranking, nothing extra to install. nomic-embed-text can be added as the embedding provider; it was the embedder of the measured run. The figures above were not measured with this package: per the correction notice, the measured arm is a Python port of a test-harness class, not an import of the packages.

The paper prints where ZenBrain loses as well: on LoCoMo, substring-based aggregate F1 favours lexical retrieval (BM25) by metric design, and we do not contest that. The advantage is most pronounced in the judge-graded comparisons and on cross-session reasoning.

The mechanism comparison further down re-runs from this repository in under a minute — bash scripts/compare-mechanisms.sh, no API keys; it needs git, Node and network access to clone the three compared repositories at the pinned commits. It prints a positive and a negative control before the result, so the instrument can be checked before its output is trusted. The mechanism ablation behind paper Tables 7–9 also runs from here: cd backend && npm run experiments, and CI compares every point estimate with the published ones. The method and the effect sizes behind the LongMemEval numbers above are in the paper; this repository ships no runner for those. The archived packages below run the significance tests and effect sizes in full, and the mechanism ablation behind paper Tables 7–9.

  • Method, effect sizes and ablations: arXiv:2604.23878
  • Open-access archive: 10.5281/zenodo.19353663

Reproduction packages

The raw material behind the numbers above is deposited on Zenodo, open access and citable. Both links are concept DOIs and resolve to the latest version, the same convention this README uses for the paper archive; each description was measured against the version named after it.

  • Mechanism ablation, paper Tables 7–9 — 10.5281/zenodo.22162063 (described here: v1.0.0). Four experiment suites (95 tests), the reference JSON the paper's tables were generated from, and verify-against-reference.mjs, which diffs a fresh run against that reference and exits non-zero on drift. npm install && npm run experiments; the run itself needs no API keys and no network, and finishes in under a minute on a laptop. Two of the paper's other ablation tables need data this package does not carry: Table 11 the LoCoMo corpus, Table 13 a different pipeline. The package says so itself.
  • Measurement package, LongMemEval-500 and the real-pipeline flag ablation — 10.5281/zenodo.22161977 (described here: v1). Per-(system, judge, seed) judged outputs, the flag manifests as recorded at run time, a SHA256SUMS.txt covering every file in the package, and the analysis scripts. Three of those scripts are stdlib-only and self-checking — the full-context comparison behind the 91.3% figure, the judge-agreement figures, and the real-pipeline flag-ablation table: each prints every re-derived value next to the reference it has to match, and exits non-zero on mismatch. The significance tests behind the nine head-to-head comparisons against Letta, Mem0 and A-Mem sit in a separate script that needs numpy and scipy; it recomputes all eighteen pairwise tests and rewrites the deposited significance JSON byte-identically, so what catches a mismatch there is the checksum, not an exit code.

Both packages name what they do not cover. Replications and counter-results are welcome: [email protected].


How ZenBrain differs from Mem0, Letta and Zep

ZenBrain's architecture combines fifteen mechanisms taken from human memory research: nine foundational algorithms, which are in this library, and six Predictive Memory Architecture components, which are not public. Among the systems the paper surveys, none integrates more than two of the features it compares. The table below records which of five of these mechanisms appear in the public source of three widely used memory systems, at pinned versions, on a fixed date.

MechanismZenBrainMem0LettaZep
FSRS spaced repetitionyes———
Hebbian learningyes———
Ebbinghaus forgetting curvesyes———
Sleep consolidationyes———
Emotional taggingyes———
Zero runtime dependenciesyes——n/a

How this was measured, 27 August 2026. Full-text search over the public source of mem0ai/mem0 at tag ts-v3.1.7 (npm mem0ai 3.1.7, PyPI mem0ai 2.0.19), letta-ai/letta-code at tag v0.31.2 (npm @letta-ai/letta-code 0.31.2) and getzep/zep at commit 7de18df, its last before that date, lockfiles excluded. getzep/zep holds examples and integrations for the hosted Zep Cloud, whose own source is not public: a dash in the Zep column covers that repository only, and there is no library to count dependencies of. A dash means the term does not occur in that snapshot — not that the system cannot do something comparable under another name. One case we know of: Letta Code revises memory in the background and calls it "dreaming" (sleep-time compute), which the term search for sleep consolidation does not match. In ZenBrain the mechanisms in this table are library functions; which of them the coordinator runs is in this table. Dependency counts are declared direct dependencies: @zensation/core resolves to two packages, both our own; mem0ai declares four, @letta-ai/letta-code eighteen. Re-run the whole check — the five mechanism rows and the dependency counts, at these pins — with scripts/compare-mechanisms.sh (--latest runs it against today's default branches instead); it prints its own positive and negative controls so you can see the instrument works before you trust the result.

Human memory does not work like a key-value store. The brain keeps specialised systems for different kinds of memory, forgets actively, modulates by emotion and retrieves by context. ZenBrain brings those mechanisms to AI agents, as a memory system with seven layers and as a library of the algorithms behind them.

Advanced algorithms (since v0.3.0, May 2026)

On top of the 10 core algorithms above, @zensation/algorithms ships 10 advanced algorithms grounded in recent neuroscience and ML research. Each is exposed as its own sub-path (@zensation/algorithms/<name>) and remains zero-dependency:

  • fsrs-vmPFC — Prediction-Error coupled FSRS
  • hebbian-two-factor — Two-Factor synaptic consolidation
  • sleep-simulation-selection — RL-based replay selection
  • spectral-health — Fiedler-value KG health monitor
  • ib-budget — Information-Bottleneck retention budget
  • dopamine-routing · hopfield-stm · personalized-pagerank · surprise-gradient-memory · temporal-multi-route

See CHANGELOG.md for details.

What runs on its own, and what you call yourself

@zensation/core is a memory system: the MemoryCoordinator stores, recalls, consolidates and forgets. @zensation/algorithms is a library of twenty modules of tested functions, and the coordinator calls only a few of them. Several mechanisms named in this README live in the library alone; you wire them into your own system where you want them.

MechanismThe coordinator (@zensation/core)The library (@zensation/algorithms)
LayersSeven layer classes. recall() searches episodic, semantic, procedural and core memory, working memory on request; the cross-context layer is not part of recall.—
Routingstore() picks the layer: step-by-step content becomes a procedure, an emotional weight above 0.5 an episode, a confidence above 0.9 a pinned core block, anything else a fact.—
Emotional taggingAt store() with automatic routing — not with an explicit type, and not when steps or procedural wording already made it a procedure. The weight decides episode or fact, and which episodes consolidation promotes; a weight you pass for a fact stretches its starting FSRS stability by 1 + weight.tagEmotion, computeEmotionalWeight
Spaced repetition (FSRS)Every fact gets an FSRS schedule. getReviewQueue() lists the due facts; a review your application reports with recordReview() updates the schedule. Recall does not rank by retrievability.FSRS, prediction-error-coupled FSRS
ForgettingNothing in long-term memory decays or is deleted on its own. forget(id, layer) deletes a memory on request together with what consolidation linked to it (episode ⇄ fact) and its working-memory copies; { cascade: false } deletes only the one memory. Working memory decays exponentially with the minutes since its last decay.Ebbinghaus retention, personal decay profiles
Consolidationconsolidate() turns each emotionally weighted episode among the 100 most recent into a fact, once.Sleep replay (selectForReplay, simulateReplay, pruneWeakConnections), simulation-selection loop
Hebbian learningNot used: core keeps no knowledge graph.Classic and two-factor Hebbian
Bayesian confidenceNot used.propagateForRelation and the rest of the module
Context-dependent retrievalNot used. The includeContext option never had an effect and was withdrawn in 0.5.0.captureEncodingContext, calculateContextSimilarity

The six Predictive Memory Architecture components of the paper are not in the packages; the packages contain the hooks they plug into (see Architecture vs. this package above).

Quick Start

Requires Node.js 22 or newer (since 0.4.0). On Node 20 or older, npm silently installs the last compatible release (@zensation/[email protected], @zensation/[email protected]) instead of the current one — which looks like a broken package but is a platform mismatch. See CHANGELOG.

npm install @zensation/algorithms
import {
  initFromDecayClass,
  getRetrievability,
  updateAfterRecall,
  tagEmotion,
  computeEmotionalWeight,
  computeHebbianStrengthening,
  propagateForRelation,
} from '@zensation/algorithms';

// 1. Schedule a memory with FSRS
const memory = initFromDecayClass('normal_decay');

// 2. A week later, check recall probability (Ebbinghaus curve)
const aWeekLater = new Date(Date.now() + 7 * 24 * 60 * 60 * 1000);
const retention = getRetrievability(memory, aWeekLater);
console.log(`Recall probability: ${(retention * 100).toFixed(1)}%`);
// ~36.8% — retrievability has decayed over the week

// 3. User recalled it anyway — update scheduling
const updated = updateAfterRecall(memory, 4, retention, aWeekLater);
// stability 7 -> 8.19: recalling at low retrievability gives a bigger boost

// 4. Tag emotional significance
const emotion = tagEmotion('I am absolutely thrilled — I got the promotion!');
const weight = computeEmotionalWeight(emotion);
console.log(`Decay multiplier: ${weight.decayMultiplier}x`);
// 2.7x — emotional memories decay nearly 3x slower

// 5. Strengthen knowledge connections (Hebbian)
const stronger = computeHebbianStrengthening(1.0);
// 1.09 — "neurons that fire together wire together"

// 6. Propagate confidence through your knowledge graph
const confidence = propagateForRelation(0.5, 0.8, 1.0, 'supports');
// 0.9 — supporting evidence increases confidence

Want the advanced algorithms?

import {
  computeKGPredictionError,
  computeAdaptiveFSRSInterval,
} from '@zensation/algorithms/fsrs-vmPFC';

// Couple FSRS scheduling with the prediction-error signal from your
// knowledge graph: when the embedding has shifted a lot since the last
// review (high cosine distance), shrink the next interval; otherwise push
// it out. Both arrays must have the same length.
const lastEmbedding = [0.1, 0.2, 0.3, 0.4];
const currentEmbedding = [0.5, 0.4, 0.1, 0.2];
const pe = computeKGPredictionError(lastEmbedding, currentEmbedding);
const nextInterval = computeAdaptiveFSRSInterval(14, pe);

Each advanced algorithm has its own sub-path (@zensation/algorithms/spectral-health, @zensation/algorithms/ib-budget, …). All zero dependencies.

Runnable examples

Seven examples live in examples/; five run on the workspace packages alone, two need a third-party SDK installed (the examples README says which):

ExampleShows
basic-chatbot.tsWorking Memory + Short-Term Memory for conversation context — no SDK needed
with-claude.tsAn Anthropic Claude assistant that remembers across conversations
with-langchain.tsZenBrain as the memory backend of a LangChain agent
with-crewai.tsMultiple agents sharing Working Memory, with Hebbian strengthening
with-vercel-ai.tsA memory-aware system prompt for the Vercel AI SDK streamText pattern
with-llamaindex.tsZenBrain as long-term memory for a LlamaIndex.TS agent — LlamaIndex keeps the short-term window, ZenBrain decides what outlives it
with-mastra.tsZenBrain behind a Mastra agent: a Processor records each turn, and the instructions are rebuilt from what is currently recallable
npx tsx examples/basic-chatbot.ts

The integration examples additionally need their respective SDK installed; examples/README.md lists which. Open good first issues are the best way in if you want to contribute.

The Science Behind It

7-Layer Memory Architecture

Layer 7: Cross-Context Memory    ← Entity links across domains (experimental)
Layer 6: Core Memory             ← Pinned facts (Letta-style)
Layer 5: Procedural Memory       ← "How to do X" (skills & workflows)
Layer 4: Long-Term Semantic      ← Facts with FSRS scheduling
Layer 3: Episodic Memory         ← Concrete experiences & events
Layer 2: Short-Term / Session    ← Current conversation context
Layer 1: Working Memory          ← Active task focus (7±2 items)

Each layer holds a different kind of memory and is stored and searched in its own way.

FSRS Spaced Repetition

FSRS (Free Spaced Repetition Scheduler) is the open scheduler Anki offers as an alternative to its legacy SM-2 algorithm; its authors report that, in simulations, users need 20–30% fewer reviews than with SM-2 for the same retention (ABC of FSRS). It uses the desirable difficulty principle: reviewing when retention is low gives a bigger stability boost. In @zensation/core every fact gets an FSRS schedule; your application reports each review with recordReview(), and FSRS sets the next one.

Emotional Memory

The amygdala modulates memory consolidation — emotional events are remembered more vividly (flashbulb memory). ZenBrain's emotional tagger assigns arousal, valence, and significance scores using about 170 weighted keywords in four lists (English & German). In the library, emotional weight stretches decay half-lives up to 3x (computeEmotionalWeight); the coordinator uses the weight to route emotional content to episodic memory and to choose what consolidation promotes.

Hebbian Learning

"Neurons that fire together wire together" (Hebb, 1949). Knowledge graph edges that are frequently co-activated grow stronger. Unused edges decay and eventually get pruned. The result: a self-organizing knowledge structure that reflects actual usage patterns, with homeostatic normalization to prevent runaway growth. These are library functions; @zensation/core keeps no knowledge graph, so you apply them to a graph of your own.

Ebbinghaus Forgetting Curves

Ebbinghaus (1885) showed that memory decays exponentially: R = e^(-t/S). The library implements personalized decay profiles that adapt to individual learning patterns, with SM-2-compatible call signatures for existing spaced repetition code (the stability update itself is FSRS's). In the coordinator, only working memory decays.

Context-Dependent Retrieval

Tulving's Encoding Specificity Principle (1973): memories are recalled better when the retrieval context matches the encoding context. The library captures temporal context (time of day, day of week) and task type, and calculateContextSimilarity turns a match between a stored and the current context into a boost factor of up to 1.3 — a design constant, not a measured effect. The coordinator stores no encoding context; its includeContext option never had an effect and was withdrawn in 0.5.0.

Bayesian Confidence Propagation

Knowledge isn't isolated — facts support or contradict each other. The library propagates confidence through a knowledge graph you keep, one edge per call, with Bayesian-style (noisy-OR) updates: supporting evidence increases confidence, contradictions decrease it, with damping for numerical stability.

Sleep Consolidation

During sleep, the hippocampus replays recent experiences, strengthening important memories and pruning weak connections (Stickgold & Walker, 2013). ZenBrain simulates this process: selectForReplay() prioritizes emotional and recently-accessed memories, simulateReplay() boosts their stability by 50%, and pruneWeakConnections() removes weak Hebbian edges — a threshold rule inspired by the Synaptic Homeostasis Hypothesis (Tononi & Cirelli, 2006). The coordinator's consolidate() does not run this replay; it turns emotionally weighted episodes among the 100 most recent into facts, once each.

import { selectForReplay, simulateReplay } from '@zensation/algorithms/sleep-consolidation';

// Select memories for overnight consolidation
const toReplay = selectForReplay(allMemories);
// Simulate sleep replay — stability ↑, weak edges pruned
const result = simulateReplay(toReplay);
console.log(`Replayed ${result.summary.totalReplayed} memories, avg stability +${result.summary.avgStabilityIncrease.toFixed(1)} days`);

Memory Coordinator

The MemoryCoordinator puts the layers behind one API — inspired by Global Workspace Theory (Baars, 1988):

import { MemoryCoordinator } from '@zensation/core';

const memory = new MemoryCoordinator({ storage: adapter, embedding: embedder });

// Auto-routes to the right layer (semantic, episodic, procedural, or core)
await memory.store('User prefers TypeScript', { type: 'auto' });

// Cross-layer search with ranked, deduplicated results
const results = await memory.recall('programming preferences');

// Forget a memory by the id and layer of a recall result (a fact consolidated from it goes too)
await memory.forget(results[0].id, results[0].layer);

// Consolidate: emotionally weighted episodes among the 100 most recent become facts, once each;
// working memory decays
await memory.consolidate();

// Facts whose FSRS review is due; report each review with recordReview()
const dueItems = await memory.getReviewQueue();

Packages

PackageDescriptionStatus
@zensation/algorithms · source20 algorithm modules — 10 core (FSRS, Hebbian, Ebbinghaus, emotional, Bayesian, sleep consolidation, intervals, visualization) + 10 advanced (vmPFC-FSRS, two-factor Hebbian, IB budget, Hopfield STM, …):white_check_mark: Published
@zensation/core · sourceMemory layers, coordinator, adapter interfaces:white_check_mark: Published
@zensation/adapter-postgres · sourcePostgreSQL + pgvector storage adapter:white_check_mark: Published
@zensation/adapter-sqlite · sourceSQLite storage adapter (zero-config):white_check_mark: Published
@zensation/mcp · sourceMCP server — gives any MCP client (Claude Desktop, Claude Code, Cursor) five tools over five of the seven layers. Carries the protocol SDK, so the core stays dependency-free:white_check_mark: Published
@zensation/ai-sdk · sourceVercel AI SDK middleware — recall before the model call, store after it. Works with any provider, zero runtime dependencies:white_check_mark: Published

Tree-Shakeable Imports

Every algorithm is available as a subpath export:

// Import everything
import { tagEmotion, updateAfterRecall } from '@zensation/algorithms';

Or just what you need (better tree-shaking):

import { updateAfterRecall } from '@zensation/algorithms/fsrs';
import { tagEmotion } from '@zensation/algorithms/emotional';
import { computeHebbianStrengthening } from '@zensation/algorithms/hebbian';
import { propagateForRelation } from '@zensation/algorithms/bayesian';
import { selectForReplay } from '@zensation/algorithms/sleep-consolidation';
import { getRetrievabilityWithCI } from '@zensation/algorithms/intervals';
import { generateRetentionCurve } from '@zensation/algorithms/visualization';

Use Cases

AI Chatbots with Long-Term Memory

import { initFromDecayClass, getRetrievability, type FSRSState } from '@zensation/algorithms/fsrs';
import { tagEmotion, computeEmotionalWeight } from '@zensation/algorithms/emotional';

// When your AI learns a fact about the user:
function rememberFact(fact: string): FSRSState {
  const weight = computeEmotionalWeight(tagEmotion(fact));
  // Emotional facts start with more stability: the multiplier runs from 1 to 3,
  // and initFromDecayClass applies up to 2x of it to the base stability.
  return initFromDecayClass('normal_decay', weight.decayMultiplier);
}

// Before each conversation, check what needs reinforcement:
function getFactsDueForReview(facts: FSRSState[]) {
  return facts.filter(f => getRetrievability(f) < 0.7);
}

Knowledge Graph with Self-Organizing Edges

import { computeHebbianStrengthening, computeHebbianDecay } from '@zensation/algorithms/hebbian';
import { propagateForRelation } from '@zensation/algorithms/bayesian';

// When two concepts are mentioned together:
function coActivate(edge: { weight: number }) {
  edge.weight = computeHebbianStrengthening(edge.weight);
}

// Periodic maintenance — decay unused edges:
function decayEdges(edges: { weight: number; lastUsed: Date }[]) {
  for (const edge of edges) {
    edge.weight = computeHebbianDecay(edge.weight);
    // 0 means the edge fell below MIN_WEIGHT (0.1): prune it
  }
}

RAG with Confidence Scoring

import { propagateForRelation, isSignificantChange } from '@zensation/algorithms/bayesian';

type Fact = { confidence: number };
type Relation = { source: Fact; target: Fact; weight: number; type: string };

// After retrieval, propagate confidence through related facts:
function updateConfidenceGraph(relations: Relation[]) {
  for (const rel of relations) {
    const newConf = propagateForRelation(
      rel.target.confidence,
      rel.source.confidence,
      rel.weight,
      rel.type // a key of PROPAGATION_FACTORS: 'supports', 'contradicts', 'causes', 'requires', 'part_of', …
    );
    if (isSignificantChange(newConf, rel.target.confidence)) {
      rel.target.confidence = newConf;
    }
  }
}

Extracted From Production

These aren't toy implementations — ZenBrain's algorithms are extracted from ZenAI, the AI platform they ran in production. Everything claimed here is verifiable in this repository:

  • 945 tests (539 algorithms · 164 core · 88 adapter-sqlite · 65 adapter-postgres, 12 of them against a real PostgreSQL · 61 mcp · 28 ai-sdk), all passing
  • Zero runtime dependencies in @zensation/algorithms and @zensation/core (core depends only on algorithms) — pure TypeScript, dual ESM + CJS, tree-shakeable subpath exports
  • Reproducible — building from this source produces the same 153-file @zensation/[email protected] tarball published on npm
  • 7-layer memory architecture grounded in published neuroscience

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines. Issues and pull requests are answered; replications and counter-results are especially welcome.

Resources: API Reference | Recipes | Architecture | Benchmarks | FAQ | Roadmap

# Clone the repo
git clone https://github.com/zensation-ai/zenbrain.git
cd zenbrain

# Install dependencies
npm install

# Run tests
npm test

# Build all packages
npm run build

Research

ZenBrain's architecture and algorithms are documented in an open-access technical disclosure:

  • arXiv preprint (cs.AI): arxiv.org/abs/2604.23878
  • Open-access archive: ZenBrain: A Neuroscience-Inspired 7-Layer Memory Architecture for Autonomous AI Systems (Zenodo, DOI: 10.5281/zenodo.19353663 — resolves to the latest version)
  • TDCommons: Technical Disclosure (CC BY 4.0)
  • HuggingFace: Model Card & Benchmarks

If you use ZenBrain in academic work, please cite:

@misc{bering2026zenbrain,
  title         = {ZenBrain: A Neuroscience-Inspired 7-Layer Memory Architecture for Autonomous AI Systems},
  author        = {Bering, Alexander},
  year          = {2026},
  eprint        = {2604.23878},
  archivePrefix = {arXiv},
  primaryClass  = {cs.AI},
  doi           = {10.5281/zenodo.19353663},
  url           = {https://arxiv.org/abs/2604.23878}
}

Cited by

Five works cite ZenBrain (as of 28 September 2026): a survey by the Sico team at Microsoft Research, MindMemOS by Huawei's Noah's Ark Lab, the EVD preprint, the HindsightTag manuscript and the Lamperouge manifesto.

  • Agentic Evolution: From Self-Improving Agents to Co-Evolving Human-AI Systems, a survey by the Sico team at Microsoft Research (2026), calls forgetting "critically understudied": very few of the roughly 100 Memory & Sense papers it surveys implement explicit forgetting. It lists ZenBrain as one of four works in its forgetting/lifecycle group and as its only source for sleep-based consolidation.
  • MindMemOS (Huawei's Noah's Ark Lab, arXiv:2608.12428, August 2026) relies on exactly three references for the foundational claim of its introduction: two field surveys and a single system paper — ZenBrain.
  • HindsightTag (Vivek Govindbhai Dudhat, manuscript, July 2026, revised 30 September 2026) discusses ZenBrain as its closest prior system and uses its MemoryCoordinator interface as the integration example.
  • EVD: An Emotional Valence Dimension for Persistent Agent Memory (R. J. Vandelinder and I. Vandelinder, Exile Research, Zenodo, June 2026) places ZenBrain in its related work.
  • The field measures the wrong thing (Lamperouge, manifesto, Zenodo, August 2026) selects ZenBrain among six works on persistent internal state and notes that its "days" are simulation steps.

Each work with the sentence that cites ZenBrain: zensation.ai/en/publikationen.

Projects that build the library into their code:

  • ACMS reads and writes the ZenBrain SQLite database directly.
  • neurograph-runtime uses the FSRS implementation of @zensation/algorithms as the ranking and feedback layer of a knowledge base on radiotherapy literature.

Citing ZenBrain or building on it? Open an issue and we will add you here.

Community

  • GitHub Discussions: Ask a question, show what you built — help, show-and-tell, feature requests
  • GitHub Issues: Bug reports & feature requests
  • Email: [email protected]

License

Apache 2.0 — use it in production, modify it, distribute it. Just keep the attribution.


How do I install ZenBrain Memory?
Copy the stdio config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does ZenBrain Memory need an API key?
The publisher lists these environment variables: ZENBRAIN_DB, ZENBRAIN_CONTEXTS.
What transport does ZenBrain Memory use?
ZenBrain Memory runs locally over stdio.
When was ZenBrain Memory last checked?
Last checked 2026-10-16. Seven-layer agent memory: episodic, semantic, procedural and core. Local SQLite, no account.

No tool list yet. Remote servers get one after the first health check.

plugmcp

Plug any tool into any agent. MCP servers for people who do not write servers. Gateway for volume, n8n for apps.

  • github.com/TODO
  • x.com/TODO
  • linkedin.com/company/TODO

PlugMCP, 2026

Product
  • Browse
  • Install
  • Host your own
  • Pricing
  • Voice mode
  • Browser
Directory
  • All MCP servers
  • MCP Apps
  • Tools
  • Agent skills
  • Categories
  • New
  • Voice
  • Submit a server
Developers
  • Docs
  • Blog
  • Club
  • Work with us
  • What is MCP
  • What is WebMCP
  • Status
Company
  • About
  • Contact
  • Terms
  • Privacy
  • DPA