superlocalmemory 4.1.19 → 4.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +189 -0
  3. package/README.md +227 -601
  4. package/package.json +1 -1
  5. package/plugin/.claude-plugin/plugin.json +1 -1
  6. package/plugin/.mcp.json +7 -2
  7. package/plugin/CLAUDE.md +3 -3
  8. package/plugin/agents/slm-governance-advisor.md +1 -1
  9. package/plugin/agents/slm-loop-runner.md +1 -1
  10. package/plugin/agents/slm-memory-advisor.md +1 -1
  11. package/plugin/agents/slm-optimize-advisor.md +1 -1
  12. package/plugin/hooks/hooks.json +9 -9
  13. package/plugin/requirements.txt +1 -1
  14. package/plugin/scripts/ensure-venv.sh +23 -1
  15. package/plugin/scripts/slm-launch +60 -68
  16. package/plugin/scripts/slm-launch.bat +10 -1
  17. package/plugin/scripts/slm-resolve.sh +128 -0
  18. package/plugin/scripts/slm-run +76 -0
  19. package/plugin/skills/slm-cache/SKILL.md +1 -1
  20. package/plugin/skills/slm-compress/SKILL.md +1 -1
  21. package/plugin/skills/slm-governance/SKILL.md +1 -1
  22. package/plugin/skills/slm-graph/SKILL.md +1 -1
  23. package/plugin/skills/slm-loop/SKILL.md +1 -1
  24. package/plugin/skills/slm-mesh/SKILL.md +1 -1
  25. package/plugin/skills/slm-profile/SKILL.md +3 -3
  26. package/plugin/skills/slm-recall/SKILL.md +1 -1
  27. package/plugin/skills/slm-remember/SKILL.md +1 -1
  28. package/plugin/skills/slm-scope/SKILL.md +1 -1
  29. package/plugin/skills/slm-session/SKILL.md +1 -1
  30. package/plugin/skills/slm-status/SKILL.md +1 -1
  31. package/plugin-src/agents/slm-memory-advisor.md +1 -1
  32. package/plugin-src/agents/slm-optimize-advisor.md +1 -1
  33. package/plugin-src/rules/AGENTS.md +3 -3
  34. package/plugin-src/skills/slm-cache/SKILL.md +1 -1
  35. package/plugin-src/skills/slm-compress/SKILL.md +1 -1
  36. package/plugin-src/skills/slm-governance/SKILL.md +1 -1
  37. package/plugin-src/skills/slm-graph/SKILL.md +1 -1
  38. package/plugin-src/skills/slm-loop/SKILL.md +1 -1
  39. package/plugin-src/skills/slm-mesh/SKILL.md +1 -1
  40. package/plugin-src/skills/slm-profile/SKILL.md +3 -3
  41. package/plugin-src/skills/slm-recall/SKILL.md +1 -1
  42. package/plugin-src/skills/slm-remember/SKILL.md +1 -1
  43. package/plugin-src/skills/slm-scope/SKILL.md +1 -1
  44. package/plugin-src/skills/slm-session/SKILL.md +1 -1
  45. package/plugin-src/skills/slm-status/SKILL.md +1 -1
package/README.md CHANGED
@@ -1,720 +1,346 @@
1
1
  <p align="center">
2
2
  <picture>
3
3
  <source media="(prefers-color-scheme: dark)" srcset="assets/branding/slm-wordmark-dark.svg">
4
- <img src="assets/branding/slm-wordmark-light.svg" alt="SuperLocalMemory" width="390">
4
+ <img src="assets/branding/slm-wordmark-light.svg" alt="SuperLocalMemory: local-first memory for AI agents" width="360">
5
5
  </picture>
6
6
  </p>
7
7
 
8
- <h1 align="center">SuperLocalMemory V4.1.19 — local-first memory for AI agents</h1>
8
+ # SuperLocalMemory: governed, local-first memory for AI agents
9
9
 
10
- <h2 align="center">Rent the LLM. Own the memory.</h2>
10
+ Claude Code, Codex, Cursor and other MCP clients forget what they learned when a session ends. SuperLocalMemory (SLM) gives them one long-term memory that lives on your machine: it learns from use, enforces who may read and erase what, coordinates many agents, and says "I don't have that" instead of guessing.
11
11
 
12
- <p align="center"><em>Rent an LLM — but own the memory, for your company and for your industry.</em></p>
12
+ **Every recall is checked before your agent uses it.** A judge decides whether the memories found actually answer the question: **Laya** runs fully on your Mac, and **Jev** runs online on Windows, Linux and macOS. When they don't answer it, SLM says so instead of handing over a confident wrong answer: a hallucination guard for retrieval ([answer check](#answer-check-laya-and-jev)).
13
13
 
14
- Store context once and recall it across agent sessions through the CLI or MCP. Start with local memory, then choose the operating mode and integrations your workspace needs. SuperLocalMemory is part of Qualixar's AI Reliability Engineering work.
14
+ In Mode A, core remember and recall make no model-provider call. Anything that sends data out is a choice you make, and the docs say exactly what goes.
15
15
 
16
- **[Research and evidence](https://www.superlocalmemory.com/research)** · **[Qualixar product overview](https://qualixar.com/products/superlocalmemory)** · **[Author and research context](https://varunpratap.com/products/superlocalmemory)**
16
+ [![PyPI](https://img.shields.io/pypi/v/superlocalmemory)](https://pypi.org/project/superlocalmemory/)
17
+ [![npm](https://img.shields.io/npm/v/superlocalmemory)](https://www.npmjs.com/package/superlocalmemory)
18
+ [![PyPI downloads](https://img.shields.io/pepy/dt/superlocalmemory?label=PyPI%20downloads)](https://pepy.tech/project/superlocalmemory)
19
+ [![npm downloads](https://img.shields.io/npm/dt/superlocalmemory?label=npm%20downloads)](https://www.npmjs.com/package/superlocalmemory)
20
+ [![GitHub stars](https://img.shields.io/github/stars/qualixar/superlocalmemory?style=flat&logo=github)](https://github.com/qualixar/superlocalmemory/stargazers)
21
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue)](pyproject.toml)
22
+ [![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue)](LICENSE)
23
+ [![Answer check: Jev · Laya](https://img.shields.io/badge/answer_check-Jev_%C2%B7_Laya-f97316)](#answer-check-laya-and-jev)
24
+ [![arXiv V4](https://img.shields.io/badge/arXiv-2608.08253-b31b1b)](https://arxiv.org/abs/2608.08253)
25
+ [![arXiv V3.3](https://img.shields.io/badge/arXiv-2604.04514-b31b1b)](https://arxiv.org/abs/2604.04514)
26
+ [![arXiv V3](https://img.shields.io/badge/arXiv-2603.14588-b31b1b)](https://arxiv.org/abs/2603.14588)
27
+ [![arXiv V2](https://img.shields.io/badge/arXiv-2603.02240-b31b1b)](https://arxiv.org/abs/2603.02240)
17
28
 
18
- **[Install](https://www.superlocalmemory.com/install)** · **[Product walkthrough](https://www.superlocalmemory.com/demo)** · **[CLI proof](docs/QUICK_PROOF.md)** · **[Release notes](CHANGELOG.md)**
29
+ **[Install](https://www.superlocalmemory.com/install)** · **[Product walkthrough](https://www.superlocalmemory.com/demo)** · **[Demo video](https://www.youtube.com/watch?v=PMWW_ypsL60)** · **[CLI proof](docs/QUICK_PROOF.md)** · **[Release notes](CHANGELOG.md)**
19
30
 
20
31
  ```bash
21
- npm install -g superlocalmemory # Primary CLI install path
22
- slm setup # Select mode A for local-only operation; review integration choices.
23
- slm doctor
24
- slm remember "Synthetic demo: the release checklist requires a human approval after tests pass." --tags demo --json --sync
25
- slm recall "release checklist human approval" --json
32
+ npm install -g superlocalmemory # primary route (Node 18+, Python 3.12+); or: pipx install superlocalmemory
33
+ slm setup # pick Mode A to keep everything on this machine
34
+ slm connect cursor # or claude-code, codex, windsurf, zed ... 12 IDEs
26
35
  ```
27
36
 
28
- The synthetic CLI proof returned the stored sentence in mode A on version 4.1.17. It tests store-and-recall behavior; it is not a retrieval accuracy benchmark.
29
- [See the commands, scope and isolation settings](docs/QUICK_PROOF.md).
37
+ npm installs SLM into a package-owned virtual environment. The other primary route is pip in a Python virtual environment you activate: `python3 -m venv .venv`, activate it, then `python -m pip install superlocalmemory`. Repository clone: `./scripts/install.sh install` (macOS, Linux) or `.\scripts\install.ps1 -Action Install` (Windows); see [CONTRIBUTING.md](CONTRIBUTING.md).
30
38
 
31
- If the proof is useful for your agent workflow, [star the repository](https://github.com/qualixar/superlocalmemory) to find the project again. Stars are optional; installation and documentation are open without one.
39
+ Runs on Windows, Linux and macOS ([platforms](#platform-support)). No Docker, no required graph database, no API key.
32
40
 
33
- **Release maintenance:** dependency updates are being reviewed separately in [PR #143](https://github.com/qualixar/superlocalmemory/pull/143). This documentation update does not change already published packages.
41
+ ## 30-second example
34
42
 
35
- ## Governance, architecture and research
43
+ ```console
44
+ $ slm remember "We deploy the API blue-green; rollback is a DNS flip." --kind decision
45
+ Queryable ✓ 1 facts (operation=ebca8e80...).
46
+ $ slm remember "Always run the migration dry-run before a release." --kind rule
47
+ $ slm remember "Staging DB is Postgres 16 on port 5433."
36
48
 
37
- <p align="center"><strong>The governed memory layer for AI agents: local-first, auditable, and built for the compliance obligations teams now actually carry.</strong><br/>
38
- Models are interchangeable and rented by the token. What your agents <em>remember</em> is
39
- yours — it is your customers' data, your retention obligations, and your audit trail. SLM
40
- keeps that layer on infrastructure you control, with multi-workspace isolation, role-based
41
- access, and GDPR + EU AI Act governance controls built in.</p>
49
+ $ slm recall "how do we roll back the API"
50
+ 1. [0.67] We deploy the API blue-green; rollback is a DNS flip.
51
+ 2. [0.53] Always run the migration dry-run before a release.
52
+ 3. [0.52] Staging DB is Postgres 16 on port 5433.
42
53
 
43
- <p align="center"><strong>The boundary.</strong> SuperLocalMemory starts with a local runtime;
44
- provider-backed enrichment, cloud backup, connectors, and proxy use are explicit choices.
45
- Different products solve different boundaries. Published benchmark evidence carried into V4
46
- comes from the published V3 research architecture; it is not a claim of a newly rerun V4 package benchmark.</p>
54
+ $ slm recall "what did we decide about rollback" --kind decision
55
+ 1. [0.54] We deploy the API blue-green; rollback is a DNS flip.
47
56
 
48
- <p align="center"><strong>How to check that, rather than believe it.</strong> Every reliability
49
- guarantee here is stated as a falsifiable invariant, tested under an adversarial condition with a
50
- negative control, and shipped with the harness that regenerates the evidence:
51
- <code>python benchmark/run_all.py --trials 200 --output-dir results/</code>. What each experiment
52
- does <em>not</em> exercise is stated too.</p>
53
- <p align="center"><code>v4.1.19</code> — one control plane: <strong>SLM-Mesh</strong> peer coordination · multi-scope memory (personal / shared / global) · profiles · Cache · Compress · 7-layer retrieval · code graph · Entity Explorer · skill evolution · Modes A/B/C · GDPR retention &amp; audit chain · bounded loops — across CLI, MCP, dashboard, the <strong>Claude plugin</strong>, the <strong>Codex add-on</strong>, and documented IDE integrations.<br/>
54
- Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
55
- <p align="center"><strong>Four public arXiv preprints</strong> · V4: <a href="https://arxiv.org/abs/2608.08253">arXiv:2608.08253</a> · companion archive: <a href="https://zenodo.org/records/21853302">Zenodo 21853302</a> (<a href="https://doi.org/10.5281/zenodo.21853302">DOI 10.5281/zenodo.21853302</a>) · prior preprints: <a href="https://arxiv.org/abs/2603.02240">2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">2604.04514</a>.</p>
56
-
57
- <p align="center">
58
- <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/v4.1.19-Current_Release-2ea44f?style=for-the-badge&logo=checkmarx&logoColor=white" alt="v4.1.19 — Current Release"/></a>
59
- <a href="https://arxiv.org/abs/2608.08253"><img src="https://img.shields.io/badge/arXiv-2608.08253-b31b1b?style=for-the-badge&logo=arxiv&logoColor=white" alt="SuperLocalMemory 4.0 paper on arXiv:2608.08253"/></a>
60
- <a href="https://zenodo.org/records/21853302"><img src="https://img.shields.io/badge/Zenodo-10.5281%2Fzenodo.21853302-1682D4?style=for-the-badge&logo=zenodo&logoColor=white" alt="V4 paper on Zenodo: 10.5281/zenodo.21853302"/></a>
61
- <a href="https://arxiv.org/abs/2603.14588"><img src="https://img.shields.io/badge/arXiv-2603.14588-b31b1b?style=for-the-badge&logo=arxiv&logoColor=white" alt="arXiv Paper"/></a>
62
- <a href="#three-surfaces-proxy--mcp-tools--skill"><img src="https://img.shields.io/badge/Proxy_|_MCP_|_Skill-22c55e?style=for-the-badge" alt="Three Surfaces: Proxy, MCP Tools, Skill"/></a>
63
- <a href="https://pypi.org/project/superlocalmemory/"><img src="https://img.shields.io/pypi/v/superlocalmemory?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI"/></a>
64
- <a href="https://www.npmjs.com/package/superlocalmemory"><img src="https://img.shields.io/npm/v/superlocalmemory?style=for-the-badge&logo=npm&logoColor=white" alt="npm"/></a>
65
- <a href="https://www.gnu.org/licenses/agpl-3.0"><img src="https://img.shields.io/badge/License-AGPL_v3-blue.svg?style=for-the-badge" alt="AGPL v3"/></a>
66
- <a href="#privacy-controls-and-operating-modes"><img src="https://img.shields.io/badge/Privacy-Deployment_Assessed-brightgreen?style=for-the-badge" alt="Privacy controls require deployment assessment"/></a>
67
- <a href="#teams-and-enterprise-memory-v4"><img src="https://img.shields.io/badge/Enterprise-GDPR_%7C_EU_AI_Act_controls-0b5394?style=for-the-badge" alt="Enterprise governance: GDPR and EU AI Act controls"/></a>
68
- <a href="https://superlocalmemory.com"><img src="https://img.shields.io/badge/Web-superlocalmemory.com-ff6b35?style=for-the-badge" alt="Website"/></a>
69
- <a href="#dual-interface-mcp--cli"><img src="https://img.shields.io/badge/MCP-Native-blue?style=for-the-badge" alt="MCP Native"/></a>
70
- <a href="#dual-interface-mcp--cli"><img src="https://img.shields.io/badge/CLI-Agent--Native-green?style=for-the-badge" alt="CLI Agent-Native"/></a>
71
- <a href="#multilingual-embedding-support"><img src="https://img.shields.io/badge/Multilingual-via_your_embedding_model-ff69b4?style=for-the-badge" alt="Multilingual via your embedding model"/></a>
72
- </p>
73
-
74
- ---
75
-
76
- ## Why SuperLocalMemory?
77
-
78
- SuperLocalMemory is an enterprise-grade, local-first memory control plane for AI agents. Your team's agent memory lives on infrastructure you control, with per-workspace isolation, role-based access, and GDPR / EU AI Act governance controls — built for organizations, and for EU data-residency obligations where agent context must not leave your environment by default.
79
-
80
- Agent-memory systems make different storage, model-provider, and deployment trade-offs. SuperLocalMemory starts with a local runtime and makes provider-backed enrichment, cloud backup, connectors, and proxy use explicit choices.
81
-
82
- Different products solve different boundaries. The published LoCoMo benchmark evidence in this README is protocol-scoped evidence from the published V3 research architecture; it is carried forward for continuity and is not a claim of a newly rerun V4 package benchmark.
83
-
84
- SuperLocalMemory V4 combines conventional dense and lexical retrieval with graph, temporal, associative, and statistical relevance scoring in a **7-layer** control plane (admission → queryable core → enrichment → brain → multi-channel retrieval → context safety → operations). The default local runtime does not require Docker, a separately operated graph database, or an API key.
85
-
86
- **Memory with a sense of time.** SLM does not only store *what* an agent learned — it records *when*. Every fact carries ingestion timing and provenance; recall runs a dedicated temporal candidate channel alongside semantic, lexical, and associative retrieval; scenes and entity timelines reconstruct sequence; and the lifecycle lets neglected memory decay and self-archive instead of growing without bound. Time is a first-class ranking and lifecycle signal rather than a timestamp column an agent never reads — which is what lets a long-lived agent reason about how its context changed, not only what it currently holds.
87
-
88
- **What changed in this release.** See the [CHANGELOG](CHANGELOG.md) — every release is written up there, in plain language, newest first.
89
-
90
- - **[SLM-Mesh](#slm-mesh-cross-session--cross-machine-coordination)** — authenticated cross-session and cross-machine peer coordination (messages, locks, shared state, inbox/outbox, optional discovery). Coordination only — not automatic replicated memory.
91
- - **Multi-scope memory & profiles** — workspaces (profiles) plus `personal` / `shared` / `global` scopes; cross-profile recall is default-deny.
92
- - **Cache & compression (context optimization)** — exact-match cache with tagged invalidation, safe compression, and opt-in reversible/aggressive paths across proxy, MCP, and skill surfaces.
93
- - **Entity Explorer & skill evolution** — compiled entity summaries/timelines; opt-in skill lineage, budgets, and verification outcomes.
94
- - **Modes A / B / C** — local-only by default (A), on-device LLM enrichment (B), provider-assisted (C). An operating mode records technical locality facts; it does **not** determine EU AI Act legal compliance (that is deployment-context assessment — see [Privacy controls](#privacy-controls-and-operating-modes)).
95
- - **GDPR posture, retention & audit chain** — export, fail-closed cross-store erasure, retention policies, and a hash-chained audit trail. Engineering controls for compliance programs, not a legal certification.
96
- - **7-layer retrieval/recall stack & code graph** — multi-channel candidates (semantic, BM25, temporal, Hopfield, spreading activation) plus optional code-graph tools for blast radius and review context.
97
- - **MCP profiles** — `code` (38 tools) for installed coding agents; `full` (54 tools); `power` (66 tools); `whole` (101 tools, all registered). Also `core` (18 tools), `mesh` (8 tools), and the unrestricted default surface — the same 54 tools as `full`.
98
- - **Governed write path & verifiable transactions** — admission + policy control, a per-owner obligation ledger, and a hash-sealed completion manifest with a reconciler that redrives unmet obligations.
99
- - **Self-healing lifecycle & admin remediation** — stale locks cleared on restart; list/resolve stuck operations from CLI, MCP, or the dashboard.
100
-
101
- SLM is one strand of Qualixar's work on AI reliability engineering: making agent behavior observable, bounded, and reproducible instead of best-effort.
102
-
103
- The architecture evaluated in the V3 paper remains the foundation of this release. The figures below keep their original LoCoMo protocol, answer-construction, model, and sample scope.
104
-
105
- ### How SLM fits beside other memory systems
106
-
107
- Different products solve different boundaries. SLM is for developers who want
108
- one local-first operating control plane—not only an SDK, managed context API,
109
- or agent runtime. It combines dated evidence, graph-aware retrieval, cache and
110
- compression controls, **SLM-Mesh**, and MCP/CLI/hooks/dashboard/IDE
111
- surfaces in one install.
112
-
113
- | If your primary need is… | Product boundary to evaluate |
114
- |---|---|
115
- | Local-first agent memory plus operations, optimization, and IDE-agent surfaces | **SuperLocalMemory** — Mode A local core; Modes B/C by explicit choice. |
116
- | A memory SDK, self-hosted server, or managed platform | [Mem0](https://github.com/mem0ai/mem0) |
117
- | A temporal context-graph service or graph engine | [Zep / Graphiti](https://github.com/getzep/graphiti) |
118
- | A stateful agent runtime with memory blocks and archival memory | [Letta](https://docs.letta.com/guides/core-concepts/memory/context-hierarchy) |
119
- | LangGraph-native memory primitives and managers | [LangMem](https://github.com/langchain-ai/langmem) |
120
- | A context API/app with profiles, connectors, and RAG | [Supermemory](https://github.com/supermemoryai/supermemory) |
121
- | User profiles and event-timeline memory | [Memobase](https://github.com/memodb-io/memobase) |
122
-
123
- See the [source-linked market comparison](https://superlocalmemory.com/comparison)
124
- for current primary sources and protocol-scoped benchmark evidence. A LoCoMo
125
- percentage is comparable only when the dataset scope, answer model, judge,
126
- retrieval stack, and release artifact match.
127
-
128
- ### The V4 capability architecture
129
-
130
- SuperLocalMemory is one local control plane for persistent agent context. It is
131
- not just a vector store: the same runtime can accept evidence, build and govern
132
- memory, retrieve bounded evidence for an agent, and expose cache, compression,
133
- and **SLM-Mesh** peer-coordination controls through a CLI, MCP, dashboard, and supported
134
- IDE integrations.
135
-
136
- ![SuperLocalMemory V4 capability architecture: modes, seven operating layers, Scale Engine, SLM-Mesh, delivery surfaces, and opt-in adapters](docs/assets/slm-v37-capability-architecture.png)
137
-
138
- *Architecture boundary: SQLite + sqlite-vec remain canonical; CozoDB and
139
- LanceDB are parity-gated projections; **SLM-Mesh** coordinates trusted peers rather
140
- than replicating a distributed memory database; connectors are opt-in.*
141
-
142
- **Memory boundaries:** profiles isolate workspaces by default. Every memory is
143
- `personal`, `shared` with named profile readers, or `global`; cross-profile
144
- recall is default-deny and must be explicitly enabled. This scoped sharing is
145
- local authorization, not **SLM-Mesh** synchronization. See
146
- [shared-memory.md](docs/shared-memory.md).
147
-
148
- ```text
149
- IDEs, agents, scripts, connectors, and humans
150
- │ CLI · MCP (HTTP/stdio) · hooks · dashboard
151
- ▼
152
- ┌────────────────────────── SLM CONTROL PLANE ──────────────────────────┐
153
- │ 1. Admission identity, scope, idempotency, raw evidence │
154
- │ 2. Queryable core SQLite facts + FTS durable receipt │
155
- │ 3. Enrichment facts, entities, scenes, time, provenance, graph │
156
- │ 4. Memory brain feedback, patterns, rewards, consolidation │
157
- │ 5. Retrieval semantic · BM25 · temporal · Hopfield · activation │
158
- │ 6. Context safety policy, trust, provenance, redaction, budgets │
159
- │ 7. Operations lifecycle, audit, cache/compress, mesh, backups │
160
- └───────────────────────────────────────────────────────────────────────┘
161
- │
162
- ▼
163
- SQLite + sqlite-vec canonical store ──► optional graph/vector projections
57
+ $ slm remember "Staging DB moved to Postgres 17 on port 5434." --replaces 0f57a17af3dd46e5
58
+ Replaced ✓ 1 fact(s) of 0f57a17af3dd46e5.
59
+ To undo, run:
60
+ slm review-correction ... rollback 1
61
+ $ slm recall "which port does staging postgres use"
62
+ 1. [0.68] Staging DB moved to Postgres 17 on port 5434.
164
63
  ```
165
64
 
166
- The seven stages are an execution model, not a promise that every optional
167
- enricher or retrieval channel runs for every request. The receipt, trace, and
168
- health surfaces expose the stages actually completed by the installed runtime.
169
-
170
- | Capability | What ships today | Operator boundary |
171
- |---|---|---|
172
- | **Memory types and lifecycle** | Atomic facts, episodic scenes, temporal events, canonical entities, profiles/scopes, consolidation, forgetting and retention controls | Lifecycle policies and retention decisions remain operator-configured. |
173
- | **Memory boundaries** | Profile-isolated workspaces plus `personal`, `shared`, and `global` memory scopes | Personal is the default; shared/global recall requires explicit scope policy or per-call opt-in. |
174
- | **Ingestion** | Durable raw-to-complete operation state, fact extraction, entity resolution, graph/temporal/provenance derivations, and replay-safe identity | `--sync` waits for declared stages; dependencies and mode determine which enrichers are available. |
175
- | **Retrieval and recall** | Semantic, lexical, temporal, Hopfield and spreading-activation candidate channels; RRF fusion, optional reranking and graph score enhancement | Healthy channels participate; response provenance states the evidence used. |
176
- | **Answer check** | A check (on-device or hosted) that reports whether the top results actually answer the question, not just whether they're related | Until you choose, it runs only once an on-device install has passed its check; otherwise it is off. The hosted check runs only after you turn it on and agree. Results are never filtered or hidden because of it. See [docs/answer-check.md](docs/answer-check.md). |
177
- | **Brain and learning** | Behavioral patterns, feedback/outcome records, rewards, consolidation, LightGBM-related ranking components, soft prompts, and guarded skill-evolution workflows | Learning is evidence-driven; it does not claim autonomous correctness or guaranteed improvement. |
178
- | **Knowledge graph and entities** | Canonical entities, aliases, entity profiles, graph edges, scenes, timelines, explorer and graph APIs | Stored/derived graph data is evidence, not an instruction authority. |
179
- | **Scale Engine** | SQLite + sqlite-vec are canonical. CozoDB graph and LanceDB vector projections are managed with prepare → verify → promote → rollback; a structurally detected pre-v3.7 projection can be explicitly adopted. | Promotion is parity-gated and crash-recoverable. Legacy adoption preserves the prior projection as a rollback backup; repeated physical edge rows normalize to one logical edge with the strongest weight. |
180
- | **Optimize** | Exact cache, tagged invalidation, safe compression, opt-in aggressive prose compression, CCR originals, proxy/MCP/skill surfaces | Only proxy intercepts a primary provider turn. MCP/skill cache results explicitly routed through SLM. |
181
- | **SLM-Mesh** | Authenticated peer messages, inbox/outbox, locks, offline queue, optional discovery and mesh MCP tools | SLM-Mesh is coordination, not automatic replicated memory or conflict resolution. |
182
- | **Governance and operations** | Provenance, audit/retention/policy surfaces, export/erasure controls, diagnostics, health, backups and daemon lifecycle | These are engineering controls, not a legal certification. |
183
- | **Integrations** | CLI, Python SDK, MCP HTTP/stdio, Claude plugin, Codex add-on, supported IDE configurations, Gmail/Calendar/transcript adapters | Hooks, IDE edits, connectors, and networked adapters require explicit operator activation. |
184
-
185
- ### What the dashboard exposes
186
-
187
- `slm dashboard` opens a local operational view of the same control plane:
188
-
189
- | Workspace | Use it to inspect or control |
190
- |---|---|
191
- | Dashboard and Health | daemon identity, storage/runtime health, diagnostics and recent activity |
192
- | Brain | consolidation, behavioral patterns, outcomes/rewards, learning state and soft prompts |
193
- | Knowledge Graph and Memories | graph neighborhoods, entities, scenes, temporal evidence, memory inspection and mutation |
194
- | Operations | ingestion-operation state, traces, maintenance and lifecycle work |
195
- | Entity Explorer and Skill Evolution | compiled entity summaries/timelines; opt-in skill lineage, budgets and verification outcomes |
196
- | Multi-Agent Memory | per-agent write activity and attribution; memories stamped by `SLM_AGENT_ID`, agent write counts, and trust signals |
197
- | SLM-Mesh Peers | configured peers, inbox/outbox, pending coordination and locks |
198
- | Settings and Optimize | mode/provider/configuration; cache, compression and savings telemetry |
199
-
200
- Dashboard visibility is not a substitute for runtime proof: use `slm doctor`,
201
- `slm health`, `slm trace`, and the relevant CLI/MCP operation to validate a
202
- deployment.
65
+ Real output from a fresh Mode A install, trimmed. Scores rank; they are not probabilities. While the embedding model loads, recall says `Incomplete search`.
203
66
 
204
67
  ### Watch the product walkthrough
205
68
 
206
69
  [![Watch the SuperLocalMemory demo](https://img.youtube.com/vi/PMWW_ypsL60/hqdefault.jpg)](https://www.youtube.com/watch?v=PMWW_ypsL60)
207
70
 
208
- **[Watch the SuperLocalMemory demo on YouTube](https://www.youtube.com/watch?v=PMWW_ypsL60)** — a five-minute walkthrough of installation, setup, recall, cache, and compression. The video shows a product walkthrough; use the commands and release notes in this README as the current release contract.
209
-
210
- ### Published LoCoMo evidence (V3 architecture, carried into V4)
211
-
212
- The V3 paper evaluates the multi-channel architecture that V4 still runs. Every figure below
213
- is protocol-scoped, so a reader can distinguish local retrieval, answer
214
- construction, and cloud-assisted evaluation rather than treating unlike runs as
215
- one score.
216
-
217
- | Published configuration | LoCoMo aggregate | Protocol scope | What the result establishes |
218
- |---|---:|---|---|
219
- | **Mode A Raw** | **60.4%** | 10 conversations; 1,276 scored questions; local embeddings, local retrieval, and zero-LLM answer construction | End-to-end local answer construction under the published V3 protocol. |
220
- | **Mode A Retrieval** | **74.8%** | 10 conversations; 1,276 scored questions; local retrieval, then GPT-4.1-mini answer synthesis | Retrieval evidence: local retrieval contributes the evidence, while the disclosed external model constructs the final answer. |
221
- | **Mode C** | **87.7%** | Conv-30 only; 81 scored questions; text-embedding-3-large plus GPT-4.1-mini answer generation and judge | Cloud-assisted configuration on one fully disclosed conversation; not a full-dataset result. |
71
+ Five minutes: install, setup, recall, cache and compression.
222
72
 
223
- Published category results: Mode A Retrieval scored **72.0%** single-hop,
224
- **70.3%** multi-hop, **80.0%** temporal, and **85.0%** open-domain. Mode C
225
- scored **64.0%** single-hop, **100.0%** multi-hop, and **86.0%** open-domain
226
- on its 81-question Conv-30 scope (no temporal category was reported for that
227
- run). Across six LoCoMo conversations, the paper reports **71.7%** with the
228
- information-geometric layers versus **58.9%** without them: **+12.7pp**.
73
+ ### The dashboard, on real 4.1.21
229
74
 
230
- See [arXiv:2603.14588](https://arxiv.org/abs/2603.14588) and the [official
231
- LoCoMo paper](https://arxiv.org/abs/2402.17753) for the full protocol,
232
- ablation table, and limitations. These are published V3 architecture results
233
- carried into V4—not a substitute for a newly rerun release-artifact benchmark.
75
+ Captured from a 4.1.21 install in Mode A, with Laya running on the Mac and a store of fictional project memories. Nothing is mocked: each verdict, score and timing is what SLM returned.
234
76
 
235
- ---
236
-
237
- ## Quick Start
238
-
239
- ```bash
240
- # Primary path 1 — npm global CLI (Node 18+)
241
- # Creates a package-owned virtual environment. It does not modify system Python.
242
- npm install -g superlocalmemory
243
- slm setup # Choose mode (A/B/C)
244
- slm doctor # Verify everything is working
245
- ```
246
-
247
- ```bash
248
- # Primary path 2 — Python CLI + SDK in an activated virtual environment
249
- python3 -m venv .venv
250
- source .venv/bin/activate # Windows PowerShell: .venv\Scripts\Activate.ps1
251
- python -m pip install superlocalmemory
252
- slm setup
253
- slm doctor
254
- ```
255
-
256
- ```bash
257
- # First use
258
- slm remember "Alice works at Google as a Staff Engineer" --json
259
- slm recall "What does Alice do?"
260
- slm status
261
- ```
262
-
263
- The default daemon write commits raw evidence plus a relational/FTS projection
264
- and returns a durable receipt in `queryable` state. Enrichment then advances the
265
- same operation through `enriching` to `complete`, or records a retryable
266
- `failed` state. Use `slm remember "..." --sync` when the caller must wait for
267
- all declared derivation and projector stages. JSON output includes the opaque
268
- `operation_id`, current `materialization_state`, and fact IDs.
77
+ | Memories that answer the question | Memories that do not: "I don't have that" |
78
+ |---|---|
79
+ | ![Answer Check: Laya judges that the memories answer "When is Project Kestrel going live?" with confidence 0.85, in 1.4 s of the 3 s limit](docs/screenshots/dashboard-4.1.21/answer-check-answered.png) | ![Answer Check: for "How much did the Kestrel pilot cost?" Laya finds no memory that answers it and SLM says "I don't have that"](docs/screenshots/dashboard-4.1.21/answer-check-dont-have-that.png) |
269
80
 
270
- ```bash
271
- # Wrap your agent — starts proxy + sets environment + launches agent
272
- slm wrap claude
273
- # Your first repeat prompt → CACHE HIT → $0.00
274
- # See savings: slm optimize savings --since 1
275
- ```
81
+ | Recall Lab: why each memory was chosen | Every memory with its kind and project |
82
+ |---|---|
83
+ | ![Recall Lab: per-channel scores for "what did we decide about the database"](docs/screenshots/dashboard-4.1.21/recall-lab.png) | ![Memories table filtered by kind: decisions, rules, corrections, facts, with the project each belongs to](docs/screenshots/dashboard-4.1.21/memories-kinds-projects.png) |
276
84
 
277
- **Upgrading:** use the owner of the installation: `npm update -g superlocalmemory`
278
- or, while the Python virtual environment is active,
279
- `python -m pip install --upgrade superlocalmemory`. Then run
280
- `slm restart && slm doctor`. Repository-clone users use the matching `upgrade`
281
- action in `scripts/install.sh` or `scripts/install.ps1`. Installers never move
282
- or delete memory data.
85
+ ![Saved views: a saved question that runs the same search your agent uses and shows the memory each result came from](docs/screenshots/dashboard-4.1.21/saved-views.png)
283
86
 
284
- ---
87
+ ## Why SuperLocalMemory: the moats
285
88
 
286
- ## Three Pillars
89
+ A vector store answers "what is similar". AI agent memory must also answer: is this still true, who may see it, can it be erased with proof, and does the agent actually have the answer?
287
90
 
288
- ### Memory
91
+ **1. Governed memory, not a vector store.** Roles per workspace, personal / shared / global scopes with default-deny cross-profile recall, GDPR erasure with HMAC-verifiable receipts, retention rules and a hash-chained audit log. The [V4 paper](https://arxiv.org/abs/2608.08253) measures what the governed write path costs. Code: `src/superlocalmemory/access/`, `compliance/`.
289
92
 
290
- <a id="dual-interface-mcp--cli"></a>
93
+ **2. A zero-LLM core built on published math.** Five retrieval channels, fusion and the learned ranker run without a language model; V3 scored 60.4% on LoCoMo with no LLM anywhere ([benchmarks](#benchmarks-v3)). Fisher-information scoring, sheaf contradiction detection and Langevin lifecycle dynamics added 12.7 points ([V3 paper](https://arxiv.org/abs/2603.14588)).
291
94
 
292
- Current recall has five candidate producers—dense semantic, BM25 lexical,
293
- temporal, Hopfield associative, and spreading activation—followed by fusion,
294
- optional reranking, and entity-graph score enhancement. The entity graph does
295
- not create an independent candidate in the current implementation. Core memory
296
- is SQLite-backed. SQLite and sqlite-vec remain the canonical source of truth.
297
- The packaged Scale Engine can maintain CozoDB graph and LanceDB vector
298
- projections, and it remains outside active retrieval paths until a staged
299
- parity witness proves it matches the canonical store. New installations remain
300
- on Local Core. During upgrade, `slm db scale status` can identify a positive
301
- pre-v3.7 layout candidate; the operator confirms it with `slm db scale adopt`.
302
- SLM then rebuilds from canonical SQLite, verifies it, and promotes it with a
303
- durable recovery journal while retaining the prior directories as a rollback
304
- backup. `adopt` reports `restart_required: true`; run `slm restart` before
305
- checking daemon health. If proof fails, recall remains on SQLite and status
306
- retains the rejected manifest for inspection, retires its replaceable derived
307
- payload, and allows a corrected retry.
95
+ **3. It says "I don't have that."** The [answer check](docs/answer-check.md) decides whether the top results answer the question, on your Mac (Laya) or online (Jev), and recall reports `abstained` instead of a confident wrong answer.
308
96
 
309
- Canonical ingestion is a durable state machine: `raw → queryable → enriching →
310
- complete`, with `failed` retaining raw evidence, error details, attempt count,
311
- and retry timing. SQLite relational facts and FTS are the queryable checkpoint;
312
- optional ANN/vector projectors are verified before `complete` is granted.
97
+ **4. Memory that learns, and cannot quietly get worse.** A Thompson-sampling bandit tunes channel weights and a LightGBM ranker learns from reported outcomes. A retrained ranker is promoted only after a shadow A/B test on live recalls, and rolled back automatically if NDCG@10 drops 2% or more. Code: `learning/shadow_test.py`, `learning/model_rollback.py`.
313
98
 
314
- Recalled text is treated as untrusted evidence. Hooks, MCP `session_init`, CLI
315
- session context, and chat use one bounded renderer that redacts recognized
316
- secrets, neutralizes forged boundary markers, and attaches provenance. Trusted
317
- IDE instruction files contain only the static SLM protocol; fresh memory is
318
- retrieved at runtime rather than copied into those files.
99
+ **5. Memory with a sense of time.** Every fact records when it happened and when SLM learned it. Ask what was true last month (`--valid-at`) or what SLM knew before a date (`--known-as-of`). Unused memories fade and lose vector precision ([V3.3 paper](https://arxiv.org/abs/2604.04514)).
319
100
 
320
- **Score Contract v2:** `relevance_score` is query-relative relevance;
321
- `ranking_score` is internal ranking utility; `memory_confidence` belongs to the
322
- stored assertion; and `trust_score` is an evidence-policy signal. Legacy
323
- `score` and `confidence` remain aliases for one compatibility release. It is
324
- explicitly uncalibrated: `calibration_status` is `uncalibrated` and
325
- `answer_confidence` is `null`. See
326
- [the retrieval score contract](docs/retrieval-score-contract.md).
101
+ **6. Many agents, one coordinated memory.** Every write records its agent, with Bayesian trust scores against poisoning ([V2 paper](https://arxiv.org/abs/2603.02240)). SLM-Mesh gives parallel sessions messages, locks and shared state.
327
102
 
328
- The retrieval/lifecycle implementation includes three mathematical layers that
329
- can run without a cloud LLM:
103
+ **7. "Done" means a gate passed.** Bounded loops repeat a task until an independent check (tests, a schema, a linter) passes, never on the agent's word, and store every lap as auditable memory.
330
104
 
331
- 1. **Fisher-informed scoring** — dense candidate generation uses cosine similarity; Fisher-derived terms can modify later scoring when their state is available.
332
- 2. **Sheaf Cohomology for Consistency** — algebraic topology detects contradictions via coboundary norms on the knowledge graph.
333
- 3. **Riemannian Langevin Lifecycle** — memory positions evolve continuously on the Poincare ball, and where a memory sits decides its lifecycle stage. There is no retention timer counting down against a memory: what moves it outward is being left alone, and what pulls it back is being used. The stage boundaries themselves are fixed radii.
105
+ **8. Context you don't pay for twice.** Exact cache and reversible compression work through MCP tools or a skill, with no proxy, so your full context window stays intact.
334
106
 
335
- Auto-capture hooks are installed explicitly with `slm hooks install` (Claude
336
- Code) or `slm hooks install --agent codex` (Codex). Hook latency and capture
337
- quality must be evaluated for the target client and workload; SLM publishes no universal p99 claim.
107
+ SLM is part of Qualixar's AI Reliability Engineering work: agent memory that is observable, bounded and honest about what it doesn't know.
338
108
 
339
- **Multi-scope memory (opt-in):** keep memories `personal` (default), `shared` with named profiles, or `global` across the machine. Off by default — recall only ever returns your own facts until you turn sharing on, per call or in config. See **[docs/shared-memory.md](docs/shared-memory.md)**.
109
+ ## Works with your agents
340
110
 
341
- <a id="multilingual-embedding-support"></a>
111
+ | Surface | What you get | Docs |
112
+ |---|---|---|
113
+ | Editor plugins | Claude Code, Codex, VS Code / Copilot, Antigravity, Hermes. Each ships 12 skills, 4 sub-agents and session hooks | [IDE setup](docs/ide-setup.md), [Hermes](docs/hermes.md) |
114
+ | `slm connect <ide>` | Writes the MCP config for 12 IDEs, including Cursor, Windsurf, Zed, JetBrains, Gemini CLI and Claude Desktop | [IDE setup](docs/ide-setup.md) |
115
+ | MCP | stdio (`slm mcp`) or HTTP at `http://127.0.0.1:8765/mcp/`; profiles from 8 to 103 tools | [MCP tools](docs/mcp-tools.md) |
116
+ | Framework adapters | LangGraph, LangChain, LlamaIndex, CrewAI, AutoGen, Semantic Kernel, Microsoft Agent Framework, Google ADK, OpenAI Agents | [Framework adapters](docs/framework-adapters.md) |
117
+ | Python SDK and HTTP API | `MemoryEngine` in your code; the local REST API | [API reference](docs/api-reference.md) |
118
+ | Auto-capture hooks | `slm hooks install` for Claude Code, `--agent codex` for Codex | [Auto-memory](docs/auto-memory.md) |
342
119
 
343
- **Multilingual models:** configure an OpenAI-compatible embedding endpoint such as Ollama, vLLM, LiteLLM, `bge-m3`, `multilingual-e5`, or `Qwen3-Embedding`. Language coverage and retrieval quality depend on the selected model and should be evaluated for the deployment corpus.
120
+ Claude Code memory in two commands: `claude plugin marketplace add qualixar/superlocalmemory`, then `claude plugin install superlocalmemory@qualixar`.
344
121
 
345
- ### Cache + Compress
122
+ ## What developers use it for
346
123
 
347
- <a id="three-surfaces-proxy--mcp-tools--skill"></a>
124
+ - **Persistent memory for Claude Code, Codex and Cursor.** Decisions, conventions, fixes and project context carry across sessions and across tools; confirmed rules and decisions load at session start.
125
+ - **An MCP memory server for any agent.** stdio or HTTP, with adapters for LangGraph, LangChain, LlamaIndex, CrewAI, AutoGen, Semantic Kernel, Microsoft Agent Framework, Google ADK and the OpenAI Agents SDK.
126
+ - **Local-first RAG without a vector database service.** SQLite + sqlite-vec, hybrid search (BM25, embeddings, knowledge graph, temporal), reranking, no Docker and no cloud account.
127
+ - **A hallucination guard for retrieval.** The answer check, Jev or Laya, abstains when the retrieved memories don't answer the question, so your agent doesn't build on a wrong one.
128
+ - **Team and enterprise AI memory.** Roles, company mode with sign-in, scoped sharing, GDPR export and verified erasure, a hash-chained audit trail and an EU AI Act posture report.
129
+ - **Multi-agent memory and coordination.** One store shared by many agents with per-agent attribution, SLM-Mesh messages, locks and shared state, and bounded loops that finish only when an independent gate passes.
130
+ - **Lower token cost.** Exact caching and reversible compression of tool output and file reads keep long agent sessions inside the context window.
131
+ - **Memory for local LLMs.** Mode B runs extraction on Ollama, llama.cpp, vLLM, LM Studio or any OpenAI-compatible server on your machine.
132
+ - **A searchable work log.** Bi-temporal "what was true then" queries, daily, session and project summaries, and saved views, each answer pointing back to its memory ids.
348
133
 
349
- One engine, three ways in — choose the surface that fits your setup:
134
+ ## Architecture
350
135
 
351
- | Surface | How you use it | Requires proxy? | Window effect | Cache scope |
352
- |---------|---------------|:---------------:|:-------------:|-------------|
353
- | **A — Proxy** | `slm wrap claude` or `ANTHROPIC_BASE_URL=http://127.0.0.1:8765` | **Yes** | Shrinks | Full-turn cache — every call |
354
- | **B — MCP tools** | Add 5 tools to MCP config; call `slm_compress`, `slm_cache_set/get` | **No** | **Preserved (1M)** | Results you explicitly route through SLM |
355
- | **C — Skill** | Copy `skills/slm-optimize/SKILL.md` → `~/.claude/skills/` | **No** | **Preserved (1M)** | Auto-applied by the agent per skill rules |
136
+ ![SuperLocalMemory 4.1.21 architecture: modes, eight-layer pipeline, governance, Scale Engine, SLM-Mesh, bounded loops](docs/assets/slm-4.1.21-architecture.svg)
356
137
 
357
- **The hard constraint:** The primary Claude conversation turn cannot be cached without a proxy. The MCP/skill path caches results you explicitly route through SLM (tool outputs, file reads, sub-model calls) — without a proxy the main conversation turn is not intercepted.
138
+ *SQLite + sqlite-vec are canonical; CozoDB and LanceDB are parity-gated projections; SLM-Mesh coordinates trusted peers rather than replicating a distributed database; connectors are opt-in.* [Architecture docs](docs/ARCHITECTURE.md).
358
139
 
359
- **How to choose:**
360
- - Metered API (pay-per-token), want every call cached → **Proxy (A)**
361
- - Pro/Max/Team subscription or any plan where you won't run a proxy → **MCP tools (B)** or **Skill (C)**
362
- - Zero configuration → **Skill (C)**: install once, auto-compresses CLAUDE.md and large outputs
363
- - Agent-controlled caching of repeated file reads → **MCP tools (B)**
140
+ ## Everything SLM does
364
141
 
365
- **Cache:** exact-match SQLite lookup is the stable cache path. Semantic cache
366
- controls are experimental until release-linked precision, invalidation, and
367
- tenant-isolation evidence exists. A cache hit can avoid a provider request, but
368
- actual cost and latency savings depend on the intercepted surface and provider.
142
+ ### Memory and recall
369
143
 
370
- **Compress:** safe mode uses conservative normalization and preserves JSON and code; measured reduction varies by content and can be zero. Aggressive prose compression is opt-in and lossy. CCR can retain an original for later byte-exact retrieval when reversible storage is enabled.
144
+ | Capability | What you get | Docs |
145
+ |---|---|---|
146
+ | Hybrid recall | Semantic, keyword (BM25), temporal, associative (Hopfield) and spreading-activation channels, fused by reciprocal rank and reranked. `slm trace` shows each channel's score | [Recall](docs/recall.md) |
147
+ | Memory kinds | Nine kinds: fact, event, status, opinion, rule, decision, how-to, plan, correction. "What did we decide" favours decisions | [Memory kinds](docs/memory-kinds.md) |
148
+ | Standing rules | Confirmed rules (up to 10) and decisions (up to 5) load into every new agent session | [Memory kinds](docs/memory-kinds.md#standing-rules-at-session-start) |
149
+ | Replace and correct | `--replaces <id>` retires an old fact, kept and undoable. Edits go through reviewed corrections with rollback | [Corrections](docs/reviewed-corrections.md) |
150
+ | Time travel | `--as-of`, `--known-as-of`, `--valid-at`, and `--window 7d` or a date range | [Recall](docs/recall.md#time-travel) |
151
+ | Recall filters | `--project`, `--saved-by`, `--about`, `--kind`; applied before the answer check | [Recall](docs/recall.md#narrowing-a-recall) |
152
+ | Project-aware recall | New in 4.1.21: memories from your current project rank first, hiding nothing. `--project` narrows and says when nothing matched | [Recall](docs/recall.md) |
153
+ | Summaries and saved views | New in 4.1.21: `slm summary session`, `day` or `project`, each citing its memory ids; `slm view create "Work log" "what did I ship" --window 7d`, then `slm view run` | [Summaries](docs/recall.md#summaries), [Views](docs/recall.md#saved-views) |
154
+ | Knowledge graph | Entities, aliases, scenes and timelines; Entity Explorer in the dashboard | [Architecture](docs/ARCHITECTURE.md) |
155
+ | Code graph | Index a repo, then ask for blast radius, callers, review context and code search by meaning | [MCP tools](docs/mcp-tools.md) |
156
+ | Modes and providers | A: no model calls. B: a model on this machine (Ollama by default, or another local OpenAI-compatible server). C: your own endpoint or a cloud provider. Multilingual embedders work | [Configuration](docs/configuration.md) |
157
+
158
+ Recalled text is untrusted evidence: before it reaches a prompt, secrets are redacted, forged boundary markers neutralised and provenance attached, a defence against prompt injection through memory.
159
+
160
+ ### Learning in memory
161
+
162
+ - **Adaptive ranking.** A contextual Thompson-sampling bandit picks channel weights per query type; a LightGBM learning-to-rank model trains on `report_outcome` and `report_feedback`. The same question on an unchanged store gets the same ranking.
163
+ - **Guarded promotion.** A candidate ranker runs in shadow and is promoted only on a measured win; a later NDCG@10 drop of 2% or more restores the previous model automatically.
164
+ - **Soft prompts.** Consolidation mines behavioural patterns and turns stable ones into soft prompts for new sessions.
165
+ - **Forgetting.** An Ebbinghaus retention cycle and a Langevin lifecycle move neglected memories toward archive and pull used ones back.
166
+ - **Skill evolution (opt-in).** Measures agent skills, proposes revisions and keeps lineage, under a budget and blind verification. [Skill evolution](docs/skill-evolution.md)
167
+
168
+ ### Governance
169
+
170
+ | Control | What it does | Docs |
171
+ |---|---|---|
172
+ | Roles | Admin, member and viewer per workspace. A role in one workspace grants nothing in another | [Teams](docs/rbac-teams.md) |
173
+ | Company mode | Every read and write is attributed to a signed-in person; turn on with "Require login" | [Company mode](docs/company-mode.md) |
174
+ | Profiles and scopes | Isolated workspaces. Memories are `personal` by default; `shared` and `global` are opt-in | [Profiles](docs/profiles.md), [Scopes](docs/shared-memory.md) |
175
+ | GDPR | `slm gdpr export` (Art. 15/20), `slm gdpr erase` (Art. 17) across every store, `slm gdpr verify` checks the erasure receipt | [Compliance](docs/compliance.md) |
176
+ | Retention and audit | Per-profile retention rules; a hash-chained audit trail of stores, recalls, changes and erasures; ABAC policy checks | [Compliance](docs/compliance.md) |
177
+ | EU AI Act posture | A per-mode technical report (data locality, generative AI use). Risk class stays "undetermined"; no legal verdict | [Compliance](docs/compliance.md) |
178
+ | Write gate | Install token, API keys and remote keys decide who may write | [Auth write gate](docs/auth-write-gate.md) |
179
+ | Evidence export | Checksummed JSONL bundles: `slm evidence export`, `verify`, `import` | [CLI reference](docs/cli-reference.md#data-and-evidence) |
180
+ | Backup and restore | Cloud backup to GitHub or Google Drive, encrypted before upload. A restore point before each store update | [Cloud backup](docs/cloud-backup.md), [Restore points](docs/restore-points.md) |
371
181
 
372
- **Savings dashboard:** `slm optimize savings --since 7` — live USD/INR/tokens saved. Hot-reload config, fail-open.
182
+ Engineering controls that support a compliance program, not a certification.
373
183
 
374
- ### SLM-Mesh (cross-session / cross-machine coordination)
184
+ ### Multi-agent: SLM-Mesh and bounded loops
375
185
 
376
- <a id="multi-machine-mesh-coordination"></a>
377
- <a id="slm-mesh-cross-session--cross-machine-coordination"></a>
186
+ **Shared memory with attribution.** Claude Code, Codex, Cursor and Hermes share one store; each memory records its agent (`SLM_AGENT_ID`) and the dashboard shows per-agent activity.
378
187
 
379
- **SLM-Mesh** is the V4 peer-coordination plane: authenticated messages, locks, shared lightweight state, inbox/outbox, and an offline queue between configured peers (same machine sessions or cross-machine). Optional mDNS discovery (`SLM_MESH_DISCOVERY=on`). It is **not** a replicated or conflict-resolving distributed-memory database — multi-scope memory sharing is a separate local-authorization feature.
188
+ **SLM-Mesh** coordinates sessions on one machine, or several machines with a shared secret: `mesh_peers`, `mesh_send`, `mesh_inbox`, `mesh_state`, `mesh_lock`, `mesh_events`, `mesh_status`, `mesh_summary`. Messages route across machines; locks and state are per machine. [Multi-machine](docs/multi-machine.md)
380
189
 
381
- ```bash
382
- # Machine A (broker)
383
- export SLM_MESH_HOST=192.168.1.100
384
- export SLM_MESH_SHARED_SECRET=my-secret-key
385
- slm init
386
-
387
- # Machine B (client)
388
- export SLM_MESH_PEER_URL=http://192.168.1.100:8765
389
- export SLM_MESH_SHARED_SECRET=my-secret-key
390
- slm init
391
- ```
190
+ **Bounded loops** end only when an independent gate passes (tests, a linter, a schema, a recall condition), never because the agent says it is done. Runs end DONE, HALT, PAUSE, KILLED or ERROR, with each lap stored under `loop:<name>`. Run `slm loop demo`, the `slm_loop_*` MCP tools or `/slm-loop`; the separate Bounded Loops product can store its finished runs here as read-only evidence. [CLI reference](docs/cli-reference.md#bounded-loops-v380), [Bounded Loops bridge](docs/bounded-loops-bridge.md)
392
191
 
393
- Eight **SLM-Mesh** MCP tools: `mesh_summary`, `mesh_peers`, `mesh_send`, `mesh_inbox`, `mesh_state`, `mesh_lock`, `mesh_events`, `mesh_status`.
192
+ ### Answer check: Laya and Jev
394
193
 
395
- Full docs: [docs/multi-machine.md](docs/multi-machine.md) · [docs/distributed-deployment.md](docs/distributed-deployment.md)
194
+ Answer check adds a second step after ranking; choose one in **Settings → Answer check**:
396
195
 
397
- ---
196
+ - **Laya, on this Mac:** a small on-device model (about 1.1 GB) for Apple Silicon Macs. Nothing leaves the machine.
197
+ - **Jev, online, on any computer:** Windows, Linux or macOS, through TypeSafe or OpenRouter with your own key and an explicit consent box. Sends the question and the top 3 memories.
198
+ - **Off.**
398
199
 
399
- ## Install Paths
200
+ Only one runs at a time and the online option never turns itself on. Results are never hidden: recall marks them `abstained` and your agent decides. A repeat question gets the same verdict. The **Answer Check** tab shows verdicts, timing against the 3-second recall ceiling and the "I don't have that" rate; it never stores questions or memory text. [Answer check](docs/answer-check.md)
400
201
 
401
- > **V4 platform support:** Apple Silicon macOS, 64-bit Windows, and 64-bit Linux. Intel Mac and 32-bit Windows are not supported by the patched `cryptography` 50 runtime.
202
+ ### Context optimisation: cache and compression
402
203
 
403
- | Path | Command | When |
404
- |:-----|:--------|:-----|
405
- | **npm global CLI** (primary) | `npm install -g superlocalmemory` | Node 18+; package-owned virtual environment; system Python is not modified; run `slm setup` explicitly afterward |
406
- | **Python CLI + SDK** (primary) | Activate a Python virtual environment, then `python -m pip install superlocalmemory` | Python 3.12+; the `slm` CLI and importable SDK stay inside that environment |
407
- | **Repository clone — macOS/Linux** | `./scripts/install.sh install` | Research/contributor path; delegates to an existing uv or pipx installation |
408
- | **Repository clone — Windows** | `.\scripts\install.ps1 -Action Install` | Research/contributor path; delegates to an existing uv or pipx installation |
409
- | **Claude Code Plugin** | `/plugin marketplace add qualixar/superlocalmemory` then `/plugin install superlocalmemory@qualixar` | Self-bootstraps venv, additive, no isolated data directory — reads the same store as every other install and sets no `SLM_MCP_PROFILE`, so it defaults to the same 54-tool `full` surface. Ships the skills/agents/hooks/commands |
410
- | **Portable / IDE connect** | `slm connect <ide> [--here]` | Wire any IDE without reinstalling; `slm connect claude-code` → plugin pointer |
204
+ | Feature | What it does |
205
+ |---|---|
206
+ | Exact cache | `slm_cache_get` / `slm_cache_set` keep tool output and file reads with a TTL; a hit skips the repeat call |
207
+ | Compression | `slm_compress` shrinks large output; safe mode keeps JSON and code intact. A reversible result returns an id, and `slm_retrieve` restores the exact original |
208
+ | Three surfaces | Works through a proxy (`slm wrap claude`), MCP tools or a skill. Only the proxy caches the main conversation turn |
209
+ | Savings | `slm optimize savings --since 7` reports tokens and cost saved |
210
+ | Memory compression | Vector precision follows retention: fading memories are quantized to fewer bits, and consolidation folds clusters of faded memories into one gist |
411
211
 
412
- After any install path: `slm setup` → `slm doctor` → `slm warmup` (optional, pre-downloads ~500MB embedding model).
212
+ All of it fails open. [Optimize](docs/optimize-overview.md), [Proxy setup](docs/proxy-setup.md)
413
213
 
414
- ### Upgrading an existing installation
214
+ ### Remote access and teams
415
215
 
416
- An npm, pip, or repository update upgrades the SLM runtime; it does not silently
417
- rewrite your IDE configuration, hooks, or plugin state. Review the existing
418
- integrations first:
216
+ `slm remote` serves memory to other computers over TLS only. Each client gets a named key bound to one profile, read-only or read-write, revocable at once. Remote callers authenticate to read and never see this computer's paths or account. [Remote access](docs/distributed-deployment.md#remote-access-over-tls-4120), [Deployment tiers](docs/deployment-tiers.md)
419
217
 
420
- ```bash
421
- slm upgrade-hosts
422
- ```
218
+ ### Scale and operations
423
219
 
424
- Then explicitly apply the hosts you approve, for example
425
- `slm upgrade-hosts --host codex --apply`, or use
426
- `slm upgrade-hosts --all-detected --apply` after reviewing the preview. See
427
- [Host Integration Upgrades](docs/host-upgrades.md) for the full safety contract
428
- and the Claude Code plugin update path.
429
-
430
- | Component | Size | When |
431
- |:----------|:-----|:-----|
432
- | Core libraries (numpy, scipy, networkx) | ~50MB | During install |
433
- | Dashboard & MCP server (fastapi, uvicorn) | ~20MB | During install |
434
- | Learning engine (lightgbm) | ~10MB | During install |
435
- | Search engine (sentence-transformers, torch) | ~200MB | During install |
436
- | Embedding model (nomic-embed-text-v1.5, 768d) | ~500MB | First use or `slm warmup` |
437
- | **Mode B** requires [Ollama](https://ollama.com) + a model (`ollama pull llama3.2`) | ~2GB | Manual |
220
+ - **[Scale Engine](docs/scale-engine.md):** SQLite stays canonical. Optional CozoDB graph and LanceDB vector copies go through prepare, verify, promote and rollback, and serve recall only once they match SQLite.
221
+ - **[Dashboard](docs/DASHBOARD-COVERAGE.md):** `slm dashboard`, 16 panes including Answer Check, Brain, Knowledge Graph, Governance, Optimize and Mesh Peers.
222
+ - **Durable writes:** each save moves raw → queryable → enriching → complete with a receipt; a failed step keeps the raw evidence and retries. Saves under heavy load are queued, never refused.
223
+ - **[Operations](docs/troubleshooting.md):** `slm doctor`, `status`, `health`, `restart`, `ops`; stuck operations are listed and resolved.
438
224
 
439
- ---
225
+ ## MCP memory server: tool profiles
440
226
 
441
- ## MCP + Profiles
227
+ Pick how many tools your agent sees with `SLM_MCP_PROFILE`.
442
228
 
443
- SLM supports two MCP transports:
229
+ | Profile | Tools | For |
230
+ |---|---:|---|
231
+ | `core` | 18 | Remember, recall, sessions, optimize, correction review |
232
+ | `code` | 38 | Core plus code graph, memory kinds, Brain evidence, profile switching, bounded loops |
233
+ | `mesh` | 8 | SLM-Mesh coordination only |
234
+ | `full` (and unset) | 56 | Memory, kinds, Brain, optimize, skill evolution, mesh, loops, views and summaries |
235
+ | `power` | 68 | Full plus administration, lifecycle and diagnostics |
236
+ | `whole` | 103 | Every registered tool |
444
237
 
445
- **HTTP (recommended):**
446
238
  ```json
447
239
  { "mcpServers": { "superlocalmemory": { "type": "http", "url": "http://127.0.0.1:8765/mcp/" } } }
448
240
  ```
449
- Or: `claude mcp add --transport http superlocalmemory http://127.0.0.1:8765/mcp/`
450
-
451
- **stdio (universal fallback):**
452
- ```json
453
- { "mcpServers": { "superlocalmemory": { "command": "slm", "args": ["mcp"] } } }
454
- ```
455
-
456
- ### MCP Profiles
457
241
 
458
- Control tool surface via `SLM_MCP_PROFILE`:
242
+ For stdio clients use `{"command": "slm", "args": ["mcp"]}`.
459
243
 
460
- | Profile | Tools | Use case |
461
- |:--------|:-----:|:---------|
462
- | `core` | 18 | Memory, session, optimize, and correction review |
463
- | `code` | 38 | Core + portable Brain evidence + code-graph tools + profile switching + bounded loops + memory-kind management |
464
- | `mesh` | 8 | SLM-Mesh only — multi-session / multi-machine coordination |
465
- | `full` | 54 | Memory + portable Brain evidence + optimize + evolution + mesh + bounded loops + memory-kind management (also the no-profile default) |
466
- | `power` | 66 | Full + administration, lifecycle, and diagnostics |
467
- | `whole` | 101 | Every registered MCP tool |
244
+ ## Privacy and security
468
245
 
469
- **Precedence:** `ALL` > `TOOLS` > `PROFILE` > `default`
246
+ What leaves your machine, and when:
470
247
 
471
- ```bash
472
- export SLM_MCP_PROFILE=full # or core / code / mesh / power / whole
473
- slm mcp
474
- ```
475
-
476
- For a predictable small surface, set `core` explicitly. Leaving the variable
477
- unset retains the compatibility default, whose mesh tools follow the local
478
- mesh setting. Count-suffixed aliases remain for backward compatibility and emit a migration warning: `core14`, `core16`, `code20`, `code21`, `code24`, `code28`, `code29`, `code31`, `mesh8`, `full38`, `full39`, `full42`, `full46`, `full47`, `full49`, `power50`, `power51`, `power54`, `power58`, `power59`, `power61`, `whole81`, `whole84`, `whole91`, `whole92`, `whole94`. Unknown names stop startup instead of silently selecting another tool set.
479
-
480
- Per-IDE configs available for Claude Code, Cursor, Windsurf, VS Code Copilot, Continue, Gemini CLI, JetBrains, Zed, and more (15 configs in `ide/configs/`). See [docs/ide-setup.md](docs/ide-setup.md).
481
-
482
- ---
483
-
484
- ## Editor plugins
485
-
486
- The plugin is how most people should install SLM. It brings the MCP server, the
487
- skills, the sub-agents, the slash commands and the hooks in one step, and keeps
488
- them at the same version as the package.
489
-
490
- **Five surfaces, one source.** Everything below is generated from `plugin-src/`,
491
- so no surface can quietly fall behind another:
492
-
493
- | Editor | Install | Skills | Agents | Commands | Hooks |
494
- |---|---|---:|---:|---:|---:|
495
- | **Claude Code** | `claude plugin marketplace add qualixar/superlocalmemory` then `claude plugin install superlocalmemory@qualixar` | 12 | 4 | 1 | yes |
496
- | **Codex** | copy `codex-plugin/` into your Codex plugins directory | 12 | 4 | 1 | yes |
497
- | **VS Code / Copilot** | copy `copilot-plugin/.github/` into your repository | 12 | 4 | as prompts | yes |
498
- | **Antigravity** | copy `antigravity-plugin/` into your plugins directory | 12 | 4 | 1 | yes |
499
- | **Hermes** | install the native plugin from the immutable release commit | 12 | 4 | all SLM commands | yes |
500
-
501
- ### What you get
502
-
503
- - **Skills** — `slm-remember`, `slm-recall`, `slm-session`, `slm-graph`,
504
- `slm-mesh`, `slm-scope`, `slm-profile`, `slm-governance`, `slm-cache`,
505
- `slm-compress`, `slm-status`, `slm-loop`.
506
- - **Sub-agents** — a memory advisor, a governance advisor, a context-optimization
507
- advisor, and a loop runner, each scoped to the tools it actually needs.
508
- - **Commands** — `/slm-loop`, to run a task as a gate-verified bounded loop.
509
- - **Hooks** — session start and end, so context loads and commits without being
510
- asked.
248
+ | Data | Leaves only when |
249
+ |---|---|
250
+ | Recall question and top 3 memories | You turn on the online answer check (Jev) and tick its consent |
251
+ | Question and top 20 memories | You also turn on Jev reordering, which has its own notice |
252
+ | Memory text | You choose Mode C, a cloud embedder or reranker, an Ollama on another computer, or Jev kind typing (its own consent) |
253
+ | Encrypted backup files | You connect GitHub or Google Drive backup. Files are encrypted before upload |
254
+ | Mesh messages | You configure SLM-Mesh peers |
511
255
 
512
- ### Hermes
256
+ Model downloads send no memory content. Credentials in memory text are redacted on every outbound path. Outbound requests never follow redirects, and forwarded-for headers count only from a proxy you name. See [Security policy](SECURITY.md) and [encryption at rest](docs/SECURITY-encryption-at-rest.md).
513
257
 
514
- Hermes users get the same SLM skills and advisor roles through a native
515
- `plugin.yaml` package, plus `/slm <command>` and generated `/slm-<command>`
516
- aliases for the public CLI surface. The plugin is intentionally separate from
517
- the PyPI/npm runtime: install the owning SLM runtime first, then install the
518
- reviewed pinned pack from the `v4.1.19` GitHub release. It is additive and does
519
- not replace Hermes's selected memory provider or existing configuration. See
520
- [the Hermes integration guide](docs/hermes.md).
258
+ ## Benchmarks (V3)
521
259
 
522
- ### Keeping it current
260
+ These numbers come from the published **V3** architecture paper, which V4 still runs. They are not a fresh V4 package run.
523
261
 
524
- `pipx upgrade superlocalmemory` upgrades the **package**. It does not
525
- upgrade the plugin — those are separate channels, and the plugin is delivered by
526
- your editor. `slm doctor` reports both versions side by side and names the
527
- command that updates the one that is behind.
262
+ | V3 configuration | LoCoMo | Scope |
263
+ |---|---:|---|
264
+ | Mode A, retrieval + GPT-4.1-mini answers | 74.8% | 10 conversations, 1,276 questions |
265
+ | Mode A, raw (no LLM anywhere) | 60.4% | 10 conversations, 1,276 questions |
266
+ | Mode C, cloud embeddings + GPT-4.1-mini | 87.7% | 1 conversation (Conv-30), 81 questions |
528
267
 
529
- ```bash
530
- claude plugin marketplace update qualixar
531
- claude plugin update superlocalmemory@qualixar
532
- ```
268
+ Method, category breakdown and ablations: [docs/benchmarks.md](docs/benchmarks.md) and [arXiv:2603.14588](https://arxiv.org/abs/2603.14588). A LoCoMo score is comparable only when the subset, answer model and judge match.
533
269
 
534
- For the other three, replace the directory from the tag you are on.
270
+ ## Research
535
271
 
536
- ## Privacy controls and operating modes
272
+ Four arXiv preprints by Varun Pratap Bhardwaj describe SLM, newest first:
537
273
 
538
- <a id="privacy-controls-and-operating-modes"></a>
274
+ 1. **V4 (2026):** [SuperLocalMemory 4.0: The Governed Memory Operating System for AI Agents](https://arxiv.org/abs/2608.08253), with Garima Singh and Arun Pratap Bhardwaj. arXiv:2608.08253. Multi-scope isolation, role-based access, verified erasure, hash-chained audit and bi-temporal recall, with their measured cost.
275
+ 2. **V3.3 (2026):** [SuperLocalMemory V3.3: The Living Brain](https://arxiv.org/abs/2604.04514), arXiv:2604.04514. Biologically inspired forgetting, cognitive quantization, multi-channel retrieval without an LLM.
276
+ 3. **V3 (2026):** [SuperLocalMemory V3: Information-Geometric Foundations for Zero-LLM Enterprise Agent Memory](https://arxiv.org/abs/2603.14588), arXiv:2603.14588. Fisher-information retrieval, Langevin lifecycle, sheaf contradiction detection; the LoCoMo results above.
277
+ 4. **V2 (2026):** [SuperLocalMemory: Privacy-Preserving Multi-Agent Memory with Bayesian Trust Defense Against Memory Poisoning](https://arxiv.org/abs/2603.02240), arXiv:2603.02240.
539
278
 
540
- | Mode | What | Core memory path | Optional network behavior |
541
- |:----:|:-----|:-----------------|:--------------------------|
542
- | **A** | Local Guardian | Local processing | Model/dependency downloads, connectors, backup, the online answer check, and other enabled integrations may use the network |
543
- | **B** | Smart Local | Local Ollama enrichment | Same optional integrations as Mode A |
544
- | **C** | Provider-assisted | Local storage with provider calls | Query or enrichment content is sent to the configured provider |
279
+ Cite the V4 paper with [CITATION.cff](CITATION.cff) or GitHub's "Cite this repository" button:
545
280
 
546
- ```bash
547
- slm mode a # Local only (default)
548
- slm mode b # Local Ollama
549
- slm mode c # Cloud LLM
281
+ ```bibtex
282
+ @article{bhardwaj2026superlocalmemory,
283
+ title = {SuperLocalMemory 4.0: The Governed Memory Operating System for AI Agents},
284
+ author = {Bhardwaj, Varun Pratap and Singh, Garima and Bhardwaj, Arun Pratap},
285
+ journal = {arXiv preprint arXiv:2608.08253},
286
+ year = {2026}
287
+ }
550
288
  ```
551
289
 
552
- Mode A can run core memory operations without sending memory content to a cloud model provider. This does not disable optional connectors, cloud backup, proxy providers, dependency acquisition, or model downloads; review configuration and network policy for the deployment. Memory content leaves the machine in two opt-in cases, not one. The online answer check: off unless you turn it on and agree, in any mode, and while it is on each recall sends its question and top memories to the provider you chose — the dashboard and the MCP `get_mode` tool say so. Jev memory-kind typing: off unless the answer check is already using Jev AND you separately consent to kind typing — both must be the literal boolean `true` — and while it is on, a memory's content (not just the recall question) is sent to Jev to suggest its kind.
553
-
554
- SuperLocalMemory provides local storage, export/erasure commands, provenance, policy, and audit features that can support a compliance program. The software is not a legal certification, and compliance depends on the use case, operator, configuration, and surrounding systems.
290
+ ## Documentation
555
291
 
556
- Available controls include local export and erasure commands, hash-chained audit records, provenance tracking, and ABAC policy enforcement. Verify their behavior and retention boundaries for your deployment; see [docs/compliance.md](docs/compliance.md).
292
+ **Start:** [Getting started](docs/getting-started.md) · [IDE setup](docs/ide-setup.md) · [Linux install](docs/install-linux.md) · [Quick proof](docs/QUICK_PROOF.md) · [Migrating from V2](docs/migration-from-v2.md)
557
293
 
558
- ---
294
+ **Use:** [Recall](docs/recall.md) · [Memory kinds](docs/memory-kinds.md) · [Answer check](docs/answer-check.md) · [Auto-memory](docs/auto-memory.md) · [Shared memory](docs/shared-memory.md) · [Optimize](docs/optimize-overview.md)
559
295
 
560
- ## Teams and Enterprise Memory (V4)
296
+ **Reference:** [CLI](docs/cli-reference.md) · [MCP tools](docs/mcp-tools.md) · [Configuration](docs/configuration.md) · [Errors](docs/errors.md) · [Troubleshooting](docs/troubleshooting.md) · [Distributed deployment](docs/distributed-deployment.md) · [Privacy diagnostics](docs/privacy-diagnostics.md)
561
297
 
562
- V4 includes multi-user, multi-workspace controls for teams and organizations (introduced on the 3.8 line and retained). These are opt-in — personal single-user installs work exactly as before with no required login.
298
+ **Design:** [Architecture](docs/ARCHITECTURE.md) · [Score contract](docs/retrieval-score-contract.md) · [Compliance](docs/compliance.md) · [Benchmarks](docs/benchmarks.md)
563
299
 
564
- ### Users and roles
565
-
566
- SLM supports three role tiers within a workspace: **admin**, **member**, and **viewer**.
567
-
568
- | Role | Can read memory | Can write memory | Can manage users/config |
569
- |------|:---------------:|:----------------:|:-----------------------:|
570
- | admin | yes | yes | yes |
571
- | member | yes | yes | no |
572
- | viewer | yes | no | no |
573
-
574
- Roles are scoped per workspace (profile). A user may have different roles in different workspaces.
575
-
576
- ### Workspace isolation
577
-
578
- Each workspace (profile) is a fully isolated memory namespace. One workspace cannot read another's personal memories. Shared and global scopes are opt-in and still profile-bounded at the authorization layer.
579
-
580
- ### Login gate
581
-
582
- Enterprise deployments set `require_login = true` in configuration. With login enabled:
583
- - Every dashboard and API request requires an authenticated session.
584
- - First-run creates an admin account with a user-chosen password (no default credentials are shipped).
585
- - Session cookies use `HttpOnly` with optional `Secure` enforcement.
586
- - Personal installs run with `require_login = false` (loopback owner is trusted).
300
+ ## Upgrade
587
301
 
588
302
  ```bash
589
- slm config set security.require_login true # Enable for team/enterprise use
303
+ npm update -g superlocalmemory # or, in your activated venv: python -m pip install --upgrade superlocalmemory
304
+ slm restart && slm doctor
305
+ slm upgrade-hosts # preview IDE and plugin updates; nothing changes until you --apply
590
306
  ```
591
307
 
592
- ### Memory scopes
593
-
594
- | Scope | Who can recall | Set with |
595
- |-------|---------------|----------|
596
- | `personal` | Owner profile only (default) | `slm remember "..." --scope personal` |
597
- | `shared` | Named profiles the owner grants | `slm remember "..." --scope shared --shared-with profile-a,profile-b` |
598
- | `global` | Any authorized user on this machine | `slm remember "..." --scope global` |
599
-
600
- Recall is default-deny: shared and global facts are never returned unless the caller explicitly opts in (`--include-shared`, `--include-global`) or the scope policy allows it. See [docs/shared-memory.md](docs/shared-memory.md).
601
-
602
- ### GDPR and data governance
603
-
604
- SLM ships built-in controls that support GDPR compliance programs:
605
-
606
- - **Export** — full profile data export as a structured JSONL bundle
607
- - **Erasure** — profile deletion removes data from 30+ scoped tables; erasure is logged to the tamper-proof audit chain before any data is deleted
608
- - **Retention rules** — time-based policies (`indefinite`, `gdpr-30d`, `hipaa-7y`, `custom`) applied per profile
609
- - **Audit trail** — every store, recall, mutation, and erasure produces a hash-chained audit record
610
- - **PII redaction** — configurable automatic redaction before memory content crosses trust boundaries
308
+ Upgrades never move or delete memory; an update that changes the store takes a restore point first. Plugins update through your editor; see [host upgrades](docs/host-upgrades.md).
611
309
 
612
- These are engineering controls. Compliance depends on deployment configuration, use case, and operator responsibility. See [docs/compliance.md](docs/compliance.md).
310
+ ## Platform support
613
311
 
614
- ### EU AI Act mode verification
312
+ | | SuperLocalMemory | Jev (online check) | Laya (on-device check) |
313
+ |---|---|---|---|
314
+ | Apple Silicon macOS | Yes | Yes | Yes |
315
+ | 64-bit Windows | Yes | Yes | No (Laya uses Apple's MLX) |
316
+ | 64-bit Linux (x86-64, ARM64) | Yes | Yes | No |
317
+ | Intel Mac, 32-bit Windows | No prebuilt install | — | — |
615
318
 
616
- SLM includes a per-mode EU AI Act *technical posture* report (`EUAIActChecker`). It records facts the runtime can know — whether data is configured to stay local, whether generative AI is used, and that transparency / human-oversight need deployment evidence.
319
+ Python 3.12+, and Node 18+ for npm. Intel Mac and 32-bit Windows lack a build of the pinned security library (`cryptography` 50); older versions have high-severity advisories. The default embedding model (about 500 MB) downloads on first use or with `slm warmup`.
617
320
 
618
- **An operating mode does not establish legal compliance under the EU AI Act.** Legal risk classification and conformity assessment depend on intended purpose, affected persons, sector, deployment context, and operator controls. The checker therefore returns `compliant=None` / risk category `undetermined` for every mode and always requires deployment-context review. Mode A/B/C only change technical locality and enrichment options (for example Mode C may send content to a configured provider). See [docs/compliance.md](docs/compliance.md) and `src/superlocalmemory/core/modes.py`.
321
+ ## Contributing and license
619
322
 
620
- ### Deployment tiers
323
+ Issues and pull requests are welcome; start with [CONTRIBUTING.md](CONTRIBUTING.md). Report vulnerabilities through [SECURITY.md](SECURITY.md). Release notes are in [CHANGELOG.md](CHANGELOG.md).
621
324
 
622
- SLM ships one binary and is configured for the appropriate tier at install or post-install time.
623
-
624
- | Tier | Login gate | PII redaction | Retention | Audit |
625
- |------|:---------:|:-------------:|:---------:|:-----:|
626
- | **Personal** | off | off | off | on |
627
- | **Enterprise** | on | on | on | on |
628
-
629
- The installer or `slm reconfigure` sets the tier. Each setting is independently overridable at runtime. Full tier documentation: [docs/deployment-tiers.md](docs/deployment-tiers.md).
630
-
631
- ### RBAC and teams docs
632
-
633
- Full reference: [docs/rbac-teams.md](docs/rbac-teams.md) · [docs/deployment-tiers.md](docs/deployment-tiers.md)
325
+ SLM is licensed under [AGPL-3.0-or-later](LICENSE). For a commercial license, see [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md). Copyright (c) 2026 Varun Pratap Bhardwaj / [Qualixar](https://qualixar.com). Website: [superlocalmemory.com](https://www.superlocalmemory.com).
634
326
 
635
327
  ---
636
328
 
637
- ## Bounded Loops (V4)
638
-
639
- A bounded loop terminates only when an **independent gate** passes — a test
640
- suite exit code, a linter, a JSON-schema check, or an SLM-recall condition.
641
- The agent's own "I finished" message is recorded as advisory context and never
642
- used as the termination signal. Every lap is persisted to SLM memory under the
643
- tag `loop:<name>`, so runs are auditable and resumable across sessions.
644
-
645
- Three surfaces ship together:
329
+ <div align="center">
646
330
 
647
- | Surface | How you use it |
648
- |---------|---------------|
649
- | **CLI** | `slm loop demo` · `slm loop history [--name <n>]` · `slm loop show <run_id>` |
650
- | **Skill + agent** | `/slm-loop` skill with the `slm-loop-runner` agent — delegate a task that has a checkable acceptance condition |
651
- | **MCP tools** | `slm_loop_run` · `slm_loop_history` · `slm_loop_show` — call from any IDE or agent (available in the `code` and `full` MCP profiles) |
331
+ ### Built by Qualixar
652
332
 
653
- ```bash
654
- # Run the built-in convergence demo (no API key needed)
655
- slm loop demo
656
-
657
- # Inspect recorded runs
658
- slm loop history --name convergence-demo
659
- slm loop show <run_id>
660
- ```
333
+ **SuperLocalMemory** is made by [Varun Pratap Bhardwaj](https://varunpratap.com) at [Qualixar](https://qualixar.com), where the work is AI Reliability Engineering: memory, contracts, tests and loops that make AI agents dependable enough to trust with real work.
661
334
 
662
- Loop laps are stored as ordinary SLM memories and are visible in the dashboard
663
- under Knowledge Graph and Memories (filter by tag `loop:<name>`) and in the
664
- Multi-Agent Memory workspace.
335
+ [![GitHub stars](https://img.shields.io/github/stars/qualixar/superlocalmemory?style=social)](https://github.com/qualixar/superlocalmemory/stargazers)
336
+ [![PyPI downloads](https://img.shields.io/pepy/dt/superlocalmemory?label=PyPI%20downloads)](https://pepy.tech/project/superlocalmemory)
337
+ [![npm downloads](https://img.shields.io/npm/dt/superlocalmemory?label=npm%20downloads)](https://www.npmjs.com/package/superlocalmemory)
338
+ [![Follow on X](https://img.shields.io/badge/follow-%40varunPbhardwaj-000000?logo=x)](https://x.com/varunPbhardwaj)
665
339
 
666
- ---
667
-
668
- ## Framework Adapters (V4)
340
+ If SLM keeps your agents from forgetting, **[star the repository](https://github.com/qualixar/superlocalmemory)**: it is how other developers find it.
669
341
 
670
- SLM ships nine adapters under `ide/integrations/`: LangGraph, Semantic Kernel,
671
- Microsoft Agent Framework, LangChain, LlamaIndex, CrewAI, AutoGen, Google ADK,
672
- and OpenAI Agents. Each wires SLM as memory and history without replacing the
673
- framework runtime; its directory contains installation/configuration guidance.
674
- Pydantic AI is not included because it does not expose a formal external-memory
675
- interface.
342
+ **More from Qualixar:** [Qualixar OS](https://github.com/qualixar/qualixar-os) · [SkillFortify](https://github.com/qualixar/skillfortify) · [SLM Mesh](https://github.com/qualixar/slm-mesh) · [AgentAssert](https://github.com/qualixar/agentassert-abc) · [AgentAssay](https://github.com/qualixar/agentassay) · [Bounded Loops](https://github.com/qualixar/bounded-loops) · [Jev Decision Layer](https://github.com/qualixar/jev-decision-layer) · [SLM MCP Hub](https://github.com/qualixar/slm-mcp-hub)
676
343
 
677
- ---
344
+ [superlocalmemory.com](https://www.superlocalmemory.com) · [qualixar.com](https://qualixar.com) · [Papers](#research) · [LinkedIn](https://www.linkedin.com/in/varun-pratap-bhardwaj-7ab63742/) · [X](https://x.com/varunPbhardwaj)
678
345
 
679
- ## Advanced
680
-
681
- | Topic | Link |
682
- |:------|:-----|
683
- | Full optimize docs | [docs/optimize-overview.md](docs/optimize-overview.md) · [docs/optimize-cli.md](docs/optimize-cli.md) · [docs/optimize-config.md](docs/optimize-config.md) |
684
- | Distributed deployment | [docs/distributed-deployment.md](docs/distributed-deployment.md) |
685
- | Multi-machine mesh | [docs/multi-machine.md](docs/multi-machine.md) |
686
- | Auto-memory hooks | [docs/auto-memory.md](docs/auto-memory.md) |
687
- | Architecture + math | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) |
688
- | Published benchmark evidence | [docs/benchmarks.md](docs/benchmarks.md) |
689
- | CLI reference | [docs/cli-reference.md](docs/cli-reference.md) |
690
- | MCP tools reference | [docs/mcp-tools.md](docs/mcp-tools.md) |
691
- | Optional Bounded Loops bridge | [docs/bounded-loops-bridge.md](docs/bounded-loops-bridge.md) |
692
- | Getting started | [docs/getting-started.md](docs/getting-started.md) |
693
- | IDE setup (15 configs) | [docs/ide-setup.md](docs/ide-setup.md) |
694
- | Teams, users, and RBAC | [docs/rbac-teams.md](docs/rbac-teams.md) |
695
- | Deployment tiers | [docs/deployment-tiers.md](docs/deployment-tiers.md) |
696
- | pi.dev integration | [docs/pi-dev-integration.md](docs/pi-dev-integration.md) |
697
- | Skill evolution | [docs/skill-evolution.md](docs/skill-evolution.md) |
698
- | V2 migration | [docs/migration-from-v2.md](docs/migration-from-v2.md) |
699
- | Configuration | [docs/configuration.md](docs/configuration.md) |
700
- | Retrieval score contract | [docs/retrieval-score-contract.md](docs/retrieval-score-contract.md) |
701
- | Wiki | [github.com/qualixar/superlocalmemory/wiki](https://github.com/qualixar/superlocalmemory/wiki) |
702
-
703
- Open the web dashboard with `slm dashboard`; workspaces appear only when their
704
- runtime capability is enabled and healthy. See [CHANGELOG.md](CHANGELOG.md) for
705
- the complete release history.
706
- ## Research Papers
707
-
708
- SuperLocalMemory has a V4 [arXiv preprint](https://arxiv.org/abs/2608.08253) with [Zenodo archive](https://zenodo.org/records/21853302) and [DOI](https://doi.org/10.5281/zenodo.21853302), plus [The Living Brain (V3.3)](https://arxiv.org/abs/2604.04514), [Information-Geometric Foundations (V3)](https://arxiv.org/abs/2603.14588), and [Trust & Behavioral Foundations (V2)](https://arxiv.org/abs/2603.02240).
709
-
710
- Use the citation metadata on the linked arXiv or Zenodo records.
711
-
712
- ## Support / License / Qualixar
713
- See [CONTRIBUTING.md](CONTRIBUTING.md), the [Wiki](https://github.com/qualixar/superlocalmemory/wiki), and [LICENSE](LICENSE) (AGPL-3.0). For commercial licensing, see [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md) or contact varun.pratap.bhardwaj@gmail.com.
714
- Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar · [Qualixar](https://qualixar.com) · [research archive](https://huggingface.co/Qualixar). Acknowledgments: [Everything Claude Code](https://github.com/affaan-m/everything-claude-code) informed skill observation; [HKUDS/OpenSpace](https://github.com/HKUDS/OpenSpace) informed skill-evolution verification.
715
-
716
- ## Star This Project
717
-
718
- If this project solves a real problem for you, **please star the repo** — it helps other developers discover Qualixar and signals that the AI agent reliability community is growing.
719
-
720
- [![Star SuperLocalMemory on GitHub](https://img.shields.io/github/stars/qualixar/superlocalmemory?style=for-the-badge&logo=github&label=Star%20on%20GitHub)](https://github.com/qualixar/superlocalmemory)
346
+ </div>