superlocalmemory 4.1.18 → 4.1.20

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 (49) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/CHANGELOG.md +183 -0
  3. package/README.md +132 -661
  4. package/bin/slm-npm +1 -1
  5. package/ide/configs/cursor-mcp.json +4 -1
  6. package/package.json +1 -1
  7. package/plugin/.claude-plugin/plugin.json +2 -2
  8. package/plugin/.mcp.json +7 -2
  9. package/plugin/CLAUDE.md +4 -4
  10. package/plugin/agents/slm-governance-advisor.md +1 -1
  11. package/plugin/agents/slm-loop-runner.md +1 -1
  12. package/plugin/agents/slm-memory-advisor.md +1 -1
  13. package/plugin/agents/slm-optimize-advisor.md +1 -1
  14. package/plugin/hooks/hooks.json +9 -9
  15. package/plugin/requirements.txt +1 -1
  16. package/plugin/scripts/ensure-venv.bat +5 -5
  17. package/plugin/scripts/ensure-venv.sh +27 -5
  18. package/plugin/scripts/slm-launch +60 -68
  19. package/plugin/scripts/slm-launch.bat +10 -1
  20. package/plugin/scripts/slm-resolve.sh +128 -0
  21. package/plugin/scripts/slm-run +76 -0
  22. package/plugin/skills/slm-cache/SKILL.md +1 -1
  23. package/plugin/skills/slm-compress/SKILL.md +1 -1
  24. package/plugin/skills/slm-governance/SKILL.md +1 -1
  25. package/plugin/skills/slm-graph/SKILL.md +1 -1
  26. package/plugin/skills/slm-loop/SKILL.md +1 -1
  27. package/plugin/skills/slm-mesh/SKILL.md +1 -1
  28. package/plugin/skills/slm-profile/SKILL.md +4 -4
  29. package/plugin/skills/slm-recall/SKILL.md +1 -1
  30. package/plugin/skills/slm-remember/SKILL.md +1 -1
  31. package/plugin/skills/slm-scope/SKILL.md +1 -1
  32. package/plugin/skills/slm-session/SKILL.md +1 -1
  33. package/plugin/skills/slm-status/SKILL.md +1 -1
  34. package/plugin-src/agents/slm-memory-advisor.md +1 -1
  35. package/plugin-src/agents/slm-optimize-advisor.md +1 -1
  36. package/plugin-src/rules/AGENTS.md +22 -11
  37. package/plugin-src/skills/slm-cache/SKILL.md +1 -1
  38. package/plugin-src/skills/slm-compress/SKILL.md +1 -1
  39. package/plugin-src/skills/slm-governance/SKILL.md +1 -1
  40. package/plugin-src/skills/slm-graph/SKILL.md +1 -1
  41. package/plugin-src/skills/slm-loop/SKILL.md +1 -1
  42. package/plugin-src/skills/slm-mesh/SKILL.md +1 -1
  43. package/plugin-src/skills/slm-profile/SKILL.md +4 -4
  44. package/plugin-src/skills/slm-recall/SKILL.md +1 -1
  45. package/plugin-src/skills/slm-remember/SKILL.md +1 -1
  46. package/plugin-src/skills/slm-scope/SKILL.md +1 -1
  47. package/plugin-src/skills/slm-session/SKILL.md +1 -1
  48. package/plugin-src/skills/slm-status/SKILL.md +1 -1
  49. package/scripts/postinstall.js +47 -16
package/README.md CHANGED
@@ -1,720 +1,191 @@
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.18 — local-first memory for AI agents</h1>
8
+ # SuperLocalMemory: 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 lose what they learned when a session ends. SuperLocalMemory (SLM) gives them one long-term memory that lives on your machine, and it can tell you when it doesn't have the answer 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>
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.
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)**
17
-
18
- **[Install](https://www.superlocalmemory.com/install)** · **[Product walkthrough](https://www.superlocalmemory.com/demo)** · **[CLI proof](docs/QUICK_PROOF.md)** · **[Release notes](CHANGELOG.md)**
12
+ [![PyPI](https://img.shields.io/pypi/v/superlocalmemory)](https://pypi.org/project/superlocalmemory/)
13
+ [![npm](https://img.shields.io/npm/v/superlocalmemory)](https://www.npmjs.com/package/superlocalmemory)
14
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue)](pyproject.toml)
15
+ [![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue)](LICENSE)
16
+ [![arXiv](https://img.shields.io/badge/arXiv-2608.08253-b31b1b)](https://arxiv.org/abs/2608.08253)
19
17
 
20
18
  ```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
19
+ npm install -g superlocalmemory # primary route (Node 18+, Python 3.12+); or: pipx install superlocalmemory
20
+ slm setup # pick Mode A to keep everything on this machine
21
+ slm connect cursor # or claude-code, codex, windsurf, zed ... 12 IDEs
26
22
  ```
27
23
 
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).
30
-
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.
32
-
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.
34
-
35
- ## Governance, architecture and research
36
-
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>
42
-
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>
47
-
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.18</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.18-Current_Release-2ea44f?style=for-the-badge&logo=checkmarx&logoColor=white" alt="v4.1.18 — 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` exposes **31** tools for installed coding agents; `full` **49**; `power` **61**; `whole` **94** (all registered). Also `core` (16), `mesh` (8), and the unrestricted default surface (49 with mesh enabled).
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
164
- ```
165
-
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.
203
-
204
- ### Watch the product walkthrough
205
-
206
- [![Watch the SuperLocalMemory demo](https://img.youtube.com/vi/PMWW_ypsL60/hqdefault.jpg)](https://www.youtube.com/watch?v=PMWW_ypsL60)
24
+ 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).
207
25
 
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.
26
+ Runs on Apple Silicon macOS, 64-bit Windows and 64-bit Linux; Intel Mac and 32-bit Windows are not supported (the pinned `cryptography` has no build for them). No Docker, no required graph database, no API key.
209
27
 
210
- ### Published LoCoMo evidence (V3 architecture, carried into V4)
28
+ ## 30-second example
211
29
 
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.
30
+ ```console
31
+ $ slm remember "We deploy the API blue-green; rollback is a DNS flip." --kind decision
32
+ Queryable ✓ 1 facts (operation=ebca8e80...).
33
+ $ slm remember "Always run the migration dry-run before a release." --kind rule
34
+ $ slm remember "Staging DB is Postgres 16 on port 5433."
216
35
 
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. |
36
+ $ slm recall "how do we roll back the API"
37
+ 1. [0.67] We deploy the API blue-green; rollback is a DNS flip.
38
+ 2. [0.53] Always run the migration dry-run before a release.
39
+ 3. [0.52] Staging DB is Postgres 16 on port 5433.
222
40
 
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**.
41
+ $ slm recall "what did we decide about rollback" --kind decision
42
+ 1. [0.54] We deploy the API blue-green; rollback is a DNS flip.
229
43
 
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.
234
-
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.
269
-
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
44
+ $ slm remember "Staging DB moved to Postgres 17 on port 5434." --replaces 0f57a17af3dd46e5
45
+ Replaced ✓ 1 fact(s) of 0f57a17af3dd46e5.
46
+ To undo, run:
47
+ slm review-correction ... rollback 1
48
+ $ slm recall "which port does staging postgres use"
49
+ 1. [0.68] Staging DB moved to Postgres 17 on port 5434.
275
50
  ```
276
51
 
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.
283
-
284
- ---
285
-
286
- ## Three Pillars
287
-
288
- ### Memory
289
-
290
- <a id="dual-interface-mcp--cli"></a>
291
-
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.
308
-
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.
313
-
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.
319
-
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).
327
-
328
- The retrieval/lifecycle implementation includes three mathematical layers that
329
- can run without a cloud LLM:
330
-
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.
334
-
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.
338
-
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)**.
340
-
341
- <a id="multilingual-embedding-support"></a>
342
-
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.
344
-
345
- ### Cache + Compress
346
-
347
- <a id="three-surfaces-proxy--mcp-tools--skill"></a>
348
-
349
- One engine, three ways in — choose the surface that fits your setup:
350
-
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 |
356
-
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.
358
-
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)**
364
-
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.
52
+ Real output from a fresh Mode A install, trimmed. The id comes from `slm recall --json`. Scores are ranking signals, not probabilities. Right after a start, the embedding model is still loading: recall still answers from keyword and time channels and says `Incomplete search` until the model is ready.
369
53
 
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.
54
+ ## Why SuperLocalMemory
371
55
 
372
- **Savings dashboard:** `slm optimize savings --since 7` — live USD/INR/tokens saved. Hot-reload config, fail-open.
56
+ - **Local-first by default.** Memory lives in SQLite on your disk. 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.
57
+ - **It says "I don't have that."** The optional [answer check](docs/answer-check.md) judges whether the top results actually answer the question, on your Mac or through Jev, and flags it when they don't.
58
+ - **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`). Replaced facts stop being served as current.
59
+ - **One memory, every agent.** The same store serves Claude Code, Codex, Cursor, Windsurf, Hermes and any MCP client, so a decision saved in one tool is there in the next.
373
60
 
374
- ### SLM-Mesh (cross-session / cross-machine coordination)
61
+ SLM is part of Qualixar's AI Reliability Engineering work: agent memory that is observable, bounded and honest about what it doesn't know.
375
62
 
376
- <a id="multi-machine-mesh-coordination"></a>
377
- <a id="slm-mesh-cross-session--cross-machine-coordination"></a>
63
+ ## Works with your agents
378
64
 
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.
380
-
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
- ```
392
-
393
- Eight **SLM-Mesh** MCP tools: `mesh_summary`, `mesh_peers`, `mesh_send`, `mesh_inbox`, `mesh_state`, `mesh_lock`, `mesh_events`, `mesh_status`.
394
-
395
- Full docs: [docs/multi-machine.md](docs/multi-machine.md) · [docs/distributed-deployment.md](docs/distributed-deployment.md)
396
-
397
- ---
398
-
399
- ## Install Paths
400
-
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.
402
-
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.11+; 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, isolated SLM_DATA_DIR, additive — 34-tool code profile. 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 |
411
-
412
- After any install path: `slm setup` → `slm doctor` → `slm warmup` (optional, pre-downloads ~500MB embedding model).
413
-
414
- ### Upgrading an existing installation
415
-
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:
419
-
420
- ```bash
421
- slm upgrade-hosts
422
- ```
423
-
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 |
65
+ | Surface | What you get | Docs |
66
+ |---|---|---|
67
+ | 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) |
68
+ | `slm connect <ide>` | Writes the MCP config for 12 IDEs: Antigravity, Claude Code, Claude Desktop, Codex, Continue, Cursor, Gemini CLI, JetBrains, OpenCode, VS Code / Copilot, Windsurf, Zed | [IDE setup](docs/ide-setup.md) |
69
+ | MCP | stdio (`slm mcp`) or HTTP at `http://127.0.0.1:8765/mcp/`, with tool profiles from 8 to 101 tools | [MCP tools](docs/mcp-tools.md) |
70
+ | Framework adapters | LangGraph, LangChain, LlamaIndex, CrewAI, AutoGen, Semantic Kernel, Microsoft Agent Framework, Google ADK, OpenAI Agents | [Framework adapters](docs/framework-adapters.md) |
71
+ | Python SDK and HTTP API | `MemoryEngine` in your own code; a local REST API behind the dashboard | [API reference](docs/api-reference.md) |
72
+ | Auto-capture hooks | `slm hooks install` for Claude Code, `--agent codex` for Codex | [Auto-memory](docs/auto-memory.md) |
73
+ | Other computers | `slm remote`: HTTPS listener with named, revocable keys for agents on another machine | [Remote access](docs/distributed-deployment.md#remote-access-over-tls-4120) |
438
74
 
439
- ---
75
+ On Claude Code, `slm connect claude-code` points you to the plugin: `claude plugin marketplace add qualixar/superlocalmemory`, then `claude plugin install superlocalmemory@qualixar`.
440
76
 
441
- ## MCP + Profiles
77
+ ## Everything SLM does
442
78
 
443
- SLM supports two MCP transports:
79
+ | Capability | What you get | Docs |
80
+ |---|---|---|
81
+ | Hybrid recall | Semantic, keyword (BM25), temporal, associative (Hopfield) and spreading-activation channels, fused and reranked. `slm trace` shows each channel's score | [Recall](docs/recall.md) |
82
+ | Answer check | A second step that says whether the results answer the question. Laya on your Mac or Jev online, one at a time; a dashboard tab with history and the "I don't have that" rate | [Answer check](docs/answer-check.md) |
83
+ | 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) |
84
+ | 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) |
85
+ | Replace and correct | `--replaces <id>` retires an old fact, kept and undoable. Edits go through reviewed corrections with rollback | [Corrections](docs/reviewed-corrections.md) |
86
+ | Time travel | `--as-of`, `--known-as-of`, `--valid-at`, and `--window 7d` or a date range | [Recall](docs/recall.md#time-travel) |
87
+ | Recall filters | `--project`, `--saved-by`, `--about`, `--kind`; applied before the answer check | [Recall](docs/recall.md#narrowing-a-recall) |
88
+ | Summaries | `slm summary session`, `day` or `project` | [Recall](docs/recall.md#summaries) |
89
+ | Knowledge graph | Entities, aliases, scenes and timelines; Entity Explorer in the dashboard | [Architecture](docs/ARCHITECTURE.md) |
90
+ | Code graph | Build a graph of a repo, then ask for blast radius, review context and code search by meaning | [MCP tools](docs/mcp-tools.md) |
91
+ | Learning | Ranking adapts to what you use; learned patterns become soft prompts; opt-in skill evolution | [Skill evolution](docs/skill-evolution.md) |
92
+ | Cache and compress | Exact cache and safe compression through a proxy (`slm wrap claude`), MCP tools or a skill; `slm optimize savings` | [Optimize](docs/optimize-overview.md) |
93
+ | Multi-agent and mesh | Each memory records which agent saved it. SLM-Mesh gives sessions and machines messages, locks and shared state | [Multi-machine](docs/multi-machine.md) |
94
+ | 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) |
95
+ | Bounded loops | `slm loop`: repeat a task until an independent check passes, with every lap stored as memory | [CLI reference](docs/cli-reference.md#bounded-loops-v380) |
96
+ | Modes and providers | A: local. B: local Ollama. C: a cloud provider. Any OpenAI-compatible embedder, including multilingual models | [Configuration](docs/configuration.md) |
97
+ | Backup and restore | Cloud backup to GitHub or Google Drive, encrypted before upload. Restore points before each store update, and a safe path back to the previous version | [Cloud backup](docs/cloud-backup.md), [Restore points](docs/restore-points.md) |
98
+ | Evidence export | Checksummed JSONL bundles: `slm evidence export`, `verify`, `import` | [CLI reference](docs/cli-reference.md#data-and-evidence) |
99
+ | Teams and governance | Admin, member and viewer roles; sign-in; `slm gdpr export`, `erase` and `verify`; retention rules; hash-chained audit log | [Teams](docs/rbac-teams.md), [Compliance](docs/compliance.md) |
100
+ | Dashboard | `slm dashboard`: 16 panes, including Answer Check, Brain, Knowledge Graph, Memories, Health, Governance, Optimize, Mesh Peers and Cloud Backup | [Dashboard](docs/DASHBOARD-COVERAGE.md) |
101
+ | Operations | `slm doctor`, `status`, `health`, `restart`, `ops`; stuck operations listed and resolved | [Troubleshooting](docs/troubleshooting.md) |
102
+ | Scale Engine | Optional CozoDB and LanceDB copies, promoted only after they match SQLite | [Scale Engine](docs/scale-engine.md) |
103
+
104
+ ## MCP memory server: tool profiles
105
+
106
+ Pick how many tools your agent sees with `SLM_MCP_PROFILE`. Counts come from the server itself.
107
+
108
+ | Profile | Tools | For |
109
+ |---|---:|---|
110
+ | `core` | 18 | Remember, recall, sessions, optimize, correction review |
111
+ | `code` | 38 | Core plus code graph, memory kinds, Brain evidence, profile switching, bounded loops |
112
+ | `mesh` | 8 | SLM-Mesh coordination only |
113
+ | `full` (and unset) | 54 | Memory, kinds, Brain, optimize, skill evolution, mesh, loops |
114
+ | `power` | 66 | Full plus administration, lifecycle and diagnostics |
115
+ | `whole` | 101 | Every registered tool |
444
116
 
445
- **HTTP (recommended):**
446
117
  ```json
447
118
  { "mcpServers": { "superlocalmemory": { "type": "http", "url": "http://127.0.0.1:8765/mcp/" } } }
448
119
  ```
449
- Or: `claude mcp add --transport http superlocalmemory http://127.0.0.1:8765/mcp/`
450
120
 
451
- **stdio (universal fallback):**
452
- ```json
453
- { "mcpServers": { "superlocalmemory": { "command": "slm", "args": ["mcp"] } } }
454
- ```
121
+ For stdio clients use `{"command": "slm", "args": ["mcp"]}`. An unknown profile name stops startup and lists the valid ones.
455
122
 
456
- ### MCP Profiles
123
+ ## Answer Check: memory that says "I don't have that"
457
124
 
458
- Control tool surface via `SLM_MCP_PROFILE`:
125
+ Relevance and "does this answer it" are different questions. The closest memory on file can still be the wrong answer, and an agent that treats it as the answer makes things up with confidence.
459
126
 
460
- | Profile | Tools | Use case |
461
- |:--------|:-----:|:---------|
462
- | `core` | 16 | Memory, session, optimize, and correction review |
463
- | `code` | 31 | Core + portable Brain evidence + code-graph tools + profile switching + bounded loops |
464
- | `mesh` | 8 | SLM-Mesh only — multi-session / multi-machine coordination |
465
- | `full` | 49 | Memory + portable Brain evidence + optimize + evolution + mesh + bounded loops |
466
- | `power` | 61 | Full + administration, lifecycle, and diagnostics |
467
- | `whole` | 94 | Every registered MCP tool |
127
+ Answer check adds a second step after ranking. It reads the top results and decides whether they answer the question. Choose one, in **Settings → Answer check** in the dashboard:
468
128
 
469
- **Precedence:** `ALL` > `TOOLS` > `PROFILE` > `default`
129
+ - **On this Mac (Laya):** a small model, about 1.1 GB, on Apple Silicon. Nothing leaves the machine.
130
+ - **Online with Jev:** TypeSafe or OpenRouter, with your own key and an explicit consent box. Sends the question and the top 3 memories.
131
+ - **Off.**
470
132
 
471
- ```bash
472
- export SLM_MCP_PROFILE=full # or core / code / mesh / power / whole
473
- slm mcp
474
- ```
133
+ Only one runs at a time, and nothing turns the online option on by itself. Each option shows whether it is ready, has a **Test** button, and is applied live with one **Save**. Results are never hidden: recall returns them with `abstained` and `abstention_reason` set, and your agent decides what to do. The same question gets the same verdict on a repeat. The **Answer Check** tab shows each verdict, its timing against the 3-second recall ceiling, and how often it said "I don't have that" over 24 hours, 7 days or 30 days. The history keeps outcomes and timings, never your questions or memory text.
475
134
 
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.
135
+ ## Privacy and security
479
136
 
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).
137
+ What leaves your machine, and when:
481
138
 
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.
139
+ | Data | Leaves only when |
140
+ |---|---|
141
+ | Recall question and top 3 memories | You turn on the online answer check (Jev) and tick its consent |
142
+ | Question and top 20 memories | You also turn on Jev reordering, which has its own notice |
143
+ | Memory text | You choose Mode C, a cloud embedder or reranker, an Ollama on another computer, or Jev kind typing (its own consent) |
144
+ | Encrypted backup files | You connect GitHub or Google Drive backup. Files are encrypted before upload |
145
+ | Mesh messages | You configure SLM-Mesh peers |
489
146
 
490
- **Five surfaces, one source.** Everything below is generated from `plugin-src/`,
491
- so no surface can quietly fall behind another:
147
+ Model downloads (embedding model, Laya) fetch files but send no memory content. Credentials found in memory text are redacted on every outbound path, and a provider's key goes only to that provider.
492
148
 
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 |
149
+ Since 4.1.20, other computers must authenticate to read memory, not only to write it. SLM ignores forwarded-for headers unless you name a trusted proxy, so a proxy can't make a remote caller look local. SLM's own outbound requests never follow redirects, and the remote listener never answers with one, so a key is never sent through a redirect. Remote callers never see this computer's paths, account or environment outside the memories themselves. Remote agents connect through `slm remote`: TLS only, one named key per client, each key bound to one profile (its holder reads that profile's memories in full and nothing else), read-only keys available, and `slm remote keys revoke <name>` takes effect on the next request. See [Remote access](docs/distributed-deployment.md#remote-access-over-tls-4120), [Security policy](SECURITY.md) and [encryption at rest](docs/SECURITY-encryption-at-rest.md).
500
150
 
501
- ### What you get
151
+ ## Benchmarks (V3)
502
152
 
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.
153
+ These numbers come from the published **V3** architecture paper, which V4 still runs. They are not a fresh V4 package run.
511
154
 
512
- ### Hermes
155
+ | V3 configuration | LoCoMo | Scope |
156
+ |---|---:|---|
157
+ | Mode A, retrieval + GPT-4.1-mini answers | 74.8% | 10 conversations, 1,276 questions |
158
+ | Mode A, raw (no LLM anywhere) | 60.4% | 10 conversations, 1,276 questions |
159
+ | Mode C, cloud embeddings + GPT-4.1-mini | 87.7% | 1 conversation (Conv-30), 81 questions |
513
160
 
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.13` 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).
161
+ 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.
521
162
 
522
- ### Keeping it current
163
+ ## Research
523
164
 
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.
165
+ SLM's design is described in the V4 paper, [SuperLocalMemory 4.0: The Governed Memory Operating System for AI Agents](https://arxiv.org/abs/2608.08253) (DOI [10.5281/zenodo.21853302](https://doi.org/10.5281/zenodo.21853302)). Earlier preprints: [information-geometric foundations, V3](https://arxiv.org/abs/2603.14588), [the Living Brain, V3.3](https://arxiv.org/abs/2604.04514), and [trust and behavioural foundations, V2](https://arxiv.org/abs/2603.02240). Cite it with [CITATION.cff](CITATION.cff) or GitHub's "Cite this repository" button:
528
166
 
529
- ```bash
530
- claude plugin marketplace update qualixar
531
- claude plugin update superlocalmemory@qualixar
167
+ ```bibtex
168
+ @article{bhardwaj2026superlocalmemory,
169
+ title = {SuperLocalMemory 4.0: The Governed Memory Operating System for AI Agents},
170
+ author = {Bhardwaj, Varun Pratap and Singh, Garima and Bhardwaj, Arun Pratap},
171
+ journal = {arXiv preprint arXiv:2608.08253},
172
+ year = {2026},
173
+ doi = {10.5281/zenodo.21853302}
174
+ }
532
175
  ```
533
176
 
534
- For the other three, replace the directory from the tag you are on.
535
-
536
- ## Privacy controls and operating modes
537
-
538
- <a id="privacy-controls-and-operating-modes"></a>
539
-
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 |
177
+ ## Upgrade
545
178
 
546
179
  ```bash
547
- slm mode a # Local only (default)
548
- slm mode b # Local Ollama
549
- slm mode c # Cloud LLM
180
+ pipx upgrade superlocalmemory # or: npm update -g superlocalmemory
181
+ slm restart && slm doctor
182
+ slm upgrade-hosts # preview IDE and plugin updates; nothing changes until you --apply
550
183
  ```
551
184
 
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. The online answer check is the one exception that sends memory content: 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.
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.
555
-
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).
557
-
558
- ---
559
-
560
- ## Teams and Enterprise Memory (V4)
561
-
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.
185
+ Upgrades never move or delete memory, and an update that changes the store takes a restore point first. Plugin updates follow your editor; see [host upgrades](docs/host-upgrades.md).
563
186
 
564
- ### Users and roles
187
+ ## Contributing and license
565
188
 
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).
587
-
588
- ```bash
589
- slm config set security.require_login true # Enable for team/enterprise use
590
- ```
591
-
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
611
-
612
- These are engineering controls. Compliance depends on deployment configuration, use case, and operator responsibility. See [docs/compliance.md](docs/compliance.md).
613
-
614
- ### EU AI Act mode verification
615
-
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.
617
-
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`.
619
-
620
- ### Deployment tiers
621
-
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)
634
-
635
- ---
636
-
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:
646
-
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) |
652
-
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
- ```
189
+ 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).
661
190
 
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.
665
-
666
- ---
667
-
668
- ## Framework Adapters (V4)
669
-
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.
676
-
677
- ---
678
-
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)
191
+ 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).