superlocalmemory 3.0.10 → 3.0.12
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.
- package/README.md +15 -0
- package/bin/slm.bat +14 -184
- package/bin/slm.cmd +2 -7
- package/docs/api-reference.md +1 -1
- package/docs/migration-from-v2.md +4 -4
- package/docs/v2-archive/ARCHITECTURE.md +1 -1
- package/docs/v2-archive/CLI-COMMANDS-REFERENCE.md +35 -35
- package/docs/v2-archive/COMPRESSION-README.md +23 -23
- package/docs/v2-archive/FRAMEWORK-INTEGRATIONS.md +2 -2
- package/docs/v2-archive/MCP-MANUAL-SETUP.md +10 -10
- package/docs/v2-archive/MCP-TROUBLESHOOTING.md +29 -29
- package/docs/v2-archive/PATTERN-LEARNING.md +2 -2
- package/docs/v2-archive/PROFILES-GUIDE.md +52 -52
- package/docs/v2-archive/RESET-GUIDE.md +36 -36
- package/docs/v2-archive/UI-SERVER.md +2 -2
- package/docs/v2-archive/UNIVERSAL-INTEGRATION.md +3 -3
- package/docs/v2-archive/V2.2.0-OPTIONAL-SEARCH.md +2 -2
- package/ide/configs/antigravity-mcp.json +5 -7
- package/ide/configs/claude-desktop-mcp.json +3 -7
- package/ide/configs/codex-mcp.toml +2 -4
- package/ide/configs/continue-mcp.yaml +2 -3
- package/ide/configs/cursor-mcp.json +3 -7
- package/ide/configs/gemini-cli-mcp.json +6 -6
- package/ide/configs/jetbrains-mcp.json +6 -6
- package/ide/configs/opencode-mcp.json +5 -7
- package/ide/configs/perplexity-mcp.json +6 -6
- package/ide/configs/vscode-copilot-mcp.json +5 -6
- package/ide/configs/windsurf-mcp.json +3 -8
- package/ide/configs/zed-mcp.json +5 -6
- package/ide/integrations/langchain/README.md +3 -3
- package/ide/integrations/langchain/langchain_superlocalmemory/chat_message_history.py +5 -5
- package/ide/integrations/langchain/pyproject.toml +2 -2
- package/ide/integrations/llamaindex/README.md +2 -2
- package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/base.py +4 -4
- package/ide/integrations/llamaindex/pyproject.toml +2 -2
- package/ide/skills/slm-show-patterns/SKILL.md +1 -1
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/scripts/build-dmg.sh +8 -8
- package/scripts/install-skills.ps1 +2 -2
- package/scripts/install-skills.sh +3 -3
- package/scripts/install.ps1 +13 -13
- package/scripts/install.sh +9 -9
- package/scripts/preuninstall.js +1 -1
- package/scripts/sync-wiki.ps1 +3 -3
- package/scripts/sync-wiki.sh +3 -3
- package/scripts/test-dmg.sh +1 -1
- package/scripts/test-npm-package.ps1 +1 -1
- package/scripts/test-npm-package.sh +1 -1
- package/scripts/verify-install.ps1 +1 -1
- package/scripts/verify-install.sh +4 -4
- package/scripts/verify-v27.ps1 +3 -3
- package/scripts/verify-v27.sh +3 -3
- package/src/superlocalmemory/cli/commands.py +8 -0
- package/src/superlocalmemory/cli/main.py +3 -0
- package/src/superlocalmemory/cli/post_install.py +1 -1
- package/src/superlocalmemory/core/engine.py +2 -1
- package/src/superlocalmemory/hooks/ide_connector.py +2 -2
- package/src/superlocalmemory.egg-info/PKG-INFO +32 -4
|
@@ -19,7 +19,7 @@ The reset utility provides safe ways to clear and restart your memory system.
|
|
|
19
19
|
**Use when:** You want to start fresh but keep the system installed
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
python ~/.
|
|
22
|
+
python ~/.superlocalmemory/memory-reset.py soft
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
---
|
|
@@ -34,7 +34,7 @@ python ~/.claude-memory/memory-reset.py soft
|
|
|
34
34
|
**Use when:** You want completely fresh V2 database
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
python ~/.
|
|
37
|
+
python ~/.superlocalmemory/memory-reset.py hard --confirm
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
**⚠️ Requires `--confirm` flag for safety**
|
|
@@ -54,10 +54,10 @@ python ~/.claude-memory/memory-reset.py hard --confirm
|
|
|
54
54
|
|
|
55
55
|
```bash
|
|
56
56
|
# Clear only graph and patterns
|
|
57
|
-
python ~/.
|
|
57
|
+
python ~/.superlocalmemory/memory-reset.py layer --layers graph patterns
|
|
58
58
|
|
|
59
59
|
# Clear only graph
|
|
60
|
-
python ~/.
|
|
60
|
+
python ~/.superlocalmemory/memory-reset.py layer --layers graph
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
---
|
|
@@ -68,7 +68,7 @@ python ~/.claude-memory/memory-reset.py layer --layers graph
|
|
|
68
68
|
- View row counts and database size
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
python ~/.
|
|
71
|
+
python ~/.superlocalmemory/memory-reset.py status
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
---
|
|
@@ -78,12 +78,12 @@ python ~/.claude-memory/memory-reset.py status
|
|
|
78
78
|
### Automatic Backups
|
|
79
79
|
Every reset operation creates a timestamped backup:
|
|
80
80
|
```
|
|
81
|
-
~/.
|
|
81
|
+
~/.superlocalmemory/backups/pre-reset-YYYYMMDD-HHMMSS.db
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
**Skip backup** (not recommended):
|
|
85
85
|
```bash
|
|
86
|
-
python ~/.
|
|
86
|
+
python ~/.superlocalmemory/memory-reset.py soft --no-backup
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
### Confirmation Prompts
|
|
@@ -95,11 +95,11 @@ python ~/.claude-memory/memory-reset.py soft --no-backup
|
|
|
95
95
|
If you reset by mistake:
|
|
96
96
|
```bash
|
|
97
97
|
# Find latest backup
|
|
98
|
-
ls -lt ~/.
|
|
98
|
+
ls -lt ~/.superlocalmemory/backups/
|
|
99
99
|
|
|
100
100
|
# Restore backup
|
|
101
|
-
cp ~/.
|
|
102
|
-
~/.
|
|
101
|
+
cp ~/.superlocalmemory/backups/pre-reset-20260205-143000.db \
|
|
102
|
+
~/.superlocalmemory/memory.db
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
---
|
|
@@ -109,15 +109,15 @@ cp ~/.claude-memory/backups/pre-reset-20260205-143000.db \
|
|
|
109
109
|
### Scenario 1: "I want to start completely fresh"
|
|
110
110
|
```bash
|
|
111
111
|
# Check current state
|
|
112
|
-
python ~/.
|
|
112
|
+
python ~/.superlocalmemory/memory-reset.py status
|
|
113
113
|
|
|
114
114
|
# Hard reset (creates backup automatically)
|
|
115
|
-
python ~/.
|
|
115
|
+
python ~/.superlocalmemory/memory-reset.py hard --confirm
|
|
116
116
|
|
|
117
117
|
# Type: DELETE EVERYTHING
|
|
118
118
|
|
|
119
119
|
# Verify clean state
|
|
120
|
-
python ~/.
|
|
120
|
+
python ~/.superlocalmemory/memory-reset.py status
|
|
121
121
|
```
|
|
122
122
|
|
|
123
123
|
**Result:** Fresh V2 database, ready for new memories
|
|
@@ -127,12 +127,12 @@ python ~/.claude-memory/memory-reset.py status
|
|
|
127
127
|
### Scenario 2: "I want to clear memories but keep structure"
|
|
128
128
|
```bash
|
|
129
129
|
# Soft reset
|
|
130
|
-
python ~/.
|
|
130
|
+
python ~/.superlocalmemory/memory-reset.py soft
|
|
131
131
|
|
|
132
132
|
# Type: yes
|
|
133
133
|
|
|
134
134
|
# Add new memories
|
|
135
|
-
python ~/.
|
|
135
|
+
python ~/.superlocalmemory/memory_store.py add "First new memory"
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
**Result:** Empty database with V2 schema intact
|
|
@@ -142,10 +142,10 @@ python ~/.claude-memory/memory_store.py add "First new memory"
|
|
|
142
142
|
### Scenario 3: "My graph is corrupted, rebuild it"
|
|
143
143
|
```bash
|
|
144
144
|
# Clear only graph layer
|
|
145
|
-
python ~/.
|
|
145
|
+
python ~/.superlocalmemory/memory-reset.py layer --layers graph
|
|
146
146
|
|
|
147
147
|
# Rebuild graph from existing memories
|
|
148
|
-
~/.
|
|
148
|
+
~/.superlocalmemory/venv/bin/python ~/.superlocalmemory/graph_engine.py build
|
|
149
149
|
```
|
|
150
150
|
|
|
151
151
|
**Result:** Graph rebuilt, memories and patterns untouched
|
|
@@ -155,10 +155,10 @@ python ~/.claude-memory/memory-reset.py layer --layers graph
|
|
|
155
155
|
### Scenario 4: "Patterns learned wrong, reset them"
|
|
156
156
|
```bash
|
|
157
157
|
# Clear only patterns layer
|
|
158
|
-
python ~/.
|
|
158
|
+
python ~/.superlocalmemory/memory-reset.py layer --layers patterns
|
|
159
159
|
|
|
160
160
|
# Re-learn patterns
|
|
161
|
-
~/.
|
|
161
|
+
~/.superlocalmemory/venv/bin/python ~/.superlocalmemory/pattern_learner.py update
|
|
162
162
|
```
|
|
163
163
|
|
|
164
164
|
**Result:** Patterns re-learned, memories and graph untouched
|
|
@@ -203,7 +203,7 @@ python ~/.claude-memory/memory-reset.py layer --layers patterns
|
|
|
203
203
|
To completely remove SuperLocalMemory V2:
|
|
204
204
|
```bash
|
|
205
205
|
# Manual uninstall (use with caution)
|
|
206
|
-
rm -rf ~/.
|
|
206
|
+
rm -rf ~/.superlocalmemory/
|
|
207
207
|
```
|
|
208
208
|
|
|
209
209
|
**⚠️ This deletes everything including backups!**
|
|
@@ -211,8 +211,8 @@ rm -rf ~/.claude-memory/
|
|
|
211
211
|
Better approach - keep documentation:
|
|
212
212
|
```bash
|
|
213
213
|
# Keep docs, delete data
|
|
214
|
-
rm ~/.
|
|
215
|
-
rm -rf ~/.
|
|
214
|
+
rm ~/.superlocalmemory/memory.db
|
|
215
|
+
rm -rf ~/.superlocalmemory/venv/
|
|
216
216
|
```
|
|
217
217
|
|
|
218
218
|
---
|
|
@@ -222,7 +222,7 @@ rm -rf ~/.claude-memory/venv/
|
|
|
222
222
|
### After Soft Reset:
|
|
223
223
|
```bash
|
|
224
224
|
# Check tables exist but are empty
|
|
225
|
-
python ~/.
|
|
225
|
+
python ~/.superlocalmemory/memory-reset.py status
|
|
226
226
|
|
|
227
227
|
# Should show:
|
|
228
228
|
# Memories: 0 rows
|
|
@@ -234,7 +234,7 @@ python ~/.claude-memory/memory-reset.py status
|
|
|
234
234
|
### After Hard Reset:
|
|
235
235
|
```bash
|
|
236
236
|
# Check fresh V2 schema
|
|
237
|
-
python ~/.
|
|
237
|
+
python ~/.superlocalmemory/memory-reset.py status
|
|
238
238
|
|
|
239
239
|
# Should show:
|
|
240
240
|
# All tables present
|
|
@@ -245,7 +245,7 @@ python ~/.claude-memory/memory-reset.py status
|
|
|
245
245
|
### After Layer Reset:
|
|
246
246
|
```bash
|
|
247
247
|
# Check specific layer cleared
|
|
248
|
-
python ~/.
|
|
248
|
+
python ~/.superlocalmemory/memory-reset.py status
|
|
249
249
|
|
|
250
250
|
# Example after clearing graph:
|
|
251
251
|
# Graph Nodes: 0 rows
|
|
@@ -260,7 +260,7 @@ python ~/.claude-memory/memory-reset.py status
|
|
|
260
260
|
|
|
261
261
|
1. **Always check status first:**
|
|
262
262
|
```bash
|
|
263
|
-
python ~/.
|
|
263
|
+
python ~/.superlocalmemory/memory-reset.py status
|
|
264
264
|
```
|
|
265
265
|
|
|
266
266
|
2. **Use layer reset when possible:**
|
|
@@ -289,24 +289,24 @@ python ~/.claude-memory/memory-reset.py status
|
|
|
289
289
|
- Run hard reset again to reinitialize
|
|
290
290
|
|
|
291
291
|
**Before any reset:**
|
|
292
|
-
- Check: `ls -la ~/.
|
|
292
|
+
- Check: `ls -la ~/.superlocalmemory/memory.db`
|
|
293
293
|
- Database may have been moved/deleted
|
|
294
294
|
|
|
295
295
|
### "Permission denied"
|
|
296
296
|
```bash
|
|
297
297
|
# Make script executable
|
|
298
|
-
chmod +x ~/.
|
|
298
|
+
chmod +x ~/.superlocalmemory/memory-reset.py
|
|
299
299
|
|
|
300
300
|
# Or run with python
|
|
301
|
-
python ~/.
|
|
301
|
+
python ~/.superlocalmemory/memory-reset.py status
|
|
302
302
|
```
|
|
303
303
|
|
|
304
304
|
### "Backup failed"
|
|
305
305
|
- Check disk space: `df -h`
|
|
306
|
-
- Check permissions: `ls -la ~/.
|
|
306
|
+
- Check permissions: `ls -la ~/.superlocalmemory/`
|
|
307
307
|
- Manually create backup:
|
|
308
308
|
```bash
|
|
309
|
-
cp ~/.
|
|
309
|
+
cp ~/.superlocalmemory/memory.db ~/.superlocalmemory/backups/manual-backup.db
|
|
310
310
|
```
|
|
311
311
|
|
|
312
312
|
### "Hard reset didn't reinitialize"
|
|
@@ -314,7 +314,7 @@ python ~/.claude-memory/memory-reset.py status
|
|
|
314
314
|
- Check for errors in output
|
|
315
315
|
- Manually verify schema:
|
|
316
316
|
```bash
|
|
317
|
-
sqlite3 ~/.
|
|
317
|
+
sqlite3 ~/.superlocalmemory/memory.db ".tables"
|
|
318
318
|
```
|
|
319
319
|
|
|
320
320
|
---
|
|
@@ -325,16 +325,16 @@ python ~/.claude-memory/memory-reset.py status
|
|
|
325
325
|
1. **Stop immediately** - Don't run more commands
|
|
326
326
|
2. **Check backups:**
|
|
327
327
|
```bash
|
|
328
|
-
ls -lt ~/.
|
|
328
|
+
ls -lt ~/.superlocalmemory/backups/
|
|
329
329
|
```
|
|
330
330
|
3. **Restore latest backup:**
|
|
331
331
|
```bash
|
|
332
|
-
cp ~/.
|
|
333
|
-
~/.
|
|
332
|
+
cp ~/.superlocalmemory/backups/pre-reset-<timestamp>.db \
|
|
333
|
+
~/.superlocalmemory/memory.db
|
|
334
334
|
```
|
|
335
335
|
4. **Verify restoration:**
|
|
336
336
|
```bash
|
|
337
|
-
python ~/.
|
|
337
|
+
python ~/.superlocalmemory/memory-reset.py status
|
|
338
338
|
```
|
|
339
339
|
|
|
340
340
|
---
|
|
@@ -49,7 +49,7 @@ The UI server requires an existing memory database. If you haven't created one y
|
|
|
49
49
|
# Create demo database with sample data
|
|
50
50
|
python create_demo_db.py
|
|
51
51
|
|
|
52
|
-
# OR use your existing ~/.
|
|
52
|
+
# OR use your existing ~/.superlocalmemory/memory.db
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
### 3. Start the Server
|
|
@@ -136,7 +136,7 @@ curl "http://localhost:8765/api/stats"
|
|
|
136
136
|
|
|
137
137
|
By default, the server uses:
|
|
138
138
|
- Demo mode: `demo-memory.db` in the repo
|
|
139
|
-
- Production: `~/.
|
|
139
|
+
- Production: `~/.superlocalmemory/memory.db`
|
|
140
140
|
|
|
141
141
|
To change the database path, modify `DB_PATH` in `ui_server.py`.
|
|
142
142
|
|
|
@@ -169,7 +169,7 @@ Continue's AI can also call memory tools directly.
|
|
|
169
169
|
slashCommands:
|
|
170
170
|
- name: "slm-remember"
|
|
171
171
|
description: "Save to SuperLocalMemory"
|
|
172
|
-
run: "~/.
|
|
172
|
+
run: "~/.superlocalmemory/bin/superlocalmemoryv2-remember \"{{input}}\""
|
|
173
173
|
|
|
174
174
|
# For MCP tools
|
|
175
175
|
contextProviders:
|
|
@@ -431,12 +431,12 @@ source ~/.zshrc # or ~/.bashrc
|
|
|
431
431
|
|
|
432
432
|
**Start MCP server manually:**
|
|
433
433
|
```bash
|
|
434
|
-
python3 ~/.
|
|
434
|
+
python3 ~/.superlocalmemory/mcp_server.py
|
|
435
435
|
```
|
|
436
436
|
|
|
437
437
|
**Start with HTTP transport:**
|
|
438
438
|
```bash
|
|
439
|
-
python3 ~/.
|
|
439
|
+
python3 ~/.superlocalmemory/mcp_server.py --transport http --port 8001
|
|
440
440
|
```
|
|
441
441
|
|
|
442
442
|
**Check MCP server tools:**
|
|
@@ -251,7 +251,7 @@ engine.clear_cache()
|
|
|
251
251
|
Cache settings:
|
|
252
252
|
- **Max size:** 10,000 entries
|
|
253
253
|
- **Eviction:** LRU (Least Recently Used)
|
|
254
|
-
- **Persistence:** Saved to `~/.
|
|
254
|
+
- **Persistence:** Saved to `~/.superlocalmemory/embedding_cache.json`
|
|
255
255
|
|
|
256
256
|
### Security & Limits
|
|
257
257
|
|
|
@@ -430,7 +430,7 @@ engine = EmbeddingEngine(device='cpu')
|
|
|
430
430
|
|
|
431
431
|
**Solution:**
|
|
432
432
|
Models are cached locally after first download:
|
|
433
|
-
- Location: `~/.
|
|
433
|
+
- Location: `~/.superlocalmemory/models/`
|
|
434
434
|
- Size: 80MB (all-MiniLM-L6-v2)
|
|
435
435
|
- Subsequent loads: <1 second
|
|
436
436
|
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"superlocalmemory": {
|
|
4
|
-
"command": "
|
|
5
|
-
"args": [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
},
|
|
9
|
-
"cwd": "{{INSTALL_DIR}}",
|
|
4
|
+
"command": "slm",
|
|
5
|
+
"args": [
|
|
6
|
+
"mcp"
|
|
7
|
+
],
|
|
10
8
|
"description": "SuperLocalMemory V3 - 100% local memory system"
|
|
11
9
|
}
|
|
12
10
|
}
|
|
13
|
-
}
|
|
11
|
+
}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"superlocalmemory": {
|
|
4
|
-
"command": "
|
|
4
|
+
"command": "slm",
|
|
5
5
|
"args": [
|
|
6
|
-
"
|
|
6
|
+
"mcp"
|
|
7
7
|
],
|
|
8
|
-
"cwd": "{{INSTALL_DIR}}",
|
|
9
|
-
"env": {
|
|
10
|
-
"PYTHONPATH": "{{INSTALL_DIR}}"
|
|
11
|
-
},
|
|
12
8
|
"description": "SuperLocalMemory V3 - 100% local memory system for AI assistants"
|
|
13
9
|
}
|
|
14
10
|
}
|
|
15
|
-
}
|
|
11
|
+
}
|
|
@@ -5,10 +5,9 @@ contextProviders:
|
|
|
5
5
|
- name: mcp
|
|
6
6
|
params:
|
|
7
7
|
serverName: "superlocalmemory"
|
|
8
|
-
command: "
|
|
8
|
+
command: "slm"
|
|
9
9
|
args:
|
|
10
|
-
- "
|
|
11
|
-
- "superlocalmemory.mcp.server"
|
|
10
|
+
- "mcp"
|
|
12
11
|
description: "SuperLocalMemory V3 - Search your memory system"
|
|
13
12
|
|
|
14
13
|
# You can also use Continue's slash commands with SuperLocalMemory
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"superlocalmemory": {
|
|
4
|
-
"command": "
|
|
4
|
+
"command": "slm",
|
|
5
5
|
"args": [
|
|
6
|
-
"
|
|
6
|
+
"mcp"
|
|
7
7
|
],
|
|
8
|
-
"cwd": "{{INSTALL_DIR}}",
|
|
9
|
-
"env": {
|
|
10
|
-
"PYTHONPATH": "{{INSTALL_DIR}}"
|
|
11
|
-
},
|
|
12
8
|
"description": "SuperLocalMemory V3 - Local memory system with mathematical foundations and knowledge graphs"
|
|
13
9
|
}
|
|
14
10
|
}
|
|
15
|
-
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"superlocalmemory": {
|
|
4
|
-
"command": "
|
|
5
|
-
"args": [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
"command": "slm",
|
|
5
|
+
"args": [
|
|
6
|
+
"mcp"
|
|
7
|
+
],
|
|
8
|
+
"description": "SuperLocalMemory V3"
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"superlocalmemory": {
|
|
4
|
-
"command": "
|
|
5
|
-
"args": [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
"command": "slm",
|
|
5
|
+
"args": [
|
|
6
|
+
"mcp"
|
|
7
|
+
],
|
|
8
|
+
"description": "SuperLocalMemory V3"
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
}
|
|
11
|
+
}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcp": {
|
|
3
3
|
"superlocalmemory": {
|
|
4
|
-
"command": "
|
|
5
|
-
"args": [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
},
|
|
9
|
-
"cwd": "{{INSTALL_DIR}}"
|
|
4
|
+
"command": "slm",
|
|
5
|
+
"args": [
|
|
6
|
+
"mcp"
|
|
7
|
+
]
|
|
10
8
|
}
|
|
11
9
|
}
|
|
12
|
-
}
|
|
10
|
+
}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"superlocalmemory": {
|
|
4
|
-
"command": "
|
|
4
|
+
"command": "slm",
|
|
5
5
|
"args": [
|
|
6
|
-
"
|
|
6
|
+
"mcp"
|
|
7
7
|
],
|
|
8
|
-
"cwd": "{{INSTALL_DIR}}",
|
|
9
|
-
"env": {
|
|
10
|
-
"PYTHONPATH": "{{INSTALL_DIR}}"
|
|
11
|
-
},
|
|
12
|
-
"transport": "stdio",
|
|
13
8
|
"description": "SuperLocalMemory V3 - 100% local memory system for AI assistants"
|
|
14
9
|
}
|
|
15
10
|
}
|
|
16
|
-
}
|
|
11
|
+
}
|
package/ide/configs/zed-mcp.json
CHANGED
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
"context_servers": {
|
|
3
3
|
"superlocalmemory": {
|
|
4
4
|
"source": "custom",
|
|
5
|
-
"command": "
|
|
6
|
-
"args": [
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
5
|
+
"command": "slm",
|
|
6
|
+
"args": [
|
|
7
|
+
"mcp"
|
|
8
|
+
]
|
|
10
9
|
}
|
|
11
10
|
}
|
|
12
|
-
}
|
|
11
|
+
}
|
|
@@ -7,7 +7,7 @@ Every message stays on your machine in a SQLite database. No API keys, no subscr
|
|
|
7
7
|
## Prerequisites
|
|
8
8
|
|
|
9
9
|
- Python 3.10+
|
|
10
|
-
- [SuperLocalMemory V2](https://github.com/qualixar/superlocalmemory) installed (`~/.
|
|
10
|
+
- [SuperLocalMemory V2](https://github.com/qualixar/superlocalmemory) installed (`~/.superlocalmemory/` must exist)
|
|
11
11
|
- `langchain-core >= 1.0.0`
|
|
12
12
|
|
|
13
13
|
## Installation
|
|
@@ -48,7 +48,7 @@ history.clear()
|
|
|
48
48
|
|
|
49
49
|
## Features
|
|
50
50
|
|
|
51
|
-
- **Local-first storage** -- all data stays in `~/.
|
|
51
|
+
- **Local-first storage** -- all data stays in `~/.superlocalmemory/memory.db`
|
|
52
52
|
- **Session isolation** -- each `session_id` is completely independent
|
|
53
53
|
- **Full LangChain compatibility** -- implements `BaseChatMessageHistory`
|
|
54
54
|
- **Persistent across restarts** -- SQLite-backed, survives process exit
|
|
@@ -75,7 +75,7 @@ assert len(coding.messages) == 1
|
|
|
75
75
|
|
|
76
76
|
## Custom Database Path
|
|
77
77
|
|
|
78
|
-
By default the package uses `~/.
|
|
78
|
+
By default the package uses `~/.superlocalmemory/memory.db`. You can point to a different database:
|
|
79
79
|
|
|
80
80
|
```python
|
|
81
81
|
history = SuperLocalMemoryChatMessageHistory(
|
|
@@ -33,13 +33,13 @@ from langchain_core.messages import (
|
|
|
33
33
|
# ---------------------------------------------------------------------------
|
|
34
34
|
# MemoryStoreV2 import strategy
|
|
35
35
|
# ---------------------------------------------------------------------------
|
|
36
|
-
# SuperLocalMemory V2 installs to ~/.
|
|
36
|
+
# SuperLocalMemory V2 installs to ~/.superlocalmemory/. We add that path so
|
|
37
37
|
# the MemoryStoreV2 class can be imported. If SLM is not installed, we
|
|
38
38
|
# raise a clear error at construction time (not import time) so the package
|
|
39
39
|
# itself can still be imported for introspection.
|
|
40
40
|
# ---------------------------------------------------------------------------
|
|
41
41
|
|
|
42
|
-
_SLM_PATH = Path.home() / ".
|
|
42
|
+
_SLM_PATH = Path.home() / ".superlocalmemory"
|
|
43
43
|
_MemoryStoreV2 = None
|
|
44
44
|
|
|
45
45
|
|
|
@@ -54,7 +54,7 @@ def _ensure_slm_imported():
|
|
|
54
54
|
sys.path.insert(0, slm_path_str)
|
|
55
55
|
|
|
56
56
|
try:
|
|
57
|
-
from
|
|
57
|
+
from superlocalmemory.core.engine import MemoryEngine # type: ignore[import-untyped]
|
|
58
58
|
|
|
59
59
|
_MemoryStoreV2 = MemoryStoreV2
|
|
60
60
|
return _MemoryStoreV2
|
|
@@ -62,7 +62,7 @@ def _ensure_slm_imported():
|
|
|
62
62
|
raise ImportError(
|
|
63
63
|
"SuperLocalMemory V2 is not installed. "
|
|
64
64
|
"Run the installer from https://github.com/qualixar/superlocalmemory "
|
|
65
|
-
"or ensure ~/.
|
|
65
|
+
"or ensure ~/.superlocalmemory/is installed via npm/pip."
|
|
66
66
|
) from exc
|
|
67
67
|
|
|
68
68
|
|
|
@@ -117,7 +117,7 @@ class SuperLocalMemoryChatMessageHistory(BaseChatMessageHistory):
|
|
|
117
117
|
different session IDs are completely isolated.
|
|
118
118
|
db_path : str or None
|
|
119
119
|
Path to the SQLite database file. Defaults to
|
|
120
|
-
``~/.
|
|
120
|
+
``~/.superlocalmemory/memory.db``.
|
|
121
121
|
"""
|
|
122
122
|
|
|
123
123
|
# Tag prefix used to isolate LangChain session messages inside SLM.
|
|
@@ -30,9 +30,9 @@ dependencies = [
|
|
|
30
30
|
]
|
|
31
31
|
|
|
32
32
|
[project.urls]
|
|
33
|
-
Homepage = "https://github.com/
|
|
33
|
+
Homepage = "https://github.com/qualixar/superlocalmemory"
|
|
34
34
|
Documentation = "https://superlocalmemory.com/"
|
|
35
|
-
Repository = "https://github.com/
|
|
35
|
+
Repository = "https://github.com/qualixar/superlocalmemory"
|
|
36
36
|
|
|
37
37
|
[tool.pytest.ini_options]
|
|
38
38
|
testpaths = ["tests"]
|
|
@@ -5,7 +5,7 @@ A LlamaIndex `BaseChatStore` implementation backed by [SuperLocalMemory V2](http
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
7
7
|
- Python 3.9+
|
|
8
|
-
- SuperLocalMemory V2 installed (`~/.
|
|
8
|
+
- SuperLocalMemory V2 installed (`~/.superlocalmemory/` must exist)
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
11
|
# Install SuperLocalMemory V2 (one-time)
|
|
@@ -51,7 +51,7 @@ chat_store.delete_messages("session-1")
|
|
|
51
51
|
|
|
52
52
|
## Features
|
|
53
53
|
|
|
54
|
-
- **100% Local** — All data stored in SQLite at `~/.
|
|
54
|
+
- **100% Local** — All data stored in SQLite at `~/.superlocalmemory/memory.db`
|
|
55
55
|
- **Zero Cloud** — No API keys, no subscriptions, no data leaves your machine
|
|
56
56
|
- **Shared Memory** — Chat history is accessible from Claude, Cursor, Windsurf, and 16+ other AI tools via SuperLocalMemory
|
|
57
57
|
- **Session Isolation** — Each chat key is cleanly isolated using SLM tags
|
|
@@ -25,7 +25,7 @@ from llama_index.core.storage.chat_store.base import BaseChatStore
|
|
|
25
25
|
# ---------------------------------------------------------------------------
|
|
26
26
|
# Locate and import SuperLocalMemory V2's MemoryStoreV2
|
|
27
27
|
# ---------------------------------------------------------------------------
|
|
28
|
-
_SLM_PATH = Path.home() / ".
|
|
28
|
+
_SLM_PATH = Path.home() / ".superlocalmemory"
|
|
29
29
|
if str(_SLM_PATH) not in sys.path:
|
|
30
30
|
sys.path.insert(0, str(_SLM_PATH))
|
|
31
31
|
|
|
@@ -35,7 +35,7 @@ if _SLM_SRC_PATH.exists() and str(_SLM_SRC_PATH) not in sys.path:
|
|
|
35
35
|
sys.path.insert(0, str(_SLM_SRC_PATH))
|
|
36
36
|
|
|
37
37
|
try:
|
|
38
|
-
from
|
|
38
|
+
from superlocalmemory.core.engine import MemoryEngine
|
|
39
39
|
except ImportError as exc:
|
|
40
40
|
raise ImportError(
|
|
41
41
|
"SuperLocalMemory V2 is not installed. "
|
|
@@ -139,7 +139,7 @@ class SuperLocalMemoryChatStore(BaseChatStore):
|
|
|
139
139
|
|
|
140
140
|
Args:
|
|
141
141
|
db_path: Optional path to the SQLite database file.
|
|
142
|
-
Defaults to ``~/.
|
|
142
|
+
Defaults to ``~/.superlocalmemory/memory.db``.
|
|
143
143
|
"""
|
|
144
144
|
|
|
145
145
|
# Pydantic fields ---------------------------------------------------
|
|
@@ -154,7 +154,7 @@ class SuperLocalMemoryChatStore(BaseChatStore):
|
|
|
154
154
|
|
|
155
155
|
Args:
|
|
156
156
|
db_path: Optional path to the SLM SQLite database.
|
|
157
|
-
If None, uses the default ``~/.
|
|
157
|
+
If None, uses the default ``~/.superlocalmemory/memory.db``.
|
|
158
158
|
"""
|
|
159
159
|
super().__init__(**kwargs)
|
|
160
160
|
self._db_path = db_path
|