Changelog
Every release, newest first — auto-summarized from CHANGELOG.md at build time. You can also browse the GitHub Releases page or the raw commit history.
The CLI harvests; the agent distills. Extracting meaning is a semantic judgement, and making it in the CLI would mean shipping an embedding model or calling an LLM — the two things Brain exists to avoid. So the harvester reports facts and never infers, and distilled memories go through the ordinary brain memorize path as agent-inferred: an import inherits the existing provenance ceilings for free and can never pin, entrench, or outrank something the user said directly. Import is incremental — a cursor at ~/.brain/.import/state.json records which sessions have been read so re-runs offer only new ones (--all overrides). --mark validates ids against the source's real sessions and exits non-zero on any that match nothing: silently accepting a truncated or mistyped id would report a session as retired while the cursor never matches it, re-offering that session forever. Scope with --project, --since 30d|6m|2026-01-01, --limit. brain import --sources lists detected history stores. brain import only ever reads and prints; no memory is written without the agent. Claude Code is the first source adapter; the registry in src/harvest.js takes additional agents without changes downstream.
/brain:import— cold-start a brain from transcripts your agents already wrote. A new brain is empty, and an empty brain is worth nothing until something fills it; meanwhile every coding agent has been keeping months of local history.brain importharvests it: session titles, user prompts, projects, branches and edited files, with harness wrappers (<system-reminder>, slash-command tags, command output), subagent sidechain traffic, and bare acknowledgements filtered out. The digest is bounded on three axes (sessions, prompts per session, total characters) and round-robins across projects, so one busy repo cannot consume the whole budget — on a real 261-session history that lifted project coverage from 5 to 13 within the same ~15k tokens.
- Memory provenance — every write is now labelled by origin. Each memory carries an
origin(user,agent-inferred,tool-output,external) recording *where the content came from*, which is a different question from how much the agent believes it. Origin decides what a memory may claim: non-user origins are capped below the 0.7 prune-exempt salience threshold, capped on confidence so they stay flagged as uncertain at recall, may not raise their own base strength, and decay faster — so a fact absorbed from untrusted content fades and loses to a genuine one over time. Defaults toagent-inferredwhen absent (the safe direction). Downgrades are never silent:brain memorizereports every value it lowered underprovenance_clamps. Mitigates OWASP ASI06 (memory poisoning); see MemGhost, arXiv:2607.05189. - Append-only provenance log at
~/.brain/audit.log— one JSON object per write, recorded before the caller sees success, so a fact that later proves to be planted can be traced to the write that introduced it even if the memory was since edited, consolidated, or deleted.
- Breaking (CLI): born-pinning through
brain memorizenow requiresorigin: "user". Entrenchment —pinned(loaded into every session) andstable(exempt from decay) — is a capability rather than a magnitude, so a request from any other origin is refused with a non-zero exit rather than quietly capped. Pin deliberately afterwards withbrain pin <id>instead. Only affects callers that drive the CLI directly;/brain:memorizealready proposed rather than assumed pinning.
- Cache-honest token accounting in the benchmark harness.
normalizeUsagenow foldscache_read/cache_creationinput tokens back into the input count — the cached prefix was being undercounted, which deflated tokens-per-successful-task on the DeepSeek endpoint. Cached tokens are accumulated, logged, and persisted separately so the two can be compared. Also: model-aware judge dispatch,runs_per_scenarioraised to 10, tighter needle-fact rubrics on scenarios A/B/C, and three amendment rows recording all of it inPREREGISTRATION.md.
_Covers everything since v0.1.0-beta.31, including the changes first shipped in the changelog-less 0.1.0-beta.32._
- Recall receipts — memory that visibly fires. Every memory returned by
brain recallandbrain session-startnow carries an engine-mintedreceiptline (◉ memory: "<title>" (<type>, <age>)). Hosts end a response with the receipts of the memories that actually shaped it — max 3, copied verbatim, pinned facts only when decisive, none when none were used. A receipt can only exist if the engine returned that memory, so receipts cannot be hallucinated. - Four new agent hosts. Native integrations under
integrations/for OpenClaw / NVIDIA NemoClaw (memory-slot pluginopenclaw-brain-memoryreplacingmemory-core, slot-neutral hook pack, ClawHub skill, NemoClaw egress-policy preset — all live-verified), Hermes Agent (fullMemoryProviderplugin, shipped standalone as thehermes-brain-memorypip package per upstream policy), GitHub Copilot CLI (plugin withsessionStartcontext injection + skills; the repo is now a Copilot plugin marketplace via.github/plugin/marketplace.json— install withcopilot plugin install brain-memory@brain), and Kilo (runtime plugin with chat-message injection, session tracking, andBRAIN_AGENTlabeling). - Two new installer runtimes.
brain --copilot(global prompt at~/.copilot/copilot-instructions.md, skills in the cross-tool~/.agents/skills/) andbrain --kilo(prompt registered in thekilo.jsoncinstructionsarray via a safe strict-JSON editor; repo-localAGENTS.mdshared with Codex/OpenCode).
- Kilo plugin derives the project label from
input.projectas well, so a plugin host running with cwd/no longer records sessions as project"unknown". - Hermes
cli.pyis a standalone diagnostics tool (python3 cli.py status|recall) — Hermes exposes no CLI hook to user-installed memory providers, so the previously documentedhermes memory recallnever existed. - Every
npm publishnow runs the full test suite viaprepublishOnly— the oldprereleasescript was a no-op vestige no release path invoked.
- Recall relevance is now calibrated in absolute terms. BM25 relevance was normalized per-query by the top score, so the best match for *any* query scored relevance 1.0 — a nonsense query's one weak term-match produced ten confident-looking results (top composite 0.679). Three coordinated changes fix the calibration: relevance is scaled by IDF-weighted query coverage (a memory matching one term of a four-term query can no longer score 1.0); explicit-query recall applies a relevance floor so zero-relevance memories can't pad the top-N on strength alone; and spreading-activation sources are relevance-gated in query mode, so a strong-but-irrelevant clique can't rescue itself past the floor (associates of genuinely relevant memories still surface — that's the feature). Context mode (
--context, session-start) is exempt: topical padding is intended there. On a real 177-memory brain the same nonsense query now returns one result with honest relevance (0.213), and a 20-query retrieval probe improved from hit@1 90% / MRR 0.950 to hit@1 100% / MRR 1.000 — coverage scaling also demotes partial-match distractors below full-coverage targets.
- Connector purges plaintext working copies. The hosted MCP connector already kept per-user working copies in RAM only (tmpfs, never on disk); it now also wipes them proactively — on an idle TTL, at session end, and via a dedicated ephemeral working path — so a decrypted brain never lingers in memory longer than an active session needs it. Local-only and Git/export use are unaffected. See SECURITY.md.
memorizetags each memory with its origin agent. New memories recordencoding_context.agent— the detected host (claude-code,gemini-cli,codex,opencode), aBRAIN_AGENToverride, orunknown— in both frontmatter and the index. This powers the Brain Cloud dashboard's "where your brain is used" attribution. Existing memories are unaffected; the field is additive.
forgetnow actually clears a memory from recall.forgetsourced its search index differently fromrecall, so a forgotten memory could keep surfacing until the index was rebuilt out-of-band; it now sources the index via the same TF-IDF path asrecall, so forgetting takes effect immediately. Added CLI test coverage forrecallandforget, and de-flaked the stress-test performance gate.
- Website NL/EU compliance pass. Privacy and Terms were revised for NL/EU law — sub-processor list and EU data location, a cookies/browser-storage section, retention periods, KMS-accurate at-rest-encryption language, the Omelas controller identity, a VAT (EU OSS) clause, and the 14-day consumer right of withdrawal — plus a site-wide transparency notice (not a consent CMP; the site sets no tracking cookies).
- Brand asset set. Added
assets/brand/— light + dark firing-neuron tiles and marks (SVG + PNG 64–1024), transparent marks, icon-centered LinkedIn covers (6336×1584, no text), and a usage README — with a dependency-free regeneration script. No behavior change.
Version marker only — no functional changes since beta.28.
- Recall relevance after out-of-band memory changes.
session-startnow rebuilds its search index when it has drifted out of sync withindex.json(after async pull,sleep/consolidate,forget, or a manual edit), not only when the index is missing — matchingrecall's behavior. A stale index silently scored every memory's relevance as 0, so newly-synced or changed memories were surfaced by strength/context only, never by relevance.
- Hosted-service hardening (Brain Cloud + connector). Memories synced to Brain Cloud are now encrypted at rest (AES-256-GCM, per-user key, with keys managed in a cloud KMS — the key never sits on the server); the connector keeps per-user working copies in RAM only (tmpfs), never on disk. CLI sessions use rotating refresh tokens with automatic reuse detection and real logout (one device or all). The connector now fails closed without an identity provider, runs as an unprivileged sandboxed service, safely handles untrusted brain bundles, and rate-limits its endpoints; OAuth account-linking requires a verified email. None of this changes local-only or Git/export use, which stay passphrase-encrypted and never touch the cloud. See SECURITY.md.
- The published package now also ships
SECURITY.mdandCHANGELOG.md.
- Brand refresh. Adopted the firing-neuron "activation" glyph in place of the brain emoji across the prompts, command output, CLI help text, and the README, and refreshed the icon set (
assets/). No behavior change.
BRAIN_DIRenvironment variable — point your brain at any folder instead of the default~/.brain. Set it to a folder your existing tools already sync (Google Drive, Dropbox, iCloud Drive, OneDrive, Syncthing, or a git working copy) to get cross-device sync with no account and no extra setup. A leading~/is expanded. Honored everywhere the brain is resolved — recall, memorize, init, and Cloud sync.
- Command surface collapsed to a six-verb core. The everyday loop is ambient (recall + memorize), with a small manual surface and maintenance demoted to the background. Removed/merged six commands:
consolidateandrevieware now handled by/brain:sleep;unpinis folded into/brain:pin(a toggle —--offunpins);sunshine(forensic erasure) is now/brain:forget --deep;exploreis dropped (browse~/.brain/directly or use the web dashboard); andinitis folded into install + first/brain:sync(which auto-creates the structure if missing). The surviving commands areremember,memorize,status,pin,forget,sync,skills, andsleep. This aligns the plugin with the forthcoming Claude connector, which exposes the same minimal tool set.
- Install detection no longer depends on a specific command. The Codex/OpenAI skills-style detector keyed off
brain-init/SKILL.md; it now matches anybrain-*skill directory, so detection survives command-set changes.
- Primary domain moved to
brainmemory.ai. The website, dashboard, and Brain Cloud API now live atbrainmemory.ai,app.brainmemory.ai, andapi.brainmemory.ai. The plugin's default sync endpoint (DEFAULT_API_URL) is nowhttps://api.brainmemory.ai. The oldbrainmemory.workhosts remain as redirects —api.brainmemory.workissues a308to the new API, so existing installs keep syncing without changes.
memorizeandskill addnow read piped stdin portably (fixes CI on Linux & Windows). Both CLIs read input by opening the/dev/stdin*path*, which works on macOS but throwsENXIOon Linux CI runners and doesn't exist on Windows — so the contradiction-surfacing tests failed on every non-macOS job. Switched to reading file descriptor0(fs.readFileSync(0, …)), which reads piped stdin correctly across Linux, macOS, and Windows.
- Project moved to the Omelas organization. Repository transferred to
github.com/omelas-tech/brain(oldonurkarali/brainURLs redirect). Updatedrepository,bugs, and all in-repo/website GitHub references accordingly, and sethomepagetohttps://brainmemory.work/. No code or behavior changes — metadata only. The npm package name staysbrain-memory(unscoped); install is unchanged.
- Installer now removes stale command files on update, so the beta.18
/brain:skill→/brain:skillsrename actually takes effect for existing users. Previously the installer only *copied* the current command set and never deleted renamed/removed files — so an upgrader's oldskill.mdlingered next to the newskills.md, and on case-insensitive filesystems that leftoverskill.md(==SKILL.md) kept the wholecommands/brain/directory shadowed as a single skill, hiding every/brain:*command.installForRuntimenow wipes thebraincommand dir (and stalebrain-*skill dirs for the Codex skills layout) before writing the fresh set.
- **
/brain:*slash commands now actually register in Claude Code** (completes the beta.17 fix). On case-insensitive filesystems (default on macOS), theskillcommand fileskill.mdcollides withSKILL.md— Claude Code's skill loader treated the entirecommands/brain/directory as a single skill namedbrain, shadowing all 14 commands so none appeared in autocomplete. Renamed the commandskill→skills(commands/brain/skills.md, invoked as/brain:skills) to remove the collision. The CLI subcommand remainsbrain skill. Updated slash-command references inprompts/{claude,gemini,opencode}.md,CLAUDE.md, andREADME.md.
- **Claude Code now registers all
/brain:*slash commands.** The command files (commands/brain/*.md) shipped without YAML frontmatter; current Claude Code requires adescriptionfield to register a.mdas a slash command, so all 14 commands were silently skipped (only/brain:skillsurfaced, via the separate skills path). Addeddescription+argument-hintfrontmatter to every command file — the field Claude Code needs, and tolerated by the Gemini / Codex / OpenCode install targets too.
- Benchmark redesigned around 2025-2026 long-term-memory SOTA. No runtime changes to the brain CLI; this release is a milestone marker for the new evaluation methodology shipped in
benchmark/and documented at/docs/benchmarks/. - New N-arm matrix harness with cross-family LLM judge (Claude judges Gemini and vice-versa) — mitigates preference leakage (arxiv 2502.01534) and position bias (arxiv 2509.20293). - Six pitchable scenarios (A-F) replacing the legacy 5-scenario suite: Noisy Project Folder (LongMemEval-S retrieval-under-distractors), Three Sessions / One Decision (Pinned Tier ablation), The Contradiction Test (decay + recency), Skill Progressive Disclosure (CoALA Phase-2 L0/L1/L2 ablation), Continual Coding (SWE-Bench-CL style with realbrain memorizebetween tasks), Abstention (confabulation resistance). - Deterministic 200-memory distractor haystack; realbrain session-start/brain recallintegration with Recall@k / NDCG@k scoring against oracle ID sets. - Tokens-per-successful-task adopted as the headline efficiency metric (Mem0/BEAM standard); write-side cost co-reported. - New OpenCode CLI agent adapter (default modeldeepseek/deepseek-v4-pro), with--opencode-modeloverride for cheaper DeepSeek variants. - Codex CLI dropped from the default benchmark suite (no token reporting); remains a fully supported brain install target. - Legacy scenarios 1-5 stay on disk for reproducing historical reports; invoke explicitly via--scenario scenario-N-….
- BREAKING: unified CLI surface — the five separate binaries (
brain-memory,brain-recall,brain-reinforce,brain-cloud,brain-memorize) are replaced by a singlebraindispatcher with subcommands:brain recall,brain memorize,brain reinforce,brain cloud <…>, andbrain install|update|uninstall(barebrainruns the installer). New features ship as subcommands rather than new top-level binaries. Re-run the installer/update to refresh prompts; agents now invokebrain <command>. (bin/brain.js)
brain --help/brain --versionon the unified dispatcher- CoALA Phase 0 — budget-aware working memory. New
brain session-startaggregator returns a single deterministic, token-budget-bounded startup payload (memory_count,pinned,skills_index,context_recall,due_for_review,low_confidence_alerts,budget);~/.brain/config.jsonholds the working-memory budget (created lazily with safe defaults); each new memory records atoken_estimate. Session-start prompts/hook now make onebrain session-startcall instead of hand-rolled recall + review + low-confidence checks. - CoALA Phase 3 — procedural crystallization. New
/brain:sleepphase (4b) clusters repeated procedural/experience memories and proposes distilling a recurring task-solving procedure into aSKILL.md(user-confirmed, never silent) — learned skills, not just hand-authored ones. - CoALA Phase 4 — host skill export.
brain skill export <name> [--target claude|gemini]emits a native.claude/skills/<name>/SKILL.md(or.gemini/...) so distilled skills become directly executable by the host. The new state files (config.json,pinned.json,skills-index.json,_skills/) sync automatically via the existing whole-directory git/export-import engines. - Tier B §10.1 — obsolescence / context-shift detection.
/brain:sleepPrune phase flags memory clusters whose project/role has been absent from recent sessions (contexts.json) as reversible archive candidates — catching abrupt relevance loss that decay misses. Never flags pinned memories. - Tier B §10.2 — contradiction surfacing.
brain memorizenow reportspotential_conflictswhen a new memory heavily overlaps a pinned/stable memory;/brain:memorizeguidance has the agent adjudicate (supersede / keep-both-scoped / reject) instead of silently keeping both. - Tier B §10.4 — primacy/recency ordering.
brain session-startorders recalled memories so the highest-ranked land at the edges of the payload, mitigating "lost in the middle." - CoALA Phase 2 — procedural skills layer. Skills are stored as
~/.brain/_skills/<name>/SKILL.mdand served via three-level progressive disclosure (L0 session-start advertises name + description only; L1 reads the full skill on a matching task; L2 loads resources at execution).brain skill list|show <name>|use <name> [--failed]|add|remove <name>and/brain:skill. Procedural strength rises on successfuluseand falls on--failed; a skill that fails too often demotes itself out of the advertised L0 index (Tier B §10.3).~/.brain/skills-index.jsonholds the L0 list; session-start injects skill summaries budget-capped byskills_index_budget_tokens. - CoALA Phase 1 — pinned semantic tier + stable flag.
brain pin <id> [--scope global|project:<name>] [--priority N]/brain unpin <id>and the/brain:pin/brain:unpincommands. Pinned memories are injected at every session start regardless of recall score and are decay-exempt;stable: trueexempts a memory from decay without forcing it to always load.pinned/stablememories are skipped by sleep-cycle homeostasis and pruning.~/.brain/pinned.jsonmanifest;/brain:memorizenow proposes pinning durable conventions. Fixes the long-standing hole where a stored preference (e.g. "always use tabs") only applied if recall happened to surface it.
- OpenCode support —
brain --opencodeinstalls Brain Memory for the OpenCode agent (prompts/opencode.md), bringing the supported runtimes to Claude Code, Gemini CLI, OpenAI Codex CLI, and OpenCode.
- Graceful handling of corrupt brain state files — CLI tools now emit a clear, actionable error (naming the offending JSON and suggesting a sync/backup restore) instead of crashing when
index.json,associations.json, or the search index is malformed.
- Install docs recommend
npm install -governpx—npxdiscards the temporary install, so thebrainCLI never lands inPATHand agents fall back to less reliable manual file operations.
brain-memorizeCLI — single-command memory storage that handles all plumbing (ID generation, strength/decay computation, directory creation, file writing, index updates, association edges, search index) in one call--syncflag for/brain:memorize— auto-pushes to cloud/git after storing, eliminating the separate/brain:sync pushstep--confirmflag for/brain:memorize— opt-in confirmation (was previously the default)- Install check for
brain-cloudCLI in/brain:sync cloud push— shows install instructions if missing
/brain:memorizeis now non-interactive by default — stores immediately and shows results after, instead of asking "Store these memories?" before writing. The user said "memorize" — they want it stored./brain:sync pushandcloud pushare now non-interactive — execute immediately without confirmation, matchinggit pushbehavior. Pull/import still confirm before overwriting.- Memorize prompt reduced ~60% — AI classifies memories and pipes JSON to
brain-memorizeCLI instead of manually writing files. One bash call instead of 6-8 tool calls. - Session start behavior made lightweight — recall engine skips if project has no matching memories, output condensed to single status line, removed heavy mandatory phrasing
- Brain Cloud sync — push/pull
~/.brain/to Brain Cloud (api.brainmemory.work) via new cloud subcommands brain-cloudCLI (bin/cloud-sync.js) — device code auth, push, pull, status, logoutsrc/cloud-sync.js— zero-dependency cloud sync engine using Node.js built-inhttpsmodule- Device code OAuth flow for CLI authentication (
/brain:sync cloud login) - Tar.gz archive-based sync protocol for efficient uploads/downloads
- Token management with automatic refresh
- Cloud subcommands in
/brain:sync:cloud login,cloud push,cloud pull,cloud status,cloud logout
- Ambient Session Tracking — agent maintains a running mental log of decisions, learnings, insights, experiences, and goals as they happen throughout the session, so nothing is lost by session end
- Periodic Memory Checkpoint — every ~10 substantive interactions, the agent appends a one-liner nudge to its next response, never interrupting flow
notable_unsavedfield in session context — preserves what happened even when the user doesn't memorize, so future sessions can reference itupdatesubcommand — auto-detects existing installations and refreshes commands + prompt sections (brain-memory update)uninstallsubcommand — removes commands and prompt sections, preserves.brain/by default (brain-memory uninstall)detectInstallations(),removePromptSection(),removeCommands(),uninstallForRuntime()insrc/installer.js- Subcommand routing in
bin/install.jswithparseArgs(),runUpdate(),runUninstall() - 20 new tests covering detection, removal, and round-trip install/uninstall
- Git-based sync — push/pull
.brain/to any private Git remote (GitHub, GitLab, Codeberg, self-hosted) via/brain:sync setup/push/pull - Export/Import — single-file encrypted backup for portable transfers via
/brain:sync exportand/brain:sync import src/crypto.js— standalone AES-256-GCM crypto module extracted from the old sync codesrc/git-sync.js— Git sync engine usingchild_process.execFileSyncsrc/export-import.js— single-file export/import with encryption and merge mode- 74 new tests: installer unit tests (
test/install.test.js) and prompt content validation + integration tests (test/prompts.test.js) - Deterministic recall engine with TF-IDF scoring (
bin/recall.js,bin/reinforce.js) - Benchmark suite with automated multi-agent evaluation
- Website with full documentation site at brainmemory.work
- Session End Behavior — context save to
contexts.jsonis now the first action (was an afterthought), saves unconditionally even for trivial sessions, and proactively detects session endings without waiting for explicit signals /brain:memorizecommand — restructured prompt for efficiency: batches all file writes into a single parallel call, skips reads when state is already in context, presents proposed memories for user confirmation before writing, targets 3-4 tool call rounds total (was 6+)/brain:syncnow uses Git remotes instead of OAuth cloud providers — no more registering OAuth apps- Replaced cloud sync dashboard in
/brain:statuswith git sync status (remote URL, ahead/behind counts) - Extracted installer logic from
bin/install.jsintosrc/installer.jsfor testability —bin/install.jsis now a thin CLI wrapper - Hook files (
hooks/session-start.md,hooks/session-end.md) now have reference notes clarifying that behavior is delivered through prompt injection, not native hook events - Removed dead
settingsFileconfig from runtime definitions — it was never used - Removed
hooks/from npm package since they are internal reference docs, not user-facing files - Website redesigned with clean light theme and updated icon
- Cloud sync module (
src/sync/) — OAuth2, Dropbox, Google Drive, and OneDrive providers - OAuth token storage (
credentials.enc) and three-way diff sync state (sync-state.json)
- Git sync repo isolation — the
git()helper insrc/git-sync.jsonly usedcwdto scope commands; if.brain/.sync/repo/.gitdidn't exist yet (first push or failed init), git would walk up the directory tree and commit brain files to the parent project repo. Now usesGIT_DIR+GIT_WORK_TREEenv vars to fully isolate the sync repo. - Session lifecycle was dead code — session-start/end hook instructions were defined in
hooks/but never installed or referenced anywhere. The prompt injected into CLAUDE.md/GEMINI.md/AGENTS.md only had a weak one-liner about memorization. Now all three prompt files contain full "Session Start Behavior" and "Session End Behavior" sections with automatic brain context loading, review queue alerts, and end-of-session memorization suggestions. release:betanpm script now automatically updates thelatestdist-tag after publishing- Accurate model names in benchmark results
/brain:synccommand — cloud sync for pushing/pulling memories to Dropbox, Google Drive, or OneDrive- Cloud sync module (
src/sync/) with OAuth2 PKCE + Device Code Flow, AES-256-GCM encryption, three-way diff algorithm, and provider-specific implementations (Dropbox API v2, Google Drive API v3, Microsoft Graph API) - Zero new dependencies — uses Node.js 18+ built-in
fetch,crypto,http
- Removed all v1 migration code and references — no v1 users exist
- Updated documentation to reflect 11 slash commands and cloud sync
/brain:sunshinecommand — deep forensic memory erasure that traces and removes all references across the.brain/tree (related arrays, content mentions, association edges, context sessions, review queue, archive index, crystallization comments)removeEdgesForMemory()utility in index-manager for removing all association edges involving a memoryremoveFromReviewQueue()utility in index-manager for removing a memory from the review queue_erased.jsonaudit log schema for tracking erasures without preserving erased content- 16 new tests for erasure utilities
- npm release scripts (
release:beta,release:patch,release:minor,release:major)
- Windows CI compatibility: explicit test file listing, bash shell for glob expansion,
path.joinin tests - Relaxed stress test thresholds for CI runners (5x multiplier)
- 375x faster
rankMemoriesvia batch spreading activation
- Clamped recency bonus and optimized spreading activation loop
- Normalized
package.jsonbin and repository fields for npm
Initial beta release.
- 9 slash commands:
init,memorize,remember,review,explore,consolidate,forget,sleep,status - Neuroscience-inspired scoring with Ebbinghaus exponential decay
- Associative memory network with spreading activation (BFS, 2-hop, 50% decay per hop)
- Hebbian learning for co-retrieved memories
- Context-dependent recall scoring (project, topic Jaccard, task type matching)
- Spaced reinforcement with logarithmic spacing multiplier and diminishing returns
- 3 cognitive memory types: episodic, semantic, procedural (each with distinct decay behavior)
- Salience-based protection preventing auto-pruning of important memories
- Confidence tracking with contradiction detection
- 9-phase sleep cycle: replay, synaptic homeostasis, knowledge propagation, semantic crystallization, reorganize, consolidate, prune, REM dreaming, expertise detection
- SM-2 spaced repetition review scheduler
- Memory consolidation with salience anchoring
- Archive system with recoverable memories
- Multi-factor recall scoring formula (relevance, strength, recency, spreading, context, salience)
- Multi-runtime installer: Claude Code, Gemini CLI, OpenAI Codex CLI
- Interactive and non-interactive installation modes
- Session lifecycle hook definitions (session-start, session-end)
- 114 tests covering scorer, index-manager, and end-to-end lifecycle
- Zero external dependencies
Staying Updated
To update Brain Memory to the latest version:
npm install -g brain-memory@beta
brain updateThe first command updates the package and CLI tools. The second refreshes slash command prompts for your installed runtimes. Your memories in ~/.brain/ are never modified by updates.
See the Installation page for more details on updating and managing your installation.
Brain Memory follows semantic versioning. During the beta period, minor versions may include breaking changes to the command format or memory schema. Major version bumps will be reserved for post-beta releases.