🧠 NeuralMind
Persistent memory and context compression for AI coding agents.
After install, your agent:
- Boots with SYNAPSE_MEMORY.md (learned associations, strongest hub files)
- Receives PostToolUse compression automatically (Bash output → errors + signals)
- Queries your codebase in ~800 tokens instead of ~50,000
If you don't use Claude Code, configure:
neuralmind install-mcp --all
v1.0.0 — Team tier ships (July 2026)
NeuralMind Team — $29/user/mo, annual, 5-50 seats. Governance, immutable audit log, self-hosted deployment, and seat management on top of the MIT core.
| Feature | What |
|---|---|
neuralmind team governance {status,set-scope,set-weight-threshold,set-governance-enabled,list-shared,remove-edge} |
Team memory publishing controls — per-repo enable/disable, personal/shared/both scope, edge weight threshold |
neuralmind team audit {list,export,verify} |
Append-only SHA-256 hash-chained audit log — tamper-evident, exportable as CSV/JSON |
neuralmind team seats {list,add,remove} |
Seat management with soft-delete, idempotent adds, license-limit enforcement |
neuralmind team license {status,activate} |
Ed25519-signed license validation with 30-day offline grace |
neuralmind team self-hosted {init,status,validate-license} |
Self-hosted data-dir initialization with secure permissions (0700) |
docker-compose.yml + scripts/install-team.sh |
One-command self-hosted deploy; data persists across restarts |
neuralmind doctor |
Tier 2 checks additive (license health, self-hosted data dir) — MIT doctor unchanged |
neuralmind --version |
Shows neuralmind 1.0.0 (Team, N seats) when Tier 2 active |
Acceptance: 46 Tier 2 unit + integration tests pass, both e2e scripts exit 0.
| Tier | Price | Billing | Seats | Status |
|---|---|---|---|---|
| Free | $0 | n/a | 1 | always |
| Team | $29/user/mo | Annual | 5-50 | v1.0.0 |
| Enterprise | $79/user/mo | Annual, min 50 | 51+ | future |
Read the full plan: TIER2-BRD.md · TIER2-TRD.md · TIER2-TEST-PLAN.md · Complete changelog
v1.4.0 — Louvain modularity clustering (July 2026)
build_graphnow groups files by architectural dependency, not by path. Louvain modularity over structural edges (imports/calls/inherits) replaces balanced-per-file community assignment. Deterministic, fail-open, incremental-stable.
| Item | What |
|---|---|
neuralmind build |
Per-file adjacency from structural edges → Louvain Phase 1 (O(n·k)) → Phase 2 collapse → contiguous community IDs |
| Resolution | _modularity_gain applies γ·Σ·k/(2m) — γ=1.0 default, tunable for larger graphs |
| Incremental stability | Unchanged files carry their community ID byte-for-byte across builds |
| Fail-open | Output collapses to per-file grouping when Louvain returns ≤1 community — no crash on tiny/degenerate projects |
Measured on a 7-file test project: 7 per-file communities → 4 architectural-layer communities (auth, users, core, docs).
What's NOT shipping: Leiden algorithm (requires python-igraph C dep), multilevel Phase 2 repetition, community quality metric Q. All documented in docs/specs/G3-TRD.md §8 as future work.
v0.52.0 — The impact tool ships (July 2026)
v0.52.0 gives a capability we've had since v0.42.0 a name an agent would actually reach for. What shipped in v0.52.0:
| vert | What |
|---|---|
neuralmind impact <symbol> --depth N |
Reverse-dependency blast-radius lookup with per-dependent hop + relation attribution (calls/inherits/imports_from/implements) and resolution transparency (exact/semantic/none). MCP: neuralmind_impact() |
structural --blast-radius |
Stays byte-identical — now a one-line wrapper over the same blast_radius_detail(). One traversal implementation, not two. |
Read the full plan: docs/FUTURE-PROOFING-PLAN.md · Handoff v2→v0.48.0 · Complete changelog
Why NeuralMind — four benefits, each backed by an eval you can run
NeuralMind is more than token reduction. Every claim below ships with a
reproducible eval — run python -m evals.public.run yourself; the raw per-query
traces are committed.
| Benefit | Measured result | Where it's measured | |
|---|---|---|---|
| 💸 | Cheaper context | 100% gold-file recall at 38–85× fewer tokens than pasting files — and beats ripgrep on both recall and cost |
Public benchmark, real OSS repos (requests, click) |
| 🎯 | Finds the right code, not just less of it | 100% gold-file recall, MRR 0.96 — ranks the correct file at the top; beats the incumbent codebase-memory-mcp on retrieval ranking (0.96 vs 0.23) |
Same public benchmark, real repos |
| 🧠 | Learns how you work | A Hebbian synapse layer that learns co-edited files lifts top-k retrieval hit-rate +11.7 points (71.7%→83.3%), budget-neutral (no extra tokens) | Synapse A/B eval (reference fixture) |
| 🔬 | Better-grounded answers | At a matched token budget, its context carries more of the gold facts than naive truncation: faithfulness +0.143, grounding 1.00 | Faithfulness/parity gate (reference fixture) |
Honest scope: the cost and accuracy rows run on real, pinned OSS repos (fully reproducible — methodology); the learning and grounding rows are measured in committed A/Bs on the bundled reference fixture, so they're real but smaller-scope. We report where NeuralMind doesn't win too — a well-tuned vector RAG ties it on pure findability and is cheaper on raw tokens; that's in the benchmark table.
🆕 New in v0.47.0 — Impact: blast radius under a name you'd actually reach for. A Reddit comparison against GitNexus flagged "no
impacttool" as a gap — not quite right (structural --blast-radiushas answered "what depends on this?" since v0.42.0), but the naming critique landed: nobody finds a boolean flag on a differently-named command when they're looking for "impact analysis."neuralmind impact <symbol> --depth Nis the same structural-index traversal under a name that matches the question, with richer output — each dependent row now carries its hop and its relation (calls/inherits/imports_from/implements), not just a bare id, plusresolutiontransparency (exact/semantic/none). Nothing about the underlying traversal changed —structural --blast-radiusstays byte-identical, now implemented as a one-line wrapper over the sameblast_radius_detail()this release adds, so there's exactly one traversal, not two drifting in parallel. MCP tool:neuralmind_impact(project_path, symbol, depth). Release notesv0.45.0 — The token receipt gets a price tag.
neuralmind savingshas always verified the 40-70x token claim against your own logged usage; v0.45.0 converts that into the number stakeholders actually ask for: dollars.neuralmind savings --costappends a dollar-savings block — cost without NeuralMind, cost with it, amount saved, and a labeled daily/monthly projection — priced on input tokens (NeuralMind is a retrieval layer; it only ever decides which input tokens ship, so output pricing never enters the math).--modelpicks from a built-in input-price table (Claude Fable 5 / Opus 4.8 / Sonnet 5 / Haiku 4.5, GPT-5.1/mini, Gemini 2.5 Pro/Flash — snapshot 2026-07),--queries-per-daytunes the projection, and--jsonadds a machine-readabledollar_savingsblock for dashboards. The math is deliberately boring: totals come straight from the token totals at the price per MTok, projections scale the observed per-event average — every assumption printed where you can see it. Release notes 🌐 Visit the landing page • 📖 Read the About page • ⚖️ Not affiliated with NeuralMind.ai
🧠 What changes when an agent has memory
🆕 New in v0.45.0 — The token receipt gets a price tag.
neuralmind savingshas always verified the 40-70x token claim against your own logged usage; v0.45.0 converts that into the number stakeholders actually ask for: dollars.neuralmind savings --costappends a dollar-savings block — cost without NeuralMind, cost with it, amount saved, and a labeled daily/monthly projection — priced on input tokens (NeuralMind is a retrieval layer; it only ever decides which input tokens ship, so output pricing never enters the math).--modelpicks from a built-in input-price table (Claude Fable 5 / Opus 4.8 / Sonnet 5 / Haiku 4.5, GPT-5.1/mini, Gemini 2.5 Pro/Flash — snapshot 2026-07),--queries-per-daytunes the projection, and--jsonadds a machine-readabledollar_savingsblock for dashboards. The math is deliberately boring: totals come straight from the token totals at the price per MTok, projections scale the observed per-event average — every assumption printed where you can see it. Release notesv0.44.0 — the odd one out, and the coverage that lies. The other two halves of "Surface what you can't see." (1) Cohesion outlier detection — the odd one out. When ten handlers route
orgIdthroughresolveOrgIdand one skips it,NEURALMIND_SYNAPSE_OUTLIERS=1flags the member that breaks the cluster's shared pattern — the "handler #11" a flat recall list can't distinguish. (2)neuralmind gaps— the coverage that lies. Classifies endpoints as live-covered / mock-only / untested, so a route that's "green" only under a mocked store (the P2003 shape) stops reading as tested. Release notesv0.43.0 — The codebase remembers why, not just what. Every other NeuralMind memory is derived — embeddings from code, synapse weights from co-activation. This release adds the one memory only a human can author and the graph couldn't hold: decision rationale. Add a
Decision:trailer to a commit ("resolveOrgIdis per-handler — avoids Prisma on/health, keeps tests simple") and it becomes a subject-keyed, recallable memory. Askneuralmind why "why is resolveOrgId per-handler?"and get the rationale back with its commit SHA; at prompt time the why is injected alongside synapse recall the moment its symbols light up (NEURALMIND_PROVENANCE_INJECT, on by default, fails open). The design win: git history is the store — the trailer is the persistence, so there's no database to build or drift, and it works retroactively on commits you've already made. Release notesv0.42.0 — The code graph learns to answer "what does this touch?" NeuralMind's recall has always run on two soft signals — semantic similarity and the learned synapse graph. This release adds the hard one the graph carried all along: how the code is actually wired.
graphifyalready extracts typed structural edges (calls,inherits,imports_from) into everygraph.json; until now they were dead weight. v0.42.0 turns them into an agent-visible capability — a newneuralmind_structural_neighborsMCP tool andneuralmind structural <symbol>CLI return a symbol's callers, callees, base/sub classes, and importers, and--blast-radiusgives the transitive set of code a change would affect. Precise and available day one — the complement to the learned synapse layer: structure says what can be related; synapses say what actually gets used together. Folding structural neighbors into L3 retrieval is opt-in (NEURALMIND_STRUCTURAL_RECALL=1) so default retrieval stays byte-identical; the whole layer is killable withNEURALMIND_STRUCTURAL=0. Release notesv0.41.0 — The feedback loop closes; the relevance signal goes on the wire. Two features that make NeuralMind's half of a modular agent stack real. (1) Reuse-vs-rewrite feedback: a new Edit/Write PostToolUse hook (
edit-activity) detects when freshly-written code reaches for symbols already defined elsewhere in the graph and feeds that reuse signal back into the synapse layer — so future retrieval surfaces the helpers and modules you've actually been reusing, not just what scores well semantically. This is the implicit counterpart to v0.38.0's explicitneuralmind_feedbacktool: the agent doesn't have to say anything, NeuralMind learns from the edit it already made. Language-agnostic (normalizes graph labels likelogin_endpoint()to match bare tokens), a pure side effect that never forces a build, off-switchNEURALMIND_REUSE_FEEDBACK=0. (2) Structured relevance sidecar: retrieval can now attach a machine-readablerelevanceblock — per file, per node, the vector score, learned synapse boost, recall flag, and line spans (built from the post-boost L3 hits, so it reflects the live synapse signals) — vianeuralmind_query(include_relevance=true)orneuralmind query --relevance, so a downstream compressor can protect the load-bearing spans instead of shrinking them away. Versioned and stably-keyed, so it survives reordering — order-independent by design. Both are opt-in on the wire; default retrieval is unchanged. Release notesv0.40.0 — Schema artifact indexing: OpenAPI, SQL, and Protocol Buffers. NeuralMind now indexes non-code schema artifacts alongside your source, closing the most-requested documentation gap. (1) OpenAPI / AsyncAPI (
.yaml/.ymlwith anopenapi/asyncapi/swaggerkey) — one node per path+method (POST /payments/charge), one per schema component (schema:Payment), one per AsyncAPI channel; plain YAML config files are silently skipped. (2) SQL DDL (.sql) — one node perCREATE TABLE/VIEW/PROCEDURE/FUNCTION/TRIGGER/INDEX/TYPE. (3) Protocol Buffers (.proto) — one node permessage,service,rpc, andenum. All three use the samedocumentnode type as Markdown, soneuralmind_queryandneuralmind_searchsurface them automatically — no new tools, no config change. Schema nodes participate in incremental rebuild and the synapse layer learns cross-artifact associations (e.g.POST /payments/chargeco-activated withprocess_payment()strengthens automatically). Honest scope:$refresolution, SQLALTER/SELECT, and protoimportedges are not modelled; GraphQL planned for v0.42.0. Release notesv0.39.0 — Trust, transparency, and quality — six improvements. (1)
neuralmind build --dry-runscans your project and shows a concrete token-savings estimate before building the index — auto-detects 10+ languages,--jsonfor CI/onboarding scripts. (2) Faster synapse decay on deletion —neuralmind watchnow detects deleted files immediately and callsNeuralMind.deactivate_files()to apply a targeted decay tick on every node in the removed file, so stale memory about deleted code stops surfacing in context after refactors. (3)neuralmind query --explainshows a human-readable breakdown of why each piece of context was selected (L0–L3 token budget, communities loaded, top search hits, synapses that fired) — implies--traceautomatically. (4)neuralmind reviewrunsgit diff --name-only, seeds spreading activation from the changed files' graph nodes, and surfaces co-break candidates you probably forgot to touch — also available as theneuralmind_reviewMCP tool so agents can call it before proposing a change. (5)neuralmind savingsreads the opt-in JSONL event log and shows cumulative token savings vs. estimated full-codebase cost, with per-query breakdown — verifies the 40-70× claim against your own real usage. (6)neuralmind probenow queries by rationale — the label-free self-test uses each symbol's docstring/intent as the query instead of its name, turning a string-match near-tautology (~0.95 MRR on any healthy index) into a genuine NL→code measurement (~0.79 MRR with real semantic blind spots disclosed). Release notesv0.38.0 — Hybrid search, explicit feedback, and CI auto-index. Three retrieval-quality improvements in one release: (1) BM25 hybrid search — a code-aware keyword index (camelCase-split, snake_case-split) is built alongside the vector store and merged via Reciprocal Rank Fusion at query time, so "UserService" queries score exact-name matches first, not just semantically similar nodes — budget-neutral, toggle off with
NEURALMIND_BM25=0. (2)neuralmind_feedbackMCP tool — explicit positive/negative signal on a retrieved node that fires immediately: positive reinforces co-activation (same Hebbian update as natural co-editing, but instant); negative applies a targeted decay tick to all edges for that node (LTP-protected edges never fully removed by a single signal). (3) CI auto-index GitHub Action (.github/workflows/neuralmind-autoindex.yml) — auto-builds the index on every push to main, caches.neuralmind/, and commits the updated team memory snapshot so teammates always inherit fresh synapse intuition on their next session. No secrets needed — 100% local. Release notesv0.37.0 — Multi-language: PHP. The built-in tree-sitter backend now indexes PHP (
.php) out of the box —neuralmind build .works standalone on a PHP project, no graphify.class/interface/trait/enumbecome type nodes; methods/top-level functions become function nodes; properties ($stripped from the label), class constants, and enum cases become symbol nodes;extends/implementsresolve toinheritsedges;usenamespace imports resolve toimports_fromedges (by class name, exactly like Java imports); and/** */doc comments feed therationalelayer. That takes the bundled backend to ten languages — Python, TypeScript, Go, Rust, Java, C, C++, C#, Ruby, and PHP — behind the same_SUFFIX_LANG→_EXTRACTORSseam, proven at parity by the CI gate (54/54 symbols, 100% structural coverage, zero dangling edges), and completing the C#/Ruby/PHP breadth tier. Calls are best-effort and disclosed honestly (no$obj->methodreceiver-type resolution;require/includepath imports aren't modelled —useis the edge source; trait-use-inside-a-class-body isn't modelled as inheritance). Release notesv0.36.0 — Multi-language: Ruby. The built-in tree-sitter backend now indexes Ruby (
.rb) out of the box —neuralmind build .works standalone on a Ruby project, no graphify.class/modulebecome type nodes;def/def self.methods become function nodes; constant assignments (e.g.ATTEMPTS = 3) become symbol nodes;class Foo < Barresolves toinheritsedges;require_relativeresolves toimports_fromedges (relative-path resolved); and#doc comments feed therationalelayer. That takes the bundled backend to nine languages — Python, TypeScript, Go, Rust, Java, C, C++, C#, and Ruby — behind the same_SUFFIX_LANG→_EXTRACTORSseam, proven at parity by the CI gate (46/46 symbols, 100% structural coverage, zero dangling edges). Ruby is dynamic, so calls are best-effort and disclosed honestly (no receiver-type resolution; mixins viainclude/extendaren't modelled as inheritance;attr_accessoraccessors/ivars aren't emitted as fields — constants are the symbol layer). Release notesv0.35.0 — Multi-language: C#. The built-in tree-sitter backend now indexes C# (
.cs) out of the box —neuralmind build .works standalone on a C# project, no graphify.class/interface/struct/record/enumbecome type nodes; methods/constructors become function nodes; fields, properties, and enum members become symbol nodes;base_listresolves toinheritsedges;usingdirectives resolve toimports_fromedges; and///doc comments feed therationalelayer. That takes the bundled backend to eight languages — Python, TypeScript, Go, Rust, Java, C, C++, and C# — behind the same_SUFFIX_LANG→_EXTRACTORSseam, proven at parity by the CI gate (52/52 symbols, 100% structural coverage, zero dangling edges). C# maps almost 1:1 onto the proven Java extractor, so it rides a proven shape at the smallest risk. Release notesv0.34.0 — Answerability, not just findability. Gold-file recall measures whether the right file lands in the window — locating, not answering. The new opt-in answerability arm (
python -m evals.public.run --judge) closes that gap honestly: for each query it takes the real context each backend would put in the window (whole files forfull-file/ripgrep, retrieved chunks forembedding-rag, the compact L0–L3 assembly forneuralmind), asks a pinned model (claude-opus-4-8) to answer using only that context (it must say "insufficient context" otherwise), then a separate judge call grades the answer against the same def-site gold anchor on a 0–2 scale plus agroundedflag. Why it's hard to dismiss: same prompts + same pinned model for every backend (a low-recall window scores low instead of being papered over from prior knowledge); the answerer prompt, judge rubric, model id, and every raw transcript are committed underbench/public/judge/(re-score or swap the model yourself). Off the deterministic path: it needsANTHROPIC_API_KEY, never runs in CI, and the recall table is byte-identical with or without--judge. Recall-at-N×-tokens stays the headline; this is a clearly-labeled secondary signal. Release notes · methodologyv0.33.0 — The competitor head-to-head, run for real. The public benchmark's competitor row is no longer a scaffold — it's a live, reproducible head-to-head vs.
codebase-memory-mcp0.8.1 (the obvious incumbent) on the same pinned repos, same questions, same objective def-site gold, scored by the samequality.pyas every other backend. At matched retrieval depth (top-8), NeuralMind hits 100% gold-file recall and ranks the right file far higher (MRR 0.96 vs 0.23 onrequests, 0.60 vs 0.50 onclick) while the competitor surfaces the gold file only ~half the time — at an order of magnitude more read cost. Honest framing: this is pure retrieval ranking (no LLM agent loop on either side — same as how we test NeuralMind's ownsearch); we used the competitor's most-favorable reproducible keyword mapping; and we cite the competitor's published LLM-agent numbers (~90% of an "Explorer" agent; C at 0.58) as-is rather than reproduce them. So the win is on reproducible retrieval ranking, not on their agent-driven published figures. Reproduce:python -m evals.public.competitor(off the default run;pip install codebase-memory-mcp==0.8.1, no API key). Release notes · methodologyv0.32.0 — Multi-language: C and C++. The built-in tree-sitter backend now indexes C (
.c/.h) and C++ (.cpp/.cc/.cxx+.hpp/.hh/.hxx) out of the box —neuralmind build .works standalone on a C/C++ project, no graphify. Functions,struct/union/enum(+ fields and constants), typedefs, C++classes with member methods/fields, and namespace-qualified ids becomecodenodes;#include "local.h"resolves toimports_fromedges; C++ base classes becomeinheritsedges; andfoo.h/foo.cpair onto a shared module key so a declaration and its definition land in the same neighborhood. That takes the bundled backend to seven languages — Python, TypeScript, Go, Rust, Java, C, and C++ — behind the sameSUPPORTED_SUFFIXESseam, proven at parity by the CI gate (100% symbol coverage, zero dangling edges). Honest scope: macros aren't indexed as symbols, templates aren't specialized, and#ifdefisn't evaluated — we index the parseable code at full parity and disclose what's out (a competitor advertising 158 languages scored 0.58 on C; we index what we can serve). Release notesv0.31.0 — The honest public benchmark. The "40–70× fewer tokens" claim ships with reproducible evidence built to survive hostile scrutiny:
neuralmind benchmark --publicclones real, pinned OSS repos (requests,click) and scores cost and correctness together against strong baselines (full-file paste, ripgrep, a same-encoder vector RAG). Result: 100% gold-file recall (objective def-site oracle, no LLM judge) at 38–85× fewer tokens than pasting files, beating ripgrep on both recall and cost. Synapse injection OFF for a fixed reproducible number; forkable runner + raw data committed. Release notes · methodologyv0.30.0 (shipped within v0.31.0) — Team memory: your agents inherit each other's intuition. NeuralMind's synapse layer learns what code goes with what from how you work; now a team can commit that learned signal so every teammate's agent inherits it automatically.
neuralmind memory publishwrites a committed.neuralmind-team-memory.json; on a teammate's next session/build it's imported once into thesharednamespace (content-hash-gated,shared-only, off-switchNEURALMIND_TEAM_MEMORY=0, fail-open). A freshgit clonestarts with the team's earned intuition — zero setup, 100% local, no source in the bundle. The differentiator a static code-index can't copy. Release notesv0.29.0 — ChromaDB-free by default. On mainstream platforms (Linux, Apple Silicon, Windows x64),
pip install neuralmindno longer pulls ChromaDB — the default is the ChromaDB-free turbovec/ONNX backend (byte-identical embeddings), removing ChromaDB's dependency tree and its recurring CVE surface from the default. The backend is platform-gated by wheel availability, so the install never breaks: platforms turbovec has no wheel for (Intel macOS, Windows ARM) auto-install ChromaDB as a transparent fallback. Retrieval is unchanged; a chroma-indexed repo auto-reindexes once into turbovec. Honest framing: ChromaDB-tree-free, not "smaller" — it trades ChromaDB's sprawl for one focused native dep (onnxruntime). Release notesv0.28.0 — Multi-language: Java. The built-in tree-sitter backend indexes Java out of the box — classes, interfaces, enums, records, methods, constructors, fields, and enum constants become
codenodes;extends/implements→inherits;import→imports_from(by FQN); Javadoc → therationalelayer. Five bundled languages (Python/TS/Go/Rust/Java). Release notesv0.27.0 — Multi-language: Rust. The built-in tree-sitter backend indexes Rust out of the box — structs, enums, traits,
implblocks, fields, and free functions becomecodenodes;impl Trait for Type→inherits;usepaths →imports_from;//////!doc comments → therationalelayer;target/is skipped. Release notesv0.26.0 — the selector starts tuning itself. Phases 1–2 of the self-improvement engine (issue #156): NeuralMind's memory logs query and wakeup events with a
session_id, and an opt-in tuner (NEURALMIND_SELECTOR_AUTOTUNE=1) reads that signal back to adjust the selector's L2 recall depth from the re-query rate, persisted in the synapse store'smetatable, with a transition-margin dampener. Off by default and byte-identical to v0.25.0 when unset (zero extra hot-path I/O); bounded to[2, 6]with single-step, windowed, fail-open moves. Inspect it with the read-onlyneuralmind self-improve status. Release notesv0.25.0 — one learning system: the synapse layer. The old
learned_patternscooccurrence reranker is removed, andneuralmind learnis now an exit-0 deprecation no-op. The Hebbian synapse layer — which already learns continuously from queries, edits, and tool calls, and lets unused edges decay — is now NeuralMind's single learning signal. This is a removal, not a regression: a 2×2 A/B on the benchmark fixture showed the reranker moved top-k hit rate by 0.0 points with synapses on or off (71.7% → 71.7% cold, 83.3% → 83.3% warm), while the synapse layer alone adds +11.6 points. The reranker was also runtime-inert on the warm path (the synapse re-sort discarded its order), needed the manualneuralmind learnstep, and went stale between runs. Warm-path behavior is unchanged — recall is synapse-driven exactly as before; the only visible difference is the L3 output no longer prints(+X.XX boost)labels from the reranker (synapse labels stay). Scripts callingneuralmind learnkeep working (exit 0); a stale.neuralmind/learned_patterns.jsonis ignored and can be deleted;NeuralMind(enable_reranking=...)is accepted and ignored. Release notesv0.24.0 — memory namespaces & branch isolation. The learned synapse layer is now namespace-aware:
branch:<name>/personal/shared/ephemeralmemory live separately in the same store, so a feature-branch spike can't pollute what the agent learned aboutmain. Recall stays smart by default — a transparent merged view weights the active branch at 1.0×, your long-termpersonalmemory at 0.8×, and an importedsharedteam baseline at 0.5× (published constants, attributed per-namespace inquery --trace). Newneuralmind memory {inspect,reset,export,import}shows contribution by namespace, clears exactly one namespace, and moves memory as versioned JSON bundles (the PRD 8 team-memory on-ramp). Existing learned memory migrates in place, losslessly intopersonal— single-transaction rebuild, rollback on any failure, proven by a no-data-loss test. Release notesv0.23.0 — versioned index contract (IR), retrieval-quality harness, debug traces, and a local daemon. Four future-proofing foundations. (PRD 1) A canonical, schema-versioned intermediate representation of your code graph, validated on every build — a new
neuralmind validatecommand checks the contract without a vector backend; the embedder still readsgraph.jsonunchanged (the IR round-trips back identically), so retrieval is unaffected. (PRD 2) A newneuralmind benchmark --qualitymode measures whether retrieval finds the right code — precision@k / recall@k / MRR / answerability over 30 golden queries across Python/TS/Go — and fails CI on a regression. (PRD 3)neuralmind query --traceshows why a result came back — per-layer candidates, cluster scoring with vector-vs-synapse attribution, and final hits. (PRD 5) An experimentalneuralmind daemonholds project state warm so repeatquery/statsskip cold backend init (auto-preferred when running, transparent direct-mode fallback). Release notesv0.22.0 — turbovec becomes the default (when available).
import neuralmindno longer requires ChromaDB, and the default backend is nowauto: prefer the ChromaDB-freeturbovecpath when its deps are installed, else fall back to chroma. Safe by construction — a plainpip install neuralmindis unchanged; only installs with the[turbovec]extra flip, with a one-time auto-reindex (the old ChromaDB index is left as a fallback, nothing deleted).neuralmind doctornow shows the resolved backend. The staged middle step toward retiring ChromaDB. Release notesv0.21.0 — ChromaDB-free retrieval. NeuralMind can now embed and search with zero ChromaDB: the opt-in
turbovecbackend pairs Google Research's TurboQuant compressed index (8–16× smaller vectors) with a bundledOnnxMiniLMEmbedderthat produces vectors byte-identical to ChromaDB's (all-MiniLM-L6-v2on just onnxruntime + tokenizers). At/above retrieval parity on the gold set (fact-recall 0.744→0.800). Enable withbackend: turbovecinneuralmind-backend.yaml. This retires the dependency behind the recurring CVE-2026-45829 advisory. Release notesv0.20.0 — Measure the onboarding lift.
neuralmind eval --onboardingturns NeuralMind's headline differentiator into a number: does an agent that inherits a committed team memory retrieve better on its first queries than a cold agent with none? The headline is the top-k module hit-rate lift (a deterministic +6.5 points on the reference fixture), with fact-recall + grounding as honest secondaries; budget-neutral by design, gated in CI at lift ≥ 0. Release notesv0.19.0 — One-command MCP setup.
neuralmind install-mcp --allauto-detects your installed agents — Claude Code, Cursor, Cline, Claude Desktop — and registers NeuralMind's MCP server with each (non-destructive merge, idempotent). The agent then onboards onto your codebase through NeuralMind's tools instead of grepping cold. Distribution is half the moat; the learned synapse layer (usage memory) is the other half. Release notesv0.18.0 — Incremental updates. Re-index just the file you edited, not the whole repo:
neuralmind watch --reindexre-parses each changed file and re-embeds only its nodes (unchanged files stay byte-for-byte identical, so the embedder skips them). Your index stays fresh as you type. Release notesv0.17.0 — Optional SCIP precision. Set
NEURALMIND_PRECISION=1with a SCIP index (scip-python/scip-typescript/scip-go) and NeuralMind folds in compiler-accuratecalls/inheritsedges, replacing the heuristic ones for covered files. Off by default, dependency-free, proven by a precision check in the CI gate. Release notesv0.16.0 — Multi-language: TypeScript + Go. The built-in tree-sitter backend now indexes Python, TypeScript, and Go out of the box —
neuralmind build .works standalone on a TS or Go repo, no graphify. Proven at parity per language by the CI gate (100% symbol coverage vs graphify). Release notesv0.15.0 — No graphify needed. A built-in tree-sitter graph backend, so
pip install neuralmind && neuralmind build .just works — no second, external tool. graphify still takes priority where present. Proven at parity by a CI gate (reduction + faithfulness within tolerance). Release notesv0.14.0 — Measure faithfulness. A new contributor/CI command —
neuralmind eval— turns "does the memory actually help?" into a number: it scores whether NeuralMind's selected context contains more of the facts a correct answer needs than a naive baseline at the same token budget (a faithfulness delta, plus grounding and contradiction checks). 100% local by default; the LLM-as-judge is opt-in. Release notesv0.13.0 — Measurement foundation. The offline faithfulness dataset + expected-fact-recall scorer and polyglot (TypeScript + Go) retrieval fixtures that
neuralmind evalis built on. Release notesv0.12.0 — Install Doctor. One command —
neuralmind doctor— inspects your setup (code graph, semantic index, synapse memory, MCP server, Claude Code hooks, query-memory consent) and prints each piece with a status and the exact command to fix it. Exits non-zero on a real failure so you can gate CI or an agent's setup step on it;--jsongives a stable machine-readable snapshot. Release notesv0.11.0 — Directional Synapses. The brain-like layer now learns what comes next, not just what goes together. A new `synap
No comments yet
Be the first to share your take.