superlocalmemory 4.1.24 → 4.2.2

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 (162) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/CHANGELOG.md +387 -0
  3. package/README.md +235 -269
  4. package/antigravity-plugin/_GENERATED.md +2 -1
  5. package/antigravity-plugin/agents/slm-governance-advisor.md +10 -4
  6. package/antigravity-plugin/agents/slm-loop-runner.md +1 -1
  7. package/antigravity-plugin/agents/slm-memory-advisor.md +8 -4
  8. package/antigravity-plugin/agents/slm-optimize-advisor.md +1 -1
  9. package/antigravity-plugin/plugin.json +1 -1
  10. package/antigravity-plugin/skills/slm-bot-memory/SKILL.md +36 -1
  11. package/antigravity-plugin/skills/slm-cache/SKILL.md +1 -1
  12. package/antigravity-plugin/skills/slm-compress/SKILL.md +1 -1
  13. package/antigravity-plugin/skills/slm-getting-started-bot/SKILL.md +58 -7
  14. package/antigravity-plugin/skills/slm-governance/SKILL.md +61 -5
  15. package/antigravity-plugin/skills/slm-graph/SKILL.md +1 -1
  16. package/antigravity-plugin/skills/slm-loop/SKILL.md +22 -2
  17. package/antigravity-plugin/skills/slm-media/SKILL.md +340 -0
  18. package/antigravity-plugin/skills/slm-mesh/SKILL.md +110 -8
  19. package/antigravity-plugin/skills/slm-profile/SKILL.md +17 -12
  20. package/antigravity-plugin/skills/slm-recall/SKILL.md +91 -3
  21. package/antigravity-plugin/skills/slm-remember/SKILL.md +6 -1
  22. package/antigravity-plugin/skills/slm-scope/SKILL.md +1 -1
  23. package/antigravity-plugin/skills/slm-session/SKILL.md +1 -1
  24. package/antigravity-plugin/skills/slm-status/SKILL.md +48 -2
  25. package/antigravity-plugin/skills/slm-web-access/SKILL.md +92 -6
  26. package/bin/slm-npm +1 -1
  27. package/codex-plugin/.claude-plugin/plugin.json +1 -1
  28. package/codex-plugin/.codex-plugin/plugin.json +1 -1
  29. package/codex-plugin/AGENTS.md +38 -9
  30. package/codex-plugin/README.md +8 -6
  31. package/codex-plugin/_GENERATED.md +2 -1
  32. package/codex-plugin/agents/slm-governance-advisor.md +10 -4
  33. package/codex-plugin/agents/slm-loop-runner.md +1 -1
  34. package/codex-plugin/agents/slm-memory-advisor.md +8 -4
  35. package/codex-plugin/agents/slm-optimize-advisor.md +1 -1
  36. package/codex-plugin/skills/slm-bot-memory/SKILL.md +36 -1
  37. package/codex-plugin/skills/slm-cache/SKILL.md +1 -1
  38. package/codex-plugin/skills/slm-compress/SKILL.md +1 -1
  39. package/codex-plugin/skills/slm-getting-started-bot/SKILL.md +58 -7
  40. package/codex-plugin/skills/slm-governance/SKILL.md +61 -5
  41. package/codex-plugin/skills/slm-graph/SKILL.md +1 -1
  42. package/codex-plugin/skills/slm-loop/SKILL.md +22 -2
  43. package/codex-plugin/skills/slm-media/SKILL.md +340 -0
  44. package/codex-plugin/skills/slm-mesh/SKILL.md +110 -8
  45. package/codex-plugin/skills/slm-profile/SKILL.md +17 -12
  46. package/codex-plugin/skills/slm-recall/SKILL.md +91 -3
  47. package/codex-plugin/skills/slm-remember/SKILL.md +6 -1
  48. package/codex-plugin/skills/slm-scope/SKILL.md +1 -1
  49. package/codex-plugin/skills/slm-session/SKILL.md +1 -1
  50. package/codex-plugin/skills/slm-status/SKILL.md +48 -2
  51. package/codex-plugin/skills/slm-web-access/SKILL.md +92 -6
  52. package/copilot-plugin/.github/agents/slm-governance-advisor.agent.md +11 -5
  53. package/copilot-plugin/.github/agents/slm-loop-runner.agent.md +2 -2
  54. package/copilot-plugin/.github/agents/slm-memory-advisor.agent.md +9 -5
  55. package/copilot-plugin/.github/agents/slm-optimize-advisor.agent.md +2 -2
  56. package/copilot-plugin/.github/copilot-instructions.md +14 -5
  57. package/copilot-plugin/.github/prompts/slm-bot-memory.prompt.md +35 -2
  58. package/copilot-plugin/.github/prompts/slm-cache.prompt.md +2 -2
  59. package/copilot-plugin/.github/prompts/slm-compress.prompt.md +2 -2
  60. package/copilot-plugin/.github/prompts/slm-getting-started-bot.prompt.md +57 -8
  61. package/copilot-plugin/.github/prompts/slm-governance.prompt.md +60 -5
  62. package/copilot-plugin/.github/prompts/slm-graph.prompt.md +2 -2
  63. package/copilot-plugin/.github/prompts/slm-loop.prompt.md +28 -2
  64. package/copilot-plugin/.github/prompts/slm-media.prompt.md +341 -0
  65. package/copilot-plugin/.github/prompts/slm-mesh.prompt.md +108 -8
  66. package/copilot-plugin/.github/prompts/slm-profile.prompt.md +18 -13
  67. package/copilot-plugin/.github/prompts/slm-recall.prompt.md +92 -3
  68. package/copilot-plugin/.github/prompts/slm-remember.prompt.md +7 -2
  69. package/copilot-plugin/.github/prompts/slm-scope.prompt.md +2 -2
  70. package/copilot-plugin/.github/prompts/slm-session.prompt.md +2 -2
  71. package/copilot-plugin/.github/prompts/slm-status.prompt.md +48 -2
  72. package/copilot-plugin/.github/prompts/slm-web-access.prompt.md +92 -6
  73. package/copilot-plugin/README.md +3 -3
  74. package/copilot-plugin/_GENERATED.md +2 -1
  75. package/hermes-plugin/__init__.py +21 -10
  76. package/hermes-plugin/agents/slm-governance-advisor.md +10 -4
  77. package/hermes-plugin/agents/slm-loop-runner.md +1 -1
  78. package/hermes-plugin/agents/slm-memory-advisor.md +8 -4
  79. package/hermes-plugin/agents/slm-optimize-advisor.md +1 -1
  80. package/hermes-plugin/command-inventory.json +3 -3
  81. package/hermes-plugin/plugin.yaml +1 -1
  82. package/hermes-plugin/remote.py +25 -4
  83. package/hermes-plugin/skills/slm-bot-memory/SKILL.md +36 -1
  84. package/hermes-plugin/skills/slm-cache/SKILL.md +1 -1
  85. package/hermes-plugin/skills/slm-compress/SKILL.md +1 -1
  86. package/hermes-plugin/skills/slm-getting-started-bot/SKILL.md +58 -7
  87. package/hermes-plugin/skills/slm-governance/SKILL.md +61 -5
  88. package/hermes-plugin/skills/slm-graph/SKILL.md +1 -1
  89. package/hermes-plugin/skills/slm-loop/SKILL.md +22 -2
  90. package/hermes-plugin/skills/slm-media/SKILL.md +340 -0
  91. package/hermes-plugin/skills/slm-mesh/SKILL.md +110 -8
  92. package/hermes-plugin/skills/slm-profile/SKILL.md +17 -12
  93. package/hermes-plugin/skills/slm-recall/SKILL.md +91 -3
  94. package/hermes-plugin/skills/slm-remember/SKILL.md +6 -1
  95. package/hermes-plugin/skills/slm-scope/SKILL.md +1 -1
  96. package/hermes-plugin/skills/slm-session/SKILL.md +1 -1
  97. package/hermes-plugin/skills/slm-status/SKILL.md +48 -2
  98. package/hermes-plugin/skills/slm-web-access/SKILL.md +92 -6
  99. package/ide/configs/cody-commands.json +1 -1
  100. package/ide/configs/continue-mcp.yaml +9 -14
  101. package/ide/configs/continue-skills.yaml +8 -3
  102. package/ide/configs/opencode-mcp.json +4 -5
  103. package/package.json +38 -21
  104. package/plugin/.claude-plugin/plugin.json +2 -2
  105. package/plugin/.cursor-plugin/plugin.json +1 -1
  106. package/plugin/CLAUDE.md +13 -4
  107. package/plugin/agents/slm-governance-advisor.md +10 -4
  108. package/plugin/agents/slm-loop-runner.md +1 -1
  109. package/plugin/agents/slm-memory-advisor.md +8 -4
  110. package/plugin/agents/slm-optimize-advisor.md +1 -1
  111. package/plugin/cursor-skills/slm-bot-memory/SKILL.md +36 -1
  112. package/plugin/cursor-skills/slm-getting-started-bot/SKILL.md +58 -7
  113. package/plugin/cursor-skills/slm-recall/SKILL.md +91 -3
  114. package/plugin/cursor-skills/slm-remember/SKILL.md +6 -1
  115. package/plugin/cursor-skills/slm-scope/SKILL.md +1 -1
  116. package/plugin/cursor-skills/slm-session/SKILL.md +1 -1
  117. package/plugin/mcp.cursor.json +1 -1
  118. package/plugin/requirements.txt +1 -1
  119. package/plugin/skills/slm-bot-memory/SKILL.md +36 -1
  120. package/plugin/skills/slm-cache/SKILL.md +1 -1
  121. package/plugin/skills/slm-compress/SKILL.md +1 -1
  122. package/plugin/skills/slm-getting-started-bot/SKILL.md +58 -7
  123. package/plugin/skills/slm-governance/SKILL.md +61 -5
  124. package/plugin/skills/slm-graph/SKILL.md +1 -1
  125. package/plugin/skills/slm-loop/SKILL.md +22 -2
  126. package/plugin/skills/slm-media/SKILL.md +340 -0
  127. package/plugin/skills/slm-mesh/SKILL.md +110 -8
  128. package/plugin/skills/slm-profile/SKILL.md +17 -12
  129. package/plugin/skills/slm-recall/SKILL.md +91 -3
  130. package/plugin/skills/slm-remember/SKILL.md +6 -1
  131. package/plugin/skills/slm-scope/SKILL.md +1 -1
  132. package/plugin/skills/slm-session/SKILL.md +1 -1
  133. package/plugin/skills/slm-status/SKILL.md +48 -2
  134. package/plugin/skills/slm-web-access/SKILL.md +92 -6
  135. package/plugin-src/agents/slm-governance-advisor.md +10 -4
  136. package/plugin-src/agents/slm-loop-runner.md +1 -1
  137. package/plugin-src/agents/slm-memory-advisor.md +8 -4
  138. package/plugin-src/agents/slm-optimize-advisor.md +1 -1
  139. package/plugin-src/rules/AGENTS.md +38 -9
  140. package/plugin-src/rules/CLAUDE.md.fragment +13 -4
  141. package/plugin-src/skills/slm-bot-memory/SKILL.md +36 -1
  142. package/plugin-src/skills/slm-cache/SKILL.md +1 -1
  143. package/plugin-src/skills/slm-compress/SKILL.md +1 -1
  144. package/plugin-src/skills/slm-getting-started-bot/SKILL.md +58 -7
  145. package/plugin-src/skills/slm-governance/SKILL.md +61 -5
  146. package/plugin-src/skills/slm-graph/SKILL.md +1 -1
  147. package/plugin-src/skills/slm-loop/SKILL.md +22 -2
  148. package/plugin-src/skills/slm-media/SKILL.md +340 -0
  149. package/plugin-src/skills/slm-mesh/SKILL.md +110 -8
  150. package/plugin-src/skills/slm-profile/SKILL.md +17 -12
  151. package/plugin-src/skills/slm-recall/SKILL.md +91 -3
  152. package/plugin-src/skills/slm-remember/SKILL.md +6 -1
  153. package/plugin-src/skills/slm-scope/SKILL.md +1 -1
  154. package/plugin-src/skills/slm-session/SKILL.md +1 -1
  155. package/plugin-src/skills/slm-status/SKILL.md +48 -2
  156. package/plugin-src/skills/slm-web-access/SKILL.md +92 -6
  157. package/scripts/postinstall/engine-upgrade.js +112 -0
  158. package/scripts/postinstall/media-request.js +203 -0
  159. package/scripts/postinstall/node-arch.js +27 -0
  160. package/scripts/postinstall-interactive.js +15 -19
  161. package/scripts/postinstall.js +101 -13
  162. package/scripts/preuninstall.js +55 -3
package/README.md CHANGED
@@ -1,296 +1,264 @@
1
1
  <div align="center">
2
2
 
3
3
  <picture>
4
- <source media="(prefers-color-scheme: dark)" srcset="assets/branding/slm-wordmark-dark.svg">
5
- <img src="assets/branding/slm-wordmark-light.svg" alt="SuperLocalMemory" width="380">
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/assets/branding/slm-wordmark-dark.svg">
5
+ <img src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/assets/branding/slm-wordmark-light.svg" alt="SuperLocalMemory" width="380">
6
6
  </picture>
7
7
 
8
- ### Long-term memory for your AI agents. On your computer, governed, and honest when it doesn't know.
8
+ <p align="center"><img src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/assets/mascot/slm-mascot-hero.png" width="180" alt="SuperLocalMemory mascot, a fluffy caped helper with the SLM logo, arms open"></p>
9
9
 
10
- Claude Code, Codex, Cursor, ChatGPT, Grok Bot and other MCP clients share one memory that lives on your machine. It learns from use, controls who may read and erase what, and says "I don't have that" instead of guessing.
10
+ ### The governed memory brain for every AI agent. It lives on your machine. It never bluffs.
11
+
12
+ **One memory for every agent you and your team use** — Claude Code, Codex, Cursor, Copilot, Antigravity, Hermes, ChatGPT, Claude on the web, Grok Bot, Muse and any harness that speaks MCP or runs a command. Decisions, documents, screenshots and PDFs, recalled the way you ask for them, governed like company data, shared through a mesh where your local agents and web bots talk to each other, and answered honestly: when the answer isn't there, your agent hears *"That isn't in SuperLocalMemory."* — not a confident guess.
11
13
 
12
14
  [![PyPI](https://img.shields.io/pypi/v/superlocalmemory)](https://pypi.org/project/superlocalmemory/)
13
15
  [![npm](https://img.shields.io/npm/v/superlocalmemory)](https://www.npmjs.com/package/superlocalmemory)
14
16
  [![PyPI downloads](https://img.shields.io/pepy/dt/superlocalmemory?label=PyPI%20downloads)](https://pepy.tech/project/superlocalmemory)
15
17
  [![npm downloads](https://img.shields.io/npm/dt/superlocalmemory?label=npm%20downloads)](https://www.npmjs.com/package/superlocalmemory)
16
18
  [![GitHub stars](https://img.shields.io/github/stars/qualixar/superlocalmemory?style=flat&logo=github)](https://github.com/qualixar/superlocalmemory/stargazers)
17
- [![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue)](LICENSE)
19
+ [![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue)](https://github.com/qualixar/superlocalmemory/blob/main/LICENSE)
18
20
  [![Research: 4 arXiv papers](https://img.shields.io/badge/arXiv-4_papers-b31b1b)](#research)
19
21
 
20
- **[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)** · **[Docs](#documentation)** · **[Release notes](CHANGELOG.md)**
22
+ **[Install](#install)** · **[See it work](#30-second-example)** · **[Product film](https://www.youtube.com/watch?v=pyAu_vaIYZQ)** · **[Every capability](#everything-slm-does)** · **[Docs](#documentation)** · **[Website](https://www.superlocalmemory.com)**
23
+
24
+ <img src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/docs/assets/gifs/recall-tiers.gif" alt="Recall in the dashboard: a real question gets its answer; a gibberish question gets 'That isn't in SuperLocalMemory.'; a real question memory cannot answer exactly gets the closest memories, labelled" width="820">
21
25
 
22
- <img src="docs/screenshots/dashboard/answer-check-dont-have-that.png" alt="Answer check in the dashboard: for &quot;How much did the Kestrel pilot cost?&quot; no memory answers it, so SLM says &quot;I don't have that&quot; instead of guessing" width="820">
23
26
 
24
27
  </div>
25
28
 
26
- **Recall can be checked before your agent uses it.** With the answer check on, 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, recall marks the results `abstained`, so your agent can say "I don't have that" instead of handing over a confident wrong answer: a hallucination guard for retrieval ([answer check](#answer-check-laya-and-jev)).
29
+ **Agents forget everything between sessions. The usual fix — a vector store with a save button — makes it worse:** it always returns *something*, even when nothing it holds answers the question, and your agent builds on it. This is a memory **brain**, not a bucket: it understands what was saved (who, what, when, which project), keeps it true over time, governs who may see it, and refuses to bluff. Four arXiv papers describe how it works.
30
+
31
+ In Mode A, core remember and recall make no model-provider call: no API key, no cloud account, no Docker. Anything that sends data out is a choice you make, and the docs say exactly what goes.
27
32
 
28
- **Your bots and web apps can use the same memory.** Local agents connect over MCP, including the Grok Bot plugin on a shared bot computer. ChatGPT, Claude on the web, Muse, Composio and other web MCP clients can reach it through optional [Web access](#web-apps-and-bots-web-access): you sign in with GitHub for each app, choose whether it may only read or also save, and remove any app at once.
33
+ ## Install
29
34
 
30
- In Mode A, core remember and recall make no model-provider call unless you turn on the online answer check (Jev). Anything that sends data out is a choice you make, and the docs say exactly what goes.
35
+ Three ways in. All three end in the same setup: your text memory on this machine, and, if you say yes, your pictures and documents too.
31
36
 
37
+ **1. Ask your agent.** Copy this into Claude Code, Codex, Cursor or any agent that can run commands:
38
+
39
+ ```
40
+ Install SuperLocalMemory on this computer for me. Follow
41
+ https://github.com/qualixar/superlocalmemory/blob/main/SETUP_FOR_AGENTS.md
42
+ step by step and show me what each step printed. Ask me only one question,
43
+ before turning on anything optional: whether I also want to find my pictures,
44
+ screenshots and PDFs by describing them. Connect SuperLocalMemory to the agent
45
+ I am using. When you finish, run slm doctor and tell me in plain words what works.
46
+ ```
47
+
48
+ **2. npm**, the primary route (Node 18+). It installs SLM into a package-owned virtual environment:
32
49
 
33
50
  ```bash
34
- npm install -g superlocalmemory # primary route (Node 18+, Python 3.12+); or: pipx install superlocalmemory
51
+ npm install -g superlocalmemory # add --media to also turn on pictures and documents
35
52
  slm setup # pick Mode A to keep everything on this machine
36
- slm connect cursor # or claude-code, codex, windsurf, zed ... 12 IDEs
53
+ slm connect claude-code # or codex, cursor, windsurf, zed, claude-desktop, jetbrains, opencode ...
54
+ ```
55
+
56
+ **3. pip**, the other primary route (Python 3.12 to 3.14), in a Python virtual environment you activate:
57
+
58
+ ```bash
59
+ python3 -m venv .venv
60
+ source .venv/bin/activate # Windows: .venv\Scripts\activate
61
+ python -m pip install superlocalmemory # or, without a venv: pipx install superlocalmemory
62
+ slm setup
63
+ slm connect claude-code
64
+ slm media enable # optional: pictures and documents (about 1.5 GB; needs 16 GB of memory)
37
65
  ```
38
66
 
39
- 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).
67
+ **Claude Code plugin:** `claude plugin marketplace add qualixar/superlocalmemory`, then `claude plugin install superlocalmemory@qualixar`. **Codex:** `slm connect codex`, then `slm codex install`.
68
+
69
+ **Two models, one memory.** Text is searched with a small local text model (nomic). If you turn on pictures and documents, a second local model (Google's EmbeddingGemma 2) reads them, and one recall returns both. The picture model unloads after 30 minutes without use, so it holds no memory while you only work with text. Details: [pictures and documents](https://github.com/qualixar/superlocalmemory/blob/main/docs/pictures-and-documents.md), [getting started](https://github.com/qualixar/superlocalmemory/blob/main/docs/getting-started.md), [agent setup steps](https://github.com/qualixar/superlocalmemory/blob/main/SETUP_FOR_AGENTS.md).
40
70
 
41
- Runs on Windows, Linux and macOS ([platforms](#platform-support)). No Docker, no required graph database, no API key.
71
+ Repository clone: `./scripts/install.sh install` (macOS, Linux) or `.\scripts\install.ps1 -Action Install` (Windows). Runs on Windows, Linux and Apple Silicon macOS ([platforms](#platform-support)).
42
72
 
43
73
  ## 30-second example
44
74
 
45
75
  ```console
46
76
  $ slm remember "We deploy the API blue-green; rollback is a DNS flip." --kind decision
47
- Queryable ✓ 1 facts (operation=ebca8e80...).
48
- $ slm remember "Always run the migration dry-run before a release." --kind rule
77
+ Queryable ✓ 1 facts
49
78
  $ slm remember "Staging DB is Postgres 16 on port 5433."
50
79
 
51
80
  $ slm recall "how do we roll back the API"
52
81
  1. [0.67] We deploy the API blue-green; rollback is a DNS flip.
53
- 2. [0.53] Always run the migration dry-run before a release.
54
- 3. [0.52] Staging DB is Postgres 16 on port 5433.
55
82
 
56
- $ slm recall "what did we decide about rollback" --kind decision
57
- 1. [0.54] We deploy the API blue-green; rollback is a DNS flip.
83
+ $ slm recall "zxqv plorth wimble"
84
+ That isn't in SuperLocalMemory.
58
85
 
59
- $ slm remember "Staging DB moved to Postgres 17 on port 5434." --replaces 0f57a17af3dd46e5
60
- Replaced ✓ 1 fact(s) of 0f57a17af3dd46e5.
61
- To undo, run:
62
- slm review-correction ... rollback 1
86
+ $ slm remember "Staging DB moved to Postgres 17 on port 5434." --replaces <id>
87
+ Replaced ✓ 1 fact(s). To undo: slm review-correction ... rollback 1
63
88
  $ slm recall "which port does staging postgres use"
64
89
  1. [0.68] Staging DB moved to Postgres 17 on port 5434.
65
90
  ```
66
91
 
67
- Real output from a fresh Mode A install, trimmed. Scores rank; they are not probabilities. While the embedding model loads, recall says `Incomplete search`.
92
+ Real output from a fresh Mode A install, trimmed. Scores rank memories; they are not probabilities.
68
93
 
69
- ### Watch the product walkthrough
94
+ ## Why SuperLocalMemory: twelve superpowers
70
95
 
71
- [![Watch the SuperLocalMemory demo](https://img.youtube.com/vi/PMWW_ypsL60/hqdefault.jpg)](https://www.youtube.com/watch?v=PMWW_ypsL60)
96
+ **1. It knows when it doesn't know.** Every recall comes back in one of three tiers: a **supported** answer; the **closest memories**, labelled *"I don't have this exactly — here are the closest memories"*; or *"That isn't in SuperLocalMemory."* for nonsense. Just after a start it says it is still warming up and shows what it has found, so you never hear "empty" when the truth is "not ready yet". Your agent stops building on the wrong memory.
72
97
 
73
- Five minutes: install, setup, recall, cache and compression.
98
+ **2. A second opinion that never leaves your Mac.** On Apple Silicon, SLM installs **Laya**, a small on-device model that judges whether the memories found actually answer the question. Prefer the cloud, or not on a Mac? **Jev** does the same check online, only after you tick its consent.
74
99
 
75
- ### The dashboard
100
+ **3. Your documents and screenshots become a knowledge base you can ask.** Save a photo, a screenshot or a PDF and find it weeks later by describing it — *"the slide with the quarterly numbers"*. The picture model is <img src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/assets/branding/google-g.svg" width="18" alt="Google"> **Google's EmbeddingGemma 2**, running on your computer: one model reads both your words and your pictures, so a description finds the image. OCR runs locally too, every PDF page is indexed by its picture and its text, and every answer cites its file and page. No generative model ever looks at your files.
76
101
 
77
- The picture at the top and these are captured from a real 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.
102
+ **4. Karpathy's LLM-wiki idea, built in — with search kept.** Andrej Karpathy's [LLM-wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) turns raw documents into an organised knowledge base with an index and a health check. SLM does that from the data it already stores — a **document index** of every file with its people, projects and dates, and a **document health check** that finds empty pages, unlinked documents, duplicate pages and contradicted facts — while keeping real hybrid search for the moment you need to *find* something.
78
103
 
79
- | Memories that answer the question | Recall Lab: why each memory was chosen |
80
- |---|---|
81
- | ![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/answer-check-answered.png) | ![Recall Lab: per-channel scores for "what did we decide about the database"](docs/screenshots/dashboard/recall-lab.png) |
104
+ **5. It looks after itself.** **Memory health** describes your older memories in the background — dates, names, projects, kinds — only ever by adding, never touching what you wrote. Anything that moves or deletes waits for your **Fix**, and **Undo** puts it back.
82
105
 
83
- | Every memory with its kind and project | Saved views |
84
- |---|---|
85
- | ![Memories table filtered by kind: decisions, rules, corrections, facts, with the project each belongs to](docs/screenshots/dashboard/memories-kinds-projects.png) | ![Saved views: a saved question that runs the same search your agent uses and shows the memory each result came from](docs/screenshots/dashboard/saved-views.png) |
106
+ **6. Governed, not just stored.** Every save passes an admission check and gets a receipt. Every read respects roles, workspaces and scopes. Every erasure reaches every copy — summaries, caches, indexes, picture mirrors — and comes with a verifiable receipt. Every action lands in a hash-chained audit trail. Built for teams and for GDPR, not bolted on.
86
107
 
87
- ![Connected apps: Web access is on, linked with GitHub for the default profile, renews automatically, with a free daily allowance and a button to add an app or turn access off](docs/screenshots/dashboard/connected-apps.png)
108
+ **7. Memory with a sense of time.** Every fact knows when it happened and when SLM learned it. Ask what was true last month, or what SLM knew before a date. Corrections replace a fact and stay undoable; unused memories fade the way human memory does.
88
109
 
89
- ## Why SuperLocalMemory
110
+ **8. It never floods your context window.** Layered recall gives an agent a one-line glance, the facts, or the full surrounding context — under a hard token budget it sets. The agent digs deeper with `expand` only when it needs to, and cache and reversible compression stop you paying for the same output twice.
90
111
 
91
- 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?
112
+ **9. Many agents, one brain.** Every write records which agent made it, with trust scores against memory poisoning, so ten agents can share one memory without poisoning it.
92
113
 
93
- **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 [governed-memory paper](https://arxiv.org/abs/2608.08253) measures what the governed write path costs. Code: `src/superlocalmemory/access/`, `compliance/`.
114
+ **10. Your agents talk to each other — even across the internet.** Through **SLM-Mesh**, the agents on your computer and the bots on the web finally share one conversation. Claude Code, Codex and Hermes sessions exchange messages, waits, locks and shared state, on one machine or several, so one agent can hand work to another and two never edit the same file at once. And the bots you allow — ChatGPT, Claude on the web, Grok Bot, Muse — join the same mesh: a bot in your browser can message the agent on your laptop by name and read its reply. Every message arrives labelled as data, never as instructions; a web bot reads new messages when its next turn starts.
94
115
 
95
- **2. A zero-LLM core built on published math.** Five retrieval channels, fusion and the learned ranker run without a language model; the published architecture scored 60.4% on LoCoMo with no LLM anywhere ([benchmarks](#benchmarks)). Fisher-information scoring, sheaf contradiction detection and Langevin lifecycle dynamics added 12.7 points ([architecture paper](https://arxiv.org/abs/2603.14588)).
116
+ **11. It learns every day, and it can't quietly get worse.** Every reported outcome teaches it: ranking learns which memories actually helped, stable habits become soft prompts for new sessions, and agent skills are measured and revised. A new ranker is promoted only on a statistically valid win and rolled back automatically if it slips. Work runs as **bounded loops** that end only when an independent gate passes — never on an agent's word — and multi-step pipelines run as **bounded graphs** with [Bounded Loops](https://github.com/qualixar/bounded-loops), whose finished runs SLM keeps as read-only evidence.
96
117
 
97
- **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.
118
+ **12. Science, not vibes.** Four arXiv papers back every layer: information-geometric retrieval, biologically inspired forgetting, Bayesian trust against memory poisoning, and governed memory with measured costs. The core math runs without a language model, and the published benchmarks state exactly how they were measured.
98
119
 
99
- **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`.
120
+ SuperLocalMemory is part of Qualixar's AI Reliability Engineering work: agent memory that is observable, bounded and honest about what it doesn't know.
100
121
 
101
- **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 ([lifecycle paper](https://arxiv.org/abs/2604.04514)).
122
+ ## Watch it work
102
123
 
103
- **6. Many agents, one coordinated memory.** Every write records its agent, with Bayesian trust scores against poisoning ([trust paper](https://arxiv.org/abs/2603.02240)). SLM-Mesh gives parallel sessions messages, locks and shared state.
124
+ <div align="center">
104
125
 
105
- **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.
126
+ [![Watch the SuperLocalMemory product film: Claude Code and Codex sharing one memory](https://img.youtube.com/vi/pyAu_vaIYZQ/maxresdefault.jpg)](https://www.youtube.com/watch?v=pyAu_vaIYZQ)
106
127
 
107
- **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.
128
+ *The four-minute product film: Claude Code and Codex sharing one memory.*
108
129
 
109
- SLM is part of Qualixar's AI Reliability Engineering work: agent memory that is observable, bounded and honest about what it doesn't know.
130
+ </div>
110
131
 
111
132
  ## Works with your agents
112
133
 
113
- | Surface | What you get | Docs |
114
- |---|---|---|
115
- | Editor plugins | Claude Code, Codex, VS Code / Copilot, Antigravity, Hermes. Each ships 15 skills, 4 sub-agents and session hooks; the npm package carries every plugin folder | [Plugins](docs/plugins.md), [IDE setup](docs/ide-setup.md), [Hermes](docs/hermes.md) |
116
- | Any other agent | The universal agent rules: one file that teaches any agent when to recall, what to save and how to keep memory clean. Paste it into `AGENTS.md`, `CLAUDE.md`, `.cursorrules` or the agent's system prompt | [Universal agent rules](plugin-src/rules/AGENTS.md) |
117
- | `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) |
118
- | 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) |
119
- | Framework adapters | LangGraph, LangChain, LlamaIndex, CrewAI, AutoGen, Semantic Kernel, Microsoft Agent Framework, Google ADK, OpenAI Agents | [Framework adapters](docs/framework-adapters.md) |
120
- | Python SDK and HTTP API | `MemoryEngine` in your code; the local REST API | [API reference](docs/api-reference.md) |
121
- | Auto-capture hooks | `slm hooks install` for Claude Code, `--agent codex` for Codex | [Auto-memory](docs/auto-memory.md) |
122
- | Web apps (ChatGPT, Claude on the web, Muse, Composio) | Optional Web access, turned on from the dashboard: OAuth sign-in, read or save per app, and a Connected apps page to remove any app at once. Copy-paste instructions tell the app when to recall and what to save | [Web access](#web-apps-and-bots-web-access), [Host guides](docs/remote-access/hosts.md), [Web agent instructions](docs/web-agents/README.md) |
123
- | Cursor-format plugin (Grok Bot, Cursor) | A marketplace-distributed plugin — different from `slm connect cursor` above — that runs on a shared, memory-tight computer with no hooks or dashboard | See below |
124
-
125
- Claude Code memory in two commands: `claude plugin marketplace add qualixar/superlocalmemory`, then `claude plugin install superlocalmemory@qualixar`.
126
-
127
- ### Grok Bot (and other Cursor-format plugin hosts)
128
-
129
- Grok Bot runs plugins in Cursor's format: a `.cursor-plugin/plugin.json` manifest, not the
130
- `.claude-plugin/` one Claude Code reads. SuperLocalMemory ships both from one source, so the
131
- plugin works on Grok Bot's shared, memory-constrained computer without any manual MCP setup.
132
-
133
- **Install:** add the `qualixar` marketplace (`.cursor-plugin/marketplace.json` at this repo's
134
- root) in Grok Bot's Plugins screen, then add `superlocalmemory`. No API key, no sign-in step —
135
- the server runs locally on the Grok Bot computer, so nothing goes to a memory SaaS.
136
- If the plugin shows the old "21-tool code profile" description or a `venv/bin/slm: No such file`
137
- error, Grok Bot's copy of the marketplace is pinned to an old commit: remove the `qualixar`
138
- marketplace, add it again, and reinstall the plugin. This plugin keeps its own memory on Grok
139
- Bot's computer; to use the memory on your own computer, add
140
- [Web access](docs/remote-access/hosts.md#grok-bot) as a custom MCP server instead.
141
- *(The MCP server starts as `uvx --from superlocalmemory==<version> slm mcp`: a pinned,
142
- on-PATH command, with `UV_TORCH_BACKEND=cpu` so a GPU-less Linux box never pulls PyTorch's CUDA
143
- wheel stack. The first start resolves the package once; the first recall downloads the local
144
- embedding model once.)*
145
-
146
- **Try it:** tell any bot *"Remember that our Q4 theme is agent reliability."* Then open a
147
- different bot and ask *"What's our Q4 theme?"*
148
-
149
- **What's shared and what isn't:** every write is attributed to `SLM_AGENT_ID=cursor_plugin` —
150
- that is attribution, not an access boundary. If your bots share one `SLM_DATA_DIR` (the default
151
- on one Grok Bot computer), they share one memory store: anything stored without an explicit
152
- `scope` is visible to any bot that can reach that store, the same way two terminal sessions on
153
- one laptop would see each other's files. Mark a fact `scope=global` only when every bot on that
154
- computer should see it; a bot that genuinely needs private memory needs its own `SLM_DATA_DIR`.
155
- See the `slm-bot-memory` skill (ships with this plugin) for the full model, including what
156
- should never be stored on a computer shared with other bots (secrets, keys, other people's
157
- personal data).
158
-
159
- **Tools:** this plugin sets `SLM_MCP_PROFILE=core` — 18 tools (`remember`, `recall`, `search`,
160
- session lifecycle, compression/cache, corrections) — deliberately smaller than the 56-tool
161
- default profile every other host gets, so a shared computer is not listing tool descriptions
162
- for tiers it will not use.
163
-
164
- **Resources — the lite bot-host profile:** this plugin also sets `SLM_RERANKER_ENABLED=false`,
165
- `SLM_RERANKER_IDLE_TIMEOUT=120` and `SLM_MAX_EMBEDDING_WORKERS=1` by default, because the box is
166
- "shared by every bot on it" with as little as 1.8-3.5 GiB free. Measured on macOS, warm, after
167
- one remember and one recall: about 390 MB resident with the reranker on (daemon + reranker
168
- worker + embedding worker) vs. about 190 MB with it off — recall still runs every other channel
169
- (BM25, semantic, entity graph, temporal, spreading activation, Hopfield) and fuses them, just
170
- without the cross-encoder re-ordering pass. Set `SLM_RERANKER_ENABLED=true` in the plugin's env
171
- block to trade that RAM back for ranking precision, or run `slm serve stop` when a bot is done
172
- with it.
173
-
174
- ### Web apps and bots: Web access
175
-
176
- ChatGPT, Claude on the web, Muse, Composio and other HTTP MCP clients can use the same memory as the agents on your computer. Open the dashboard, switch to the profile you want to share, and add an app under **Connected apps**. The app signs in with OAuth. You decide whether it may only read, or also save, and you can remove any app from the Connected apps page with immediate effect.
177
-
178
- Your laptop keeps an outbound connection to SLM's connection gateway. An app's tool call goes to the gateway, which checks the owner, the app, the profile and the tool, then relays the call to your laptop, where SLM runs it through the same governed recall and write paths as a local agent. There is no port to open, no tunnel and no Cloudflare account to set up.
179
-
180
- - The memory database stays on your laptop. Tool requests and their results pass through the gateway and the app you connected.
181
- - The laptop must be online. Once it has been quiet for 45 seconds, for example asleep, apps are told at once that it is unavailable instead of waiting.
182
- - Access renews itself. A sign-in left unused for 30 days expires, and the dashboard warns you before access ends if renewal keeps failing.
183
- - Each connection has a free daily allowance of tool calls.
184
- - SLM itself stays free and works fully without Web access.
185
-
186
- Connecting an app gives it the tools, not the judgment to use them well. The quickest fix is the [setup prompt](docs/web-agents/setup-prompt.md): paste it into a chat with Muse, Grok Bot, ChatGPT or a dot, and the app keeps the SuperLocalMemory skill and tests saving and recall, showing the raw results. Or paste the [web agent instructions](docs/web-agents/instructions.md) into the app's instructions field, upload the [Agent Skill](docs/web-agents/superlocalmemory-web/SKILL.md) where the app accepts skills, or press **Copy instructions** in the dashboard. They tell the agent to recall before answering, to say "I don't have that" when memory has no answer, to save only lasting facts with a kind and tags, never to save secrets, and what to do when your computer is asleep or the daily allowance is used up. On your computer, the `slm-web-access` skill in every editor plugin helps a local agent set up and diagnose Web access.
187
-
188
- [Web access documentation](docs/remote-access/README.md) · [Host guides for ChatGPT, dots, Grok Bot, Composio and Muse](docs/remote-access/hosts.md) · [Web agent instructions](docs/web-agents/README.md) · [Architecture and boundaries](docs/remote-access/architecture.md) · [Dashboard onboarding](docs/remote-access/onboarding.md)
189
-
190
- ## What developers use it for
191
-
192
- - **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.
193
- - **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.
194
- - **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.
195
- - **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.
196
- - **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.
197
- - **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.
198
- - **Lower token cost.** Exact caching and reversible compression of tool output and file reads keep long agent sessions inside the context window.
199
- - **Memory for local LLMs.** Mode B runs extraction on Ollama, llama.cpp, vLLM, LM Studio or any OpenAI-compatible server on your machine.
200
- - **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.
201
-
202
- ## Architecture
203
-
204
- ![SuperLocalMemory architecture: agents on your computer and optional web apps and bots use one governed memory engine on your machine, with three pillars (governed memory, recall you can trust, answer check by Laya or Jev), modes A/B/C, SQLite storage with parity-gated CozoDB and LanceDB projections, SLM-Mesh and bounded loops, and an outbound Web access path](docs/assets/slm-architecture.svg)
134
+ **Every harness, every bot, one memory.** Any harness that speaks MCP (`slm mcp`, or `http://127.0.0.1:8765/mcp/`) or can run a command (`slm remember`, `slm recall`) can use SuperLocalMemory. The packaged plugins are ready-made examples, not a limit.
205
135
 
206
- **The free local core is complete on its own.** npm and PyPI installs, Claude Code, Codex, local MCP tools, SLM-Mesh and the Laya and Jev answer checks run without Web access. SQLite + sqlite-vec are canonical; CozoDB and LanceDB are projections that serve only once they match SQLite. [Local engine architecture](docs/ARCHITECTURE.md) · [Detailed local pipeline diagram](docs/assets/slm-pipeline.svg) · [Web access architecture](docs/remote-access/architecture.md)
136
+ | Host | Connect | You get |
137
+ |---|---|---|
138
+ | **Claude Code** | `claude plugin install superlocalmemory@qualixar` | MCP, 16 skills, 4 agents, `/slm-loop`, session and recall hooks |
139
+ | **Codex** | `slm connect codex`, then `slm codex install` | MCP, 16 skills, 4 agents, `/slm-loop`, lifecycle hooks |
140
+ | **GitHub Copilot** (VS Code, Visual Studio, JetBrains, CLI) | `slm connect vscode-copilot --here` | MCP, agent rules, 16 prompts, 4 agents, hooks |
141
+ | **Antigravity** | `agy plugin install` the bundled plugin | MCP, 16 skills, 4 agents, `/slm-loop`, hooks |
142
+ | **Hermes** | Native plugin | 16 skills, advisor agents, `/slm <command>` |
143
+ | **Grok Bot and Cursor-format hosts** | Add the `qualixar` plugin marketplace | A lean plugin built for shared bot computers ([guide](https://github.com/qualixar/superlocalmemory/blob/main/docs/plugins.md#grok-bot-and-other-cursor-format-hosts)) |
144
+ | **Cursor, Windsurf, Zed, JetBrains, Gemini CLI, Claude Desktop, OpenCode, Continue** | `slm connect <name>` | MCP in that tool's own config |
145
+ | **ChatGPT, Claude on the web, Muse, Composio** | Optional **Web access** from the dashboard: sign in per app, read-only or read-and-save, remove any app at once | Your local memory, from the web; the database never leaves your computer ([guide](https://github.com/qualixar/superlocalmemory/blob/main/docs/remote-access/README.md)) |
146
+ | **LangGraph, LangChain, LlamaIndex, CrewAI, AutoGen, Semantic Kernel, Microsoft Agent Framework, Google ADK, OpenAI Agents** | Framework adapters | Memory inside your own code ([adapters](https://github.com/qualixar/superlocalmemory/blob/main/docs/framework-adapters.md)) |
147
+ | **Anything else** | Paste the [universal agent rules](https://github.com/qualixar/superlocalmemory/blob/main/plugin-src/rules/AGENTS.md) and give it the CLI or MCP | Memory discipline for any agent |
148
+
149
+ **What the plugins teach your agent.** Every plugin is built from one source, so every host gets the same 16 skills (recall, remember, sessions, governance, scopes and profiles, the knowledge graph, mesh, bounded loops, cache, compression, Web access, pictures, and two for bot computers) and 4 agents (a memory advisor, an optimize advisor, a governance advisor and a loop runner). Hooks run at session start, after tool use and at the end of a session, and every hook fails open: a hook problem never blocks your agent. [Plugins, skills and hooks](https://github.com/qualixar/superlocalmemory/blob/main/docs/plugins.md)
207
150
 
208
151
  ## Everything SLM does
209
152
 
210
- ### Memory and recall
153
+ ### Recall that knows when it doesn't know
211
154
 
212
155
  | Capability | What you get | Docs |
213
156
  |---|---|---|
214
- | 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) |
215
- | 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) |
216
- | 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) |
217
- | Replace and correct | `--replaces <id>` retires an old fact, kept and undoable. Edits go through reviewed corrections with rollback | [Corrections](docs/reviewed-corrections.md) |
218
- | Time travel | `--as-of`, `--known-as-of`, `--valid-at`, and `--window 7d` or a date range | [Recall](docs/recall.md#time-travel) |
219
- | Recall filters | `--project`, `--saved-by`, `--about`, `--kind`, and exact tags with `--tag` (repeat it; `--tags-match all` or `any`); applied before the answer check, and an empty result says why | [Recall](docs/recall.md#narrowing-a-recall) |
220
- | Project-aware recall | Memories from your current project rank first, hiding nothing. `--project` narrows and says when nothing matched | [Recall](docs/recall.md) |
221
- | Summaries and saved views | `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) |
222
- | Knowledge graph | Entities, aliases, scenes and timelines; Entity Explorer in the dashboard | [Architecture](docs/ARCHITECTURE.md) |
223
- | Code graph | Index a repo, then ask for blast radius, callers, review context and code search by meaning | [MCP tools](docs/mcp-tools.md) |
224
- | 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. `slm models` recommends models that fit this computer | [Configuration](docs/configuration.md) |
225
- | Switch the embedding model | `slm embedder switch MODEL` re-indexes every memory in the background while recall keeps working, then changes over in one step; `status`, `cancel` and `rollback` | [CLI reference](docs/cli-reference.md#embedding-models-and-store-health) |
226
-
227
- 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.
228
-
229
- ### Learning in memory
230
-
231
- - **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.
232
- - **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.
233
- - **Soft prompts.** Consolidation mines behavioural patterns and turns stable ones into soft prompts for new sessions.
234
- - **Forgetting.** An Ebbinghaus retention cycle and a Langevin lifecycle move neglected memories toward archive and pull used ones back.
235
- - **Skill evolution (opt-in).** Measures agent skills, proposes revisions and keeps lineage, under a budget and blind verification. [Skill evolution](docs/skill-evolution.md)
236
-
237
- ### Governance
157
+ | **Three honest tiers** | *Supported*; *closest memories* (up to three, labelled); or *"That isn't in SuperLocalMemory."* Hooks that inject memory automatically only ever inject supported answers | [Recall](https://github.com/qualixar/superlocalmemory/blob/main/docs/recall.md#when-memory-cannot-answer) |
158
+ | **Warming up, said plainly** | While models load, recall shows what keyword search found under *"SuperLocalMemory is still warming up — results may be incomplete. Try again in a few minutes."* | [Recall](https://github.com/qualixar/superlocalmemory/blob/main/docs/recall.md#warming-up) |
159
+ | **Layered recall** | `depth` 0 (a one-line glance), 1 (the facts), 2 (with source, session neighbours, related entities and corrections); a hard `max_tokens` cap; `expand` drills into one result | [Layered recall](https://github.com/qualixar/superlocalmemory/blob/main/docs/recall.md#layered-recall) |
160
+ | **Hybrid search** | Semantic, keyword (BM25), entity-graph, temporal, associative (Hopfield), spreading-activation and picture channels, fused and reranked; `slm trace` shows each channel's score | [Recall](https://github.com/qualixar/superlocalmemory/blob/main/docs/recall.md) |
161
+ | **Nine memory kinds** | Fact, event, status, opinion, rule, decision, how-to, plan, correction. "What did we decide" favours decisions; confirmed rules and decisions load at every session start | [Memory kinds](https://github.com/qualixar/superlocalmemory/blob/main/docs/memory-kinds.md) |
162
+ | **Time travel** | `--valid-at` (what was true then), `--known-as-of` (what SLM knew then), `--window 7d` | [Recall](https://github.com/qualixar/superlocalmemory/blob/main/docs/recall.md#time-travel) |
163
+ | **Precise filters** | By project, agent, subject, kind and exact tags; an empty result says why | [Recall](https://github.com/qualixar/superlocalmemory/blob/main/docs/recall.md#narrowing-a-recall) |
164
+ | **Corrections** | `--replaces` retires an old fact, kept and undoable; edits go through reviewed corrections with rollback | [Corrections](https://github.com/qualixar/superlocalmemory/blob/main/docs/reviewed-corrections.md) |
165
+ | **Summaries and saved views** | Session, day and project summaries that cite their memory ids; saved views like "what did I ship this week" | [Recall](https://github.com/qualixar/superlocalmemory/blob/main/docs/recall.md#summaries) |
166
+ | **Prompt-injection defence** | Recalled text is treated as untrusted evidence: secrets redacted, forged markers neutralised, provenance attached | [Security](https://github.com/qualixar/superlocalmemory/blob/main/SECURITY.md) |
238
167
 
239
- | Control | What it does | Docs |
240
- |---|---|---|
241
- | Roles | Admin, member and viewer per workspace. A role in one workspace grants nothing in another | [Teams](docs/rbac-teams.md) |
242
- | Company mode | Every read and write is attributed to a signed-in person; turn on with "Require login" | [Company mode](docs/company-mode.md) |
243
- | 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) |
244
- | 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) |
245
- | 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) |
246
- | 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) |
247
- | Write gate | Install token, API keys and remote keys decide who may write | [Auth write gate](docs/auth-write-gate.md) |
248
- | Evidence export | Checksummed JSONL bundles: `slm evidence export`, `verify`, `import` | [CLI reference](docs/cli-reference.md#data-and-evidence) |
249
- | 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) |
168
+ ### The answer check: Laya and Jev
250
169
 
251
- Engineering controls that support a compliance program, not a certification.
170
+ <table>
171
+ <tr>
172
+ <td width="50%" valign="top">
252
173
 
253
- ### Multi-agent: SLM-Mesh and bounded loops
174
+ **Laya — on your Mac**
254
175
 
255
- **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.
176
+ A small on-device model for Apple Silicon (about 1.1 GB). Installed by default by setup and offered after an upgrade; nothing ever leaves the machine. Opt out with `slm setup --no-laya` or `SLM_SKIP_LAYA=1`. Calibrate it to your own memories in the background with `slm embedder calibrate`.
256
177
 
257
- **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)
178
+ </td>
179
+ <td width="50%" valign="top">
258
180
 
259
- **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), [Bounded Loops bridge](docs/bounded-loops-bridge.md)
181
+ <img src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/assets/branding/jev-mark.svg" width="44" alt="Jev mark"> **Jev — online, any computer**
260
182
 
261
- ### Answer check: Laya and Jev
183
+ The same check on Windows, Linux or macOS, through TypeSafe or OpenRouter with your own key. It sends the question and the top three memories, and only after you tick its consent. It never turns itself on.
262
184
 
263
- Answer check adds a second step after ranking; choose one in **Settings → Answer check**:
185
+ </td>
186
+ </tr>
187
+ </table>
264
188
 
265
- - **Laya, on this Mac:** a small on-device model (about 1.1 GB) for Apple Silicon Macs. Nothing leaves the machine.
266
- - **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.
267
- - **Off.**
189
+ The verdict is one input to the support decision, with its own time budget, and the **Answer Check** tab shows verdicts, timing and how often memory had no answer — without storing your questions. [Answer check](https://github.com/qualixar/superlocalmemory/blob/main/docs/answer-check.md)
268
190
 
269
- 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)
191
+ ### Documents, pictures and your notes
270
192
 
271
- ### Context optimisation: cache and compression
193
+ | Capability | What you get | Docs |
194
+ |---|---|---|
195
+ | **Pictures you find by describing them** | PNG, JPEG, GIF and WebP. Google's EmbeddingGemma 2 runs locally and puts text and pictures in one search space, so your words find the image; OCR (Apple Vision on a Mac, RapidOCR elsewhere) makes the text inside it searchable; location data is never read | [Pictures and documents](https://github.com/qualixar/superlocalmemory/blob/main/docs/pictures-and-documents.md) |
196
+ | **PDFs, page by page** | Each page is indexed by its picture and its text; every answer says which file and page it came from, with a thumbnail | [Pictures and documents](https://github.com/qualixar/superlocalmemory/blob/main/docs/pictures-and-documents.md) |
197
+ | **Document index** | A catalogue of every saved document with its pages and the people, projects and dates it mentions | [Pictures and documents](https://github.com/qualixar/superlocalmemory/blob/main/docs/pictures-and-documents.md) |
198
+ | **Document health check** | Finds pages with no readable text, documents linked to nothing, duplicate pages and documents whose facts were contradicted | [Pictures and documents](https://github.com/qualixar/superlocalmemory/blob/main/docs/pictures-and-documents.md) |
199
+ | **Folders and Obsidian vaults** | `slm sources add ~/Notes --kind obsidian` mirrors Markdown, canvas files, PDFs and images into memory, read-only, after showing what it would read | [CLI](https://github.com/qualixar/superlocalmemory/blob/main/docs/cli-reference.md) |
200
+ | **From ChatGPT and your phone** | Attach a file in ChatGPT, or ask any connected web app for a one-time upload link that streams the file straight to your computer | [Web access](https://github.com/qualixar/superlocalmemory/blob/main/docs/remote-access/hosts.md) |
201
+ | **Your data stays yours** | Pictures live in their own store and never leave your computer; erasing a memory erases its picture. Off by default, one click to turn on; needs 16 GB of memory | [Compliance](https://github.com/qualixar/superlocalmemory/blob/main/docs/compliance.md) |
272
202
 
273
- | Feature | What it does |
274
- |---|---|
275
- | Exact cache | `slm_cache_get` / `slm_cache_set` keep tool output and file reads with a TTL; a hit skips the repeat call |
276
- | 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 |
277
- | Three surfaces | Works through a proxy (`slm wrap claude`), MCP tools or a skill. Only the proxy caches the main conversation turn |
278
- | Savings | `slm optimize savings --since 7` reports tokens and cost saved |
279
- | Memory compression | Vector precision follows retention: fading memories are quantized to fewer bits, and consolidation folds clusters of faded memories into one gist |
203
+ ### Memory health
280
204
 
281
- All of it fails open. [Optimize](docs/optimize-overview.md), [Proxy setup](docs/proxy-setup.md)
205
+ | Capability | What you get | Docs |
206
+ |---|---|---|
207
+ | **Automatic description** | While your computer is idle, older memories get event dates, names, projects, tags and kinds filled in — only by adding, never by editing what you wrote, and never over a value you set | [Memory health](https://github.com/qualixar/superlocalmemory/blob/main/docs/memory-health.md) |
208
+ | **Fix and Undo** | Repairs that move or delete anything — junk entity links, hidden memories still in use, saves that didn't finish — wait for your **Fix**; every run can be undone | [Memory health](https://github.com/qualixar/superlocalmemory/blob/main/docs/memory-health.md) |
209
+ | **Stub badge** | Receipts and session boilerplate stay listed with a **stub** badge but never become answers | [Memory health](https://github.com/qualixar/superlocalmemory/blob/main/docs/memory-health.md) |
210
+ | **Store health** | `slm doctor` shows how findable and described your memories are; `slm db integrity` and `slm db repair` (with undo) keep the store sound | [Troubleshooting](https://github.com/qualixar/superlocalmemory/blob/main/docs/troubleshooting.md) |
211
+
212
+ ### The living brain
282
213
 
283
- ### Direct remote access on your own network
214
+ | Capability | What you get | Docs |
215
+ |---|---|---|
216
+ | **Knowledge graph** | People, projects and tools resolved from your memories, with aliases, scenes and timelines; the Entity Explorer shows how what you know changed | [Architecture](https://github.com/qualixar/superlocalmemory/blob/main/docs/ARCHITECTURE.md) |
217
+ | **Code graph** | Index a repository, then ask for blast radius, callers and code search by meaning | [MCP tools](https://github.com/qualixar/superlocalmemory/blob/main/docs/mcp-tools.md) |
218
+ | **Forgetting that helps** | An Ebbinghaus retention cycle and Langevin lifecycle move neglected memories toward archive; fading memories are quantized to fewer bits and folded into one gist | [Research](#research) |
219
+ | **Learning to rank (opt-in)** | A bandit and a learning-to-rank model learn from outcomes; a new ranker is promoted only on a statistically valid win and rolled back automatically if it gets worse | [Configuration](https://github.com/qualixar/superlocalmemory/blob/main/docs/configuration.md) |
220
+ | **Soft prompts and skill evolution (opt-in)** | Stable behaviour patterns become soft prompts for new sessions; agent skills are measured and revised under blind verification | [Skill evolution](https://github.com/qualixar/superlocalmemory/blob/main/docs/skill-evolution.md) |
284
221
 
285
- `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), [Deployment tiers](docs/deployment-tiers.md)
222
+ ### Governance and compliance
286
223
 
287
- ### Scale and operations
224
+ | Control | What it does | Docs |
225
+ |---|---|---|
226
+ | **Roles and workspaces** | Admin, member and viewer per workspace; a role in one workspace grants nothing in another; maintenance and approvals act only where you are | [Teams](https://github.com/qualixar/superlocalmemory/blob/main/docs/rbac-teams.md) |
227
+ | **Company mode** | Every read and write attributed to a signed-in person | [Company mode](https://github.com/qualixar/superlocalmemory/blob/main/docs/company-mode.md) |
228
+ | **Scopes** | Personal by default; shared and global only when you choose; cross-profile recall denied by default | [Scopes](https://github.com/qualixar/superlocalmemory/blob/main/docs/shared-memory.md) |
229
+ | **GDPR** | Export (Art. 15/20) and erasure (Art. 17) across every store and every derived copy, with a verifiable receipt | [Compliance](https://github.com/qualixar/superlocalmemory/blob/main/docs/compliance.md) |
230
+ | **Audit and retention** | A hash-chained audit trail that fails verification if tampered with; per-profile retention rules; an EU AI Act posture report | [Compliance](https://github.com/qualixar/superlocalmemory/blob/main/docs/compliance.md) |
231
+ | **Backup and restore** | Cloud backup to GitHub or Google Drive, encrypted before upload; a restore point before every store update; a restore keeps a safety copy and rolls back if it fails | [Cloud backup](https://github.com/qualixar/superlocalmemory/blob/main/docs/cloud-backup.md), [Restore points](https://github.com/qualixar/superlocalmemory/blob/main/docs/restore-points.md) |
232
+
233
+ Engineering controls that support a compliance program, not a certification.
288
234
 
289
- - **[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.
290
- - **[Dashboard](docs/DASHBOARD-COVERAGE.md):** `slm dashboard`, 16 panes including Answer Check, Brain, Knowledge Graph, Governance, Optimize and Mesh Peers.
291
- - **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.
292
- - **[Operations](docs/troubleshooting.md):** `slm doctor`, `status`, `health`, `restart`, `ops`; stuck operations are listed and resolved.
293
- - **Store health:** `slm db integrity` reports the store's health; `slm db repair` previews fixes for leftover rows, erased words, unfinished deletes and memories that lost their searchable fact, applies them with `--apply`, and undoes a run with `--undo`. It never brings back anything erased, deleted or withheld. [CLI reference](docs/cli-reference.md#embedding-models-and-store-health)
235
+ ### Many agents, one memory
236
+
237
+ | Capability | What you get | Docs |
238
+ |---|---|---|
239
+ | **Attributed, trusted writes** | Every memory records its agent; Bayesian trust scores defend against memory poisoning | [Research](#research) |
240
+ | **SLM-Mesh** | Messages, waits, locks and shared state between sessions, on one machine or several | [Multi-machine](https://github.com/qualixar/superlocalmemory/blob/main/docs/multi-machine.md) |
241
+ | **Bots that talk to each other** | ChatGPT, Claude on the web, Grok Bot and Muse join the mesh with your permission: list peers, message a named bot, read the inbox. Messages arrive labelled as data, never as instructions | [Bot messages](https://github.com/qualixar/superlocalmemory/blob/main/docs/remote-access/hosts.md#bot-messages-and-the-two-new-permissions) |
242
+ | **Bounded loops and graphs** | "Done" means an independent gate passed (tests, a linter, a schema), never the agent's word; every lap is stored as auditable memory. Multi-step graphs run in [Bounded Loops](https://github.com/qualixar/bounded-loops), and SLM keeps their finished runs as read-only evidence | [Bounded Loops bridge](https://github.com/qualixar/superlocalmemory/blob/main/docs/bounded-loops-bridge.md) |
243
+
244
+ ### Context savings
245
+
246
+ | Capability | What you get | Docs |
247
+ |---|---|---|
248
+ | **Exact cache** | Tool output and file reads cached with a TTL; a hit skips the repeat call | [Optimize](https://github.com/qualixar/superlocalmemory/blob/main/docs/optimize-overview.md) |
249
+ | **Reversible compression** | Large output shrunk safely; the exact original comes back by id | [Optimize](https://github.com/qualixar/superlocalmemory/blob/main/docs/optimize-overview.md) |
250
+ | **Three ways in** | Works through a proxy (`slm wrap claude`), MCP tools or a skill; `slm optimize savings` shows what you saved | [Proxy setup](https://github.com/qualixar/superlocalmemory/blob/main/docs/proxy-setup.md) |
251
+
252
+ ### Modes, dashboard and scale
253
+
254
+ | Capability | What you get | Docs |
255
+ |---|---|---|
256
+ | **Three modes** | **A:** no language model at all. **B:** a model on this machine (Ollama, where Google Gemma 3 4B is the default and Gemma 4 is in the model picker, or any local OpenAI-compatible server). **C:** your own endpoint or a cloud provider | [Configuration](https://github.com/qualixar/superlocalmemory/blob/main/docs/configuration.md) |
257
+ | **Dashboard** | Search, knowledge graph, Entity Explorer, answer check, Memory health, documents and images, connected apps, bot messages, governance: `slm dashboard` | [Dashboard](https://github.com/qualixar/superlocalmemory/blob/main/docs/DASHBOARD-COVERAGE.md) |
258
+ | **Scale engine** | SQLite + sqlite-vec are canonical; optional LanceDB and CozoDB copies serve only once they match SQLite | [Scale engine](https://github.com/qualixar/superlocalmemory/blob/main/docs/scale-engine.md) |
259
+ | **Durable writes** | Every save moves raw → queryable → complete with a receipt; failures keep the evidence and retry; text saves under load are queued, never refused | [Architecture](https://github.com/qualixar/superlocalmemory/blob/main/docs/ARCHITECTURE.md) |
260
+ | **Model switching** | Change the embedding model in the background while recall keeps working, with one-step rollback | [CLI](https://github.com/qualixar/superlocalmemory/blob/main/docs/cli-reference.md#embedding-models-and-store-health) |
261
+ | **Remote access on your network** | `slm remote` serves memory to other computers over TLS, one revocable key per client | [Deployment](https://github.com/qualixar/superlocalmemory/blob/main/docs/distributed-deployment.md#remote-access-over-tls) |
294
262
 
295
263
  ## MCP memory server: tool profiles
296
264
 
@@ -298,33 +266,46 @@ Pick how many tools your agent sees with `SLM_MCP_PROFILE`.
298
266
 
299
267
  | Profile | Tools | For |
300
268
  |---|---:|---|
301
- | `core` | 18 | Remember, recall, sessions, optimize, correction review |
302
- | `code` | 38 | Core plus code graph, memory kinds, Brain evidence, profile switching, bounded loops |
303
- | `mesh` | 8 | SLM-Mesh coordination only |
304
- | `full` (and unset) | 56 | Memory, kinds, Brain, optimize, skill evolution, mesh, loops, views and summaries |
305
- | `power` | 68 | Full plus administration, lifecycle and diagnostics |
306
- | `whole` | 103 | Every registered tool |
307
-
308
- ```json
309
- { "mcpServers": { "superlocalmemory": { "type": "http", "url": "http://127.0.0.1:8765/mcp/" } } }
310
- ```
269
+ | `core` | 19 | Remember, recall, expand, sessions, optimize, correction review |
270
+ | `code` | 39 | Core plus code graph, memory kinds, Brain evidence, profile switching, bounded loops |
271
+ | `mesh` | 9 | SLM-Mesh coordination only |
272
+ | `full` (and unset) | 58 | Memory, kinds, Brain, optimize, skill evolution, mesh, loops, views and summaries (63 with pictures and documents on) |
273
+ | `power` | 70 | Full plus administration, lifecycle and diagnostics (75 with pictures and documents on) |
274
+ | `whole` | 110 | Every registered tool |
275
+
276
+ stdio: `{"command": "slm", "args": ["mcp"]}` · HTTP: `http://127.0.0.1:8765/mcp/` · [MCP tools](https://github.com/qualixar/superlocalmemory/blob/main/docs/mcp-tools.md)
277
+
278
+ ## See it
311
279
 
312
- For stdio clients use `{"command": "slm", "args": ["mcp"]}`.
280
+ | Memory health: Fix and Undo | Knowledge graph |
281
+ |---|---|
282
+ | <img src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/docs/assets/gifs/memory-health.gif" alt="Memory health card: hidden memories that are still in use are fixed with one click, and Undo restores exactly what changed"> | <img src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/docs/assets/gifs/knowledge-graph.gif" alt="Knowledge graph: nodes settle into clusters, a click on a person shows the memory behind it"> |
283
+ | **Entity Explorer** | **The answer check at work** |
284
+ | <img src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/docs/assets/gifs/entities.gif" alt="Entity Explorer: projects and tools with their facts and timeline"> | <img src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/docs/screenshots/dashboard/answer-check-answered.png" alt="Answer Check: the on-device model judges that the memories answer the question, with its confidence and timing"> |
285
+
286
+ Recorded on a test install with fictional memories. [The four-minute product film](https://www.youtube.com/watch?v=pyAu_vaIYZQ) walks through every pane.
287
+
288
+ ## Architecture
313
289
 
314
- ## Privacy and security
290
+ <img src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/docs/assets/slm-architecture.png" alt="SuperLocalMemory architecture: local harnesses, web bots and your code reach one SLM service on your computer through four doors (MCP, CLI, REST and dashboard, Web access); SLM-Mesh lets local agents and web bots talk to each other; inside, recall runs hybrid channels, fusion, the answer gate with three tiers, the Laya or Jev answer check and layered output; saves pass admission, redaction and understanding; the living brain runs Memory health, consolidation, daily learning and bounded loops; storage is SQLite with verified LanceDB and CozoDB copies, pictures and documents, the knowledge graph, the audit chain and encrypted backup; governance applies to every call" width="900">
315
291
 
316
- What leaves your machine, and when:
292
+ The free local core is complete on its own; Web access is optional. [Architecture in detail](https://github.com/qualixar/superlocalmemory/blob/main/docs/ARCHITECTURE.md)
317
293
 
318
- | Data | Leaves only when |
294
+ ## Privacy
295
+
296
+ <img align="right" width="110" src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/assets/mascot/slm-mascot-shield.png" alt="SuperLocalMemory mascot holding a shield: privacy and governance">
297
+
298
+ Nothing leaves your computer unless you turn on a feature that sends it, and each one says exactly what goes:
299
+
300
+ | What leaves | Only when |
319
301
  |---|---|
320
- | Recall question and top 3 memories | You turn on the online answer check (Jev) and tick its consent |
321
- | Question and top 20 memories | You also turn on Jev reordering, which has its own notice |
322
- | Memory text | You choose Mode C, a cloud embedder or reranker, an Ollama on another computer, or Jev kind typing (its own consent) |
323
- | Encrypted backup files | You connect GitHub or Google Drive backup. Files are encrypted before upload |
324
- | Mesh messages | You configure SLM-Mesh peers |
325
- | Remote tool requests and their results | You turn on Web access and add an app. They pass through SLM's connection gateway and that app; the memory database stays on your laptop |
302
+ | A question and the top three memories | You turn on Jev, the online answer check, and tick its consent |
303
+ | Memory text | You choose Mode C, a cloud embedder or reranker, a model on another computer, or Jev kind typing (its own consent) |
304
+ | Encrypted backup files | You connect GitHub or Google Drive backup |
305
+ | Mesh messages | You configure mesh peers, or allow a web app to message your bots |
306
+ | Tool calls from web apps | You turn on Web access and add an app; the database stays on your computer |
326
307
 
327
- 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).
308
+ Pictures, documents, Laya and Mode A never send anything. Secrets in memory text are redacted on every outbound path. [Security policy](https://github.com/qualixar/superlocalmemory/blob/main/SECURITY.md)
328
309
 
329
310
  ## Benchmarks
330
311
 
@@ -336,82 +317,67 @@ These numbers come from the published architecture paper ([arXiv:2603.14588](htt
336
317
  | Mode A, raw (no LLM anywhere) | 60.4% | 10 conversations, 1,276 questions |
337
318
  | Mode C, cloud embeddings + GPT-4.1-mini | 87.7% | 1 conversation (Conv-30), 81 questions |
338
319
 
339
- 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.
320
+ A LoCoMo score is comparable only when the subset, answer model and judge match. [Method and ablations](https://github.com/qualixar/superlocalmemory/blob/main/docs/benchmarks.md)
340
321
 
341
322
  ## Research
342
323
 
343
- Four arXiv preprints by Varun Pratap Bhardwaj describe SLM, newest first:
324
+ Four arXiv preprints by Varun Pratap Bhardwaj describe SLM:
344
325
 
345
- 1. **Governed memory (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.
346
- 2. **Lifecycle and forgetting (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.
347
- 3. **Information-geometric architecture (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.
348
- 4. **Trust and multi-agent memory (2026):** [SuperLocalMemory: Privacy-Preserving Multi-Agent Memory with Bayesian Trust Defense Against Memory Poisoning](https://arxiv.org/abs/2603.02240), arXiv:2603.02240.
326
+ 1. [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
327
+ 2. [SuperLocalMemory V3.3: The Living Brain](https://arxiv.org/abs/2604.04514), arXiv:2604.04514
328
+ 3. [SuperLocalMemory V3: Information-Geometric Foundations for Zero-LLM Enterprise Agent Memory](https://arxiv.org/abs/2603.14588), arXiv:2603.14588
329
+ 4. [Privacy-Preserving Multi-Agent Memory with Bayesian Trust Defense Against Memory Poisoning](https://arxiv.org/abs/2603.02240), arXiv:2603.02240
349
330
 
350
- Cite the governed-memory paper with [CITATION.cff](CITATION.cff) or GitHub's "Cite this repository" button:
351
-
352
- ```bibtex
353
- @article{bhardwaj2026superlocalmemory,
354
- title = {SuperLocalMemory 4.0: The Governed Memory Operating System for AI Agents},
355
- author = {Bhardwaj, Varun Pratap and Singh, Garima and Bhardwaj, Arun Pratap},
356
- journal = {arXiv preprint arXiv:2608.08253},
357
- year = {2026}
358
- }
359
- ```
331
+ Cite with [CITATION.cff](https://github.com/qualixar/superlocalmemory/blob/main/CITATION.cff) or GitHub's "Cite this repository".
360
332
 
361
333
  ## Documentation
362
334
 
363
- **Start:** [Getting started](docs/getting-started.md) · [IDE setup](docs/ide-setup.md) · [Plugins](docs/plugins.md) · [Linux install](docs/install-linux.md) · [Quick proof](docs/QUICK_PROOF.md) · [Migrating an old store](docs/migration-from-v2.md)
364
-
365
- **Use:** [Recall](docs/recall.md) · [Memory kinds](docs/memory-kinds.md) · [Answer check](docs/answer-check.md) · [Auto-memory](docs/auto-memory.md) · [Universal agent rules](plugin-src/rules/AGENTS.md) · [Web agent instructions](docs/web-agents/README.md) · [Shared memory](docs/shared-memory.md) · [Optimize](docs/optimize-overview.md)
366
-
367
- **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)
368
-
369
- **Design:** [Architecture](docs/ARCHITECTURE.md) · [Web access](docs/remote-access/README.md) · [Web access host guides](docs/remote-access/hosts.md) · [Score contract](docs/retrieval-score-contract.md) · [Compliance](docs/compliance.md) · [Benchmarks](docs/benchmarks.md)
335
+ **Start:** [Getting started](https://github.com/qualixar/superlocalmemory/blob/main/docs/getting-started.md) · [IDE setup](https://github.com/qualixar/superlocalmemory/blob/main/docs/ide-setup.md) · [Plugins](https://github.com/qualixar/superlocalmemory/blob/main/docs/plugins.md) · [Quick proof](https://github.com/qualixar/superlocalmemory/blob/main/docs/QUICK_PROOF.md)
336
+ **Use:** [Recall](https://github.com/qualixar/superlocalmemory/blob/main/docs/recall.md) · [Memory health](https://github.com/qualixar/superlocalmemory/blob/main/docs/memory-health.md) · [Answer check](https://github.com/qualixar/superlocalmemory/blob/main/docs/answer-check.md) · [Pictures and documents](https://github.com/qualixar/superlocalmemory/blob/main/docs/pictures-and-documents.md) · [Auto-memory](https://github.com/qualixar/superlocalmemory/blob/main/docs/auto-memory.md) · [Web access](https://github.com/qualixar/superlocalmemory/blob/main/docs/remote-access/README.md) · [Optimize](https://github.com/qualixar/superlocalmemory/blob/main/docs/optimize-overview.md)
337
+ **Reference:** [CLI](https://github.com/qualixar/superlocalmemory/blob/main/docs/cli-reference.md) · [MCP tools](https://github.com/qualixar/superlocalmemory/blob/main/docs/mcp-tools.md) · [Configuration](https://github.com/qualixar/superlocalmemory/blob/main/docs/configuration.md) · [Troubleshooting](https://github.com/qualixar/superlocalmemory/blob/main/docs/troubleshooting.md) · [Compliance](https://github.com/qualixar/superlocalmemory/blob/main/docs/compliance.md) · [Wiki](https://github.com/qualixar/superlocalmemory/wiki) · [Release notes](https://github.com/qualixar/superlocalmemory/blob/main/CHANGELOG.md)
370
338
 
371
339
  ## Upgrade
372
340
 
373
341
  ```bash
374
- npm update -g superlocalmemory # or, in your activated venv: python -m pip install --upgrade superlocalmemory
342
+ npm update -g superlocalmemory # or: pipx upgrade superlocalmemory
375
343
  slm restart && slm doctor
376
- slm upgrade-hosts # preview IDE and plugin updates; nothing changes until you --apply
344
+ slm upgrade-hosts # preview plugin and IDE updates; nothing changes until you --apply
377
345
  ```
378
346
 
379
- 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).
347
+ Upgrades never move or delete memory, and a store update takes a restore point first. [Host upgrades](https://github.com/qualixar/superlocalmemory/blob/main/docs/host-upgrades.md)
380
348
 
381
349
  ## Platform support
382
350
 
383
- | | SuperLocalMemory | Jev (online check) | Laya (on-device check) |
384
- |---|---|---|---|
385
- | Apple Silicon macOS | Yes | Yes | Yes |
386
- | 64-bit Windows | Yes | Yes | No (Laya uses Apple's MLX) |
387
- | 64-bit Linux (x86-64, ARM64) | Yes | Yes | No |
388
- | Intel Mac, 32-bit Windows | No prebuilt install | — | — |
351
+ | | SuperLocalMemory | Laya (on-device answer check) |
352
+ |---|---|---|
353
+ | Apple Silicon macOS | Yes | Yes, installed by default |
354
+ | 64-bit Windows | Yes | No (Jev, the online check, works) |
355
+ | 64-bit Linux (x86-64, ARM64) | Yes | No (Jev works) |
356
+ | Intel Mac, 32-bit Windows | No prebuilt install | — |
389
357
 
390
- 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`.
358
+ Python 3.12+, Node 18+ for npm. Pictures and documents need 16 GB of memory.
391
359
 
392
360
  ## Contributing and license
393
361
 
394
- 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).
395
-
396
- 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).
362
+ Issues and pull requests are welcome: [CONTRIBUTING.md](https://github.com/qualixar/superlocalmemory/blob/main/CONTRIBUTING.md). Security reports: [SECURITY.md](https://github.com/qualixar/superlocalmemory/blob/main/SECURITY.md). Licensed under [AGPL-3.0-or-later](https://github.com/qualixar/superlocalmemory/blob/main/LICENSE); for a commercial license see [COMMERCIAL-LICENSE.md](https://github.com/qualixar/superlocalmemory/blob/main/COMMERCIAL-LICENSE.md).
397
363
 
398
364
  ---
399
365
 
400
366
  <div align="center">
401
367
 
368
+ <img src="https://raw.githubusercontent.com/qualixar/superlocalmemory/main/assets/mascot/slm-mascot-pointing.png" width="120" alt="SuperLocalMemory mascot pointing to the repository star button">
369
+
402
370
  ### Built by Qualixar
403
371
 
404
- **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.
372
+ **SuperLocalMemory** is made by [Varun Pratap Bhardwaj](https://varunpratap.com) at [Qualixar](https://qualixar.com): AI Reliability Engineering — memory, contracts, tests and loops that make AI agents dependable enough to trust with real work.
373
+
374
+ **Stronger together.** SuperLocalMemory remembers. **[Jev Decision Layer](https://github.com/qualixar/jev-decision-layer)** makes your agent's bounded choices typed and checked. **[Bounded Loops](https://github.com/qualixar/bounded-loops)** ends work only when an independent gate passes. Use them together and Qualixar gives your agents the whole AI Reliability Engineering environment: memory they can trust, decisions they can defend, and work that is provably done.
375
+
376
+ If SLM keeps your agents from forgetting, **[star the repository](https://github.com/qualixar/superlocalmemory)**. It's how other developers find it.
405
377
 
406
378
  [![GitHub stars](https://img.shields.io/github/stars/qualixar/superlocalmemory?style=social)](https://github.com/qualixar/superlocalmemory/stargazers)
407
- [![PyPI downloads](https://img.shields.io/pepy/dt/superlocalmemory?label=PyPI%20downloads)](https://pepy.tech/project/superlocalmemory)
408
- [![npm downloads](https://img.shields.io/npm/dt/superlocalmemory?label=npm%20downloads)](https://www.npmjs.com/package/superlocalmemory)
409
379
  [![Follow on X](https://img.shields.io/badge/follow-%40varunPbhardwaj-000000?logo=x)](https://x.com/varunPbhardwaj)
410
380
 
411
- If SLM keeps your agents from forgetting, **[star the repository](https://github.com/qualixar/superlocalmemory)**: it is how other developers find it.
412
-
413
381
  **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)
414
382
 
415
- [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)
416
-
417
383
  </div>