claude-recall 0.8.1 → 0.8.3
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 +147 -1032
- package/dist/pubnub/memory-agent.js +1 -1
- package/docs/architecture.md +160 -0
- package/docs/cli.md +79 -0
- package/docs/faq.md +240 -0
- package/docs/hooks.md +84 -0
- package/docs/installation.md +134 -0
- package/docs/learning-loop.md +76 -0
- package/docs/memory-types.md +62 -0
- package/docs/project-scoping.md +57 -0
- package/docs/quickstart.md +84 -0
- package/docs/security.md +78 -0
- package/docs/troubleshooting.md +79 -0
- package/package.json +1 -1
- package/docs/API_REFERENCE.md +0 -236
- package/docs/ARCHITECTURE.md +0 -204
- package/docs/Claude-Recall-MCP-Analysis-Manus.md +0 -524
- package/docs/PUBNUB_INTEGRATION.md +0 -533
- package/docs/PUBNUB_QUICKSTART.md +0 -263
- package/docs/PUBNUB_SUMMARY.md +0 -422
- package/docs/REAL-TIME-INTELLIGENCE-ANALYSIS.md +0 -1242
- package/docs/TDD-GUIDE.md +0 -513
- package/docs/TEST-DOCUMENTATION.md +0 -794
package/README.md
CHANGED
|
@@ -1,1118 +1,233 @@
|
|
|
1
1
|
# Claude Recall
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
### Persistent, local memory for Claude Code — powered by realtime event orchestration.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Claude Recall is a **local memory engine + MCP server** that gives Claude Code something it's missing by default:
|
|
6
|
+
**the ability to learn from you over time.**
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
Your preferences, project structure, workflows, corrections, and coding style are captured automatically and applied in future sessions — **securely stored on your machine**.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
> **TL;DR**
|
|
11
|
+
> Claude Recall stores and searches your past preferences and project knowledge.
|
|
12
|
+
> Install it → restart Claude Code → Claude automatically uses memory before writing or editing files.
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
- **Never repeat yourself** - State preferences once, Claude remembers forever
|
|
13
|
-
- **Learn from outcomes** - Automatically captures what worked and what didn't
|
|
14
|
-
- **Direct MCP search** - Fast, simple memory lookup (milliseconds, no agent overhead)
|
|
15
|
-
- **Automatic application** - Preferences and successful patterns applied without asking
|
|
16
|
-
- **Persistent across restarts** - Your learnings survive Claude Code restarts
|
|
17
|
-
|
|
18
|
-
### 📝 Intelligent Capture
|
|
19
|
-
- **Automatic extraction** - Captures preferences, patterns, and important information from conversations
|
|
20
|
-
- **Categorized storage** - Organizes memories by type (preferences, project knowledge, corrections)
|
|
21
|
-
- **Priority-based** - More important or frequently used memories are prioritized
|
|
22
|
-
|
|
23
|
-
### ⚡ Advanced Features
|
|
24
|
-
- **Direct MCP calls** - Fast memory search without agent overhead (milliseconds)
|
|
25
|
-
- **Comprehensive search** - Single search finds preferences, successes, failures, and corrections
|
|
26
|
-
- **Outcome capture** - Stores what worked and what didn't for future learning
|
|
27
|
-
- **Learning loop** - Pre-action search → Execute → Post-action outcome → Future tasks apply learnings
|
|
28
|
-
- **Optional agent** - Advanced context-manager agent available for complex workflows
|
|
29
|
-
- **Correction priority** - User corrections given highest priority (never repeat mistakes)
|
|
30
|
-
|
|
31
|
-
### 🧠 Intelligence & Evolution
|
|
32
|
-
- **Sophistication tracking** - Measures agent progression from basic tool use to compositional reasoning
|
|
33
|
-
- **Failure learning** - Captures what failed, why it failed, and what should be done instead (counterfactual reasoning)
|
|
34
|
-
- **Evolution metrics** - View progression score, confidence trends, and failure rates over time
|
|
35
|
-
- **Structured memories** - Rich Title/Description/Content format for better human readability
|
|
36
|
-
- **Automatic classification** - Memories auto-classified by sophistication level (L1-L4)
|
|
37
|
-
|
|
38
|
-
### 🔒 Privacy & Security First
|
|
39
|
-
- **100% Local** - All memories stored locally in SQLite (~/.claude-recall/)
|
|
40
|
-
- **No cloud sync** - Your data never leaves your machine
|
|
41
|
-
- **You own your data** - Export, view, or delete memories at any time
|
|
42
|
-
- **Zero telemetry** - No data collection or phone-home behavior
|
|
43
|
-
- **Security audited** - Reviewed using `/security-review` command: No exposed secrets, SQL injection protection, 0 npm vulnerabilities
|
|
44
|
-
|
|
45
|
-
## Quick Start
|
|
46
|
-
|
|
47
|
-
### Recommended: Local Project Installation
|
|
48
|
-
|
|
49
|
-
**Install in each project where you want Claude Recall:**
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
cd your-project
|
|
53
|
-
npm install claude-recall
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
**What this does:**
|
|
57
|
-
- ✅ Creates `.claude/` directory with memory-first workflow instructions
|
|
58
|
-
- ✅ Configures MCP server in `~/.claude.json` (global, works everywhere)
|
|
59
|
-
- ✅ Adds to `package.json` (team members get it automatically)
|
|
60
|
-
- ✅ CLI available via `npx claude-recall stats`
|
|
14
|
+
---
|
|
61
15
|
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
npx claude-recall --version # Should show installed version
|
|
65
|
-
```
|
|
16
|
+
## 🚀 Features
|
|
66
17
|
|
|
67
|
-
###
|
|
18
|
+
### **🌱 Continuous Learning (Local SQLite)**
|
|
68
19
|
|
|
69
|
-
|
|
20
|
+
* Learns your coding patterns, tool preferences, and corrections
|
|
21
|
+
* Stores and evolves them in a local SQLite database
|
|
22
|
+
* Claud Code automatically searches memory before performing actions
|
|
70
23
|
|
|
71
|
-
|
|
72
|
-
npx claude-recall agent start
|
|
73
|
-
```
|
|
24
|
+
### **⚡ Realtime Memory Intelligence (PubNub Event Bus)**
|
|
74
25
|
|
|
75
|
-
**
|
|
76
|
-
- 🤖 Starts background process that monitors tool/prompt events via PubNub
|
|
77
|
-
- ⚡ Non-blocking hooks (<10ms) publish events without slowing Claude Code
|
|
78
|
-
- 🧠 Agent autonomously searches/stores memories based on your activity
|
|
79
|
-
- 📊 View status: `npx claude-recall agent status`
|
|
80
|
-
- 📋 View logs: `npx claude-recall agent logs`
|
|
26
|
+
Claude Recall uses a lightweight, metadata-only PubNub layer to enable **instant, asynchronous memory processing**:
|
|
81
27
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
4. **No Claude Code blocking** - All heavy lifting happens in background process
|
|
28
|
+
* Hooks publish tool events and prompt metadata to PubNub channels
|
|
29
|
+
* Memory Agent subscribes in real time
|
|
30
|
+
* Processes events without blocking Claude
|
|
31
|
+
* Suggests relevant memories back to Claude Code
|
|
87
32
|
|
|
88
|
-
**
|
|
89
|
-
```bash
|
|
90
|
-
npx claude-recall agent start # Start the agent
|
|
91
|
-
npx claude-recall agent stop # Stop the agent
|
|
92
|
-
npx claude-recall agent restart # Restart the agent
|
|
93
|
-
npx claude-recall agent status # Check if running
|
|
94
|
-
npx claude-recall agent logs # View agent activity
|
|
95
|
-
```
|
|
33
|
+
This gives hooks **sub-10ms execution**, compared to 50–500ms with synchronous CLI pipelines.
|
|
96
34
|
|
|
97
|
-
|
|
35
|
+
> **No user text, code, or memory content is ever sent over PubNub.**
|
|
36
|
+
> Only small metadata packets — tool names, file paths, event types, heartbeat signals.
|
|
98
37
|
|
|
99
|
-
|
|
100
|
-
- ✅ `.claude/CLAUDE.md` auto-created in your project
|
|
101
|
-
- ✅ `.claude/agents/` available for Claude Code
|
|
102
|
-
- ✅ Team members get it via `package.json`
|
|
103
|
-
- ✅ Use `npx claude-recall` for CLI
|
|
104
|
-
- ✅ MCP server still works globally
|
|
38
|
+
### **📂 Project-Scoped Knowledge**
|
|
105
39
|
|
|
106
|
-
|
|
107
|
-
- ❌ `.claude/` directory NOT auto-created
|
|
108
|
-
- ❌ Must manually copy integration files to each project
|
|
109
|
-
- ❌ Harder to share with team
|
|
110
|
-
- ✅ CLI available without `npx`
|
|
40
|
+
Each project gets its own memory context:
|
|
111
41
|
|
|
112
|
-
|
|
42
|
+
* architecture
|
|
43
|
+
* conventions
|
|
44
|
+
* decisions
|
|
45
|
+
* constraints
|
|
46
|
+
* mistakes + corrections
|
|
47
|
+
* coding preferences
|
|
48
|
+
* tech stack
|
|
113
49
|
|
|
114
|
-
|
|
50
|
+
Switch projects → Claude switches memory.
|
|
115
51
|
|
|
116
|
-
**
|
|
117
|
-
```bash
|
|
118
|
-
npm uninstall -g claude-recall
|
|
119
|
-
```
|
|
52
|
+
### **🔌 Zero Cloud Storage**
|
|
120
53
|
|
|
121
|
-
|
|
54
|
+
* All memory stays local
|
|
55
|
+
* SQLite database in `~/.claude-recall/`
|
|
56
|
+
* No telemetry
|
|
57
|
+
* No remote sync
|
|
58
|
+
* PubNub carries **ephemeral metadata only**
|
|
122
59
|
|
|
123
|
-
###
|
|
60
|
+
### **💻 Claude Code–Native Integration**
|
|
124
61
|
|
|
125
|
-
|
|
62
|
+
* MCP server automatically detected
|
|
63
|
+
* Realtime memory suggestions
|
|
64
|
+
* High-quality planning via Python hooks
|
|
65
|
+
* Automatic search-before-edit behavior
|
|
126
66
|
|
|
127
|
-
|
|
67
|
+
---
|
|
128
68
|
|
|
129
|
-
|
|
69
|
+
## ⚡ Quick Start
|
|
130
70
|
|
|
131
|
-
**
|
|
71
|
+
### **Requirements**
|
|
132
72
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
npm
|
|
73
|
+
| Component | Version | Notes |
|
|
74
|
+
| --------- | ----------------------- | ------------------------------------- |
|
|
75
|
+
| Node.js | **20+** | required for better-sqlite3 |
|
|
76
|
+
| Python | **3.x** | required for Claude Code hook scripts |
|
|
77
|
+
| PubNub | included via npm | metadata-only usage |
|
|
78
|
+
| OS | macOS / Linux / Windows | WSL supported |
|
|
138
79
|
|
|
139
|
-
|
|
140
|
-
# MCP server configured in ~/.claude.json works for all projects
|
|
141
|
-
```
|
|
80
|
+
---
|
|
142
81
|
|
|
143
|
-
**
|
|
144
|
-
- WSL gets Linux binaries (no ELF errors)
|
|
145
|
-
- Hooks installed to project's `.claude/hooks/` (automatic memory search enforcement works)
|
|
146
|
-
- MCP server in `~/.claude.json` is global (works everywhere)
|
|
147
|
-
- Memory database `~/.claude-recall/` is global (shared across projects)
|
|
82
|
+
### **Install (recommended: per project)**
|
|
148
83
|
|
|
149
|
-
**Alternative (NOT recommended)**: If you absolutely need global installation:
|
|
150
84
|
```bash
|
|
151
|
-
npm install -g claude-recall
|
|
152
|
-
|
|
153
|
-
# ⚠️ WARNING: You MUST manually install hooks to each project:
|
|
154
85
|
cd your-project
|
|
155
|
-
mkdir -p .claude/hooks
|
|
156
|
-
cp $(npm root -g)/claude-recall/.claude/hooks/* .claude/hooks/
|
|
157
|
-
cp $(npm root -g)/claude-recall/.claude/settings.json .claude/settings.json
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
This manual approach loses automatic setup and team sharing via `package.json`.
|
|
161
|
-
|
|
162
|
-
### Node.js Version Requirement
|
|
163
|
-
|
|
164
|
-
Claude Recall requires **Node.js 20+** due to native dependencies (better-sqlite3). If you're on Node 18 or older:
|
|
165
|
-
|
|
166
|
-
**Install Node 20 using nvm:**
|
|
167
|
-
```bash
|
|
168
|
-
# Install nvm (if not already installed)
|
|
169
|
-
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
170
|
-
source ~/.bashrc
|
|
171
|
-
|
|
172
|
-
# Install Node 20
|
|
173
|
-
nvm install 20
|
|
174
|
-
nvm use 20
|
|
175
|
-
node --version # Should show v20.x.x
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
**Reinstall claude-recall with Node 20:**
|
|
179
|
-
```bash
|
|
180
|
-
cd ~/path-to-project-dir
|
|
181
|
-
rm -rf node_modules package-lock.json
|
|
182
86
|
npm install claude-recall
|
|
183
|
-
npx claude-recall --version
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
## Updating Claude Recall
|
|
187
|
-
|
|
188
|
-
**For local installations (recommended):**
|
|
189
|
-
|
|
190
|
-
```bash
|
|
191
|
-
# 1. Update in your project
|
|
192
|
-
cd your-project
|
|
193
|
-
npm install claude-recall@latest
|
|
194
|
-
|
|
195
|
-
# 2. Restart Claude Code
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
**For global installations (not recommended):**
|
|
199
|
-
|
|
200
|
-
```bash
|
|
201
|
-
# 1. Update globally
|
|
202
|
-
npm install -g claude-recall@latest
|
|
203
|
-
|
|
204
|
-
# 2. Restart Claude Code
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
**Note:** MCP server configuration in `~/.claude.json` persists across updates. You only need to update the package.
|
|
208
|
-
|
|
209
|
-
### Database Migration
|
|
210
|
-
|
|
211
|
-
Claude Recall automatically migrates your database schema when updating. See [CHANGELOG.md](CHANGELOG.md) for version-specific migration notes if upgrading from older versions.
|
|
212
|
-
|
|
213
|
-
### 🚀 Revolutionary Architecture: Fire-and-Forget Memory
|
|
214
|
-
|
|
215
|
-
**What Makes This Different:**
|
|
216
|
-
|
|
217
|
-
Traditional memory systems block your workflow while processing. Claude Recall uses a **revolutionary event-driven architecture** that keeps Claude Code fast while memory operations happen autonomously in the background.
|
|
218
|
-
|
|
219
|
-
**The Innovation:**
|
|
220
|
-
|
|
221
|
-
```
|
|
222
|
-
┌─────────────┐ ┌─────────────┐ ┌──────────────────┐
|
|
223
|
-
│ Claude Code │ │ PubNub │ │ Memory Agent │
|
|
224
|
-
│ │ │ Message Bus │ │ (Daemon) │
|
|
225
|
-
└──────┬──────┘ └──────┬──────┘ └────────┬─────────┘
|
|
226
|
-
│ │ │
|
|
227
|
-
│ Tool use (Write/Edit/Bash) │ │
|
|
228
|
-
├────────────────────────────────> │
|
|
229
|
-
│ │ │
|
|
230
|
-
│ Hook fires (<10ms) │ │
|
|
231
|
-
│ Publishes event │ │
|
|
232
|
-
│ Returns immediately ✓ │ │
|
|
233
|
-
├────────────────────────────────> │
|
|
234
|
-
│ │ │
|
|
235
|
-
│ Continue execution │ Event received │
|
|
236
|
-
│ (no blocking!) ├────────────────────────────────>
|
|
237
|
-
│ │ │
|
|
238
|
-
│ │ Agent processes: │
|
|
239
|
-
│ │ - Search memories │
|
|
240
|
-
│ │ - Store preferences │
|
|
241
|
-
│ │ - Learn from patterns │
|
|
242
|
-
│ │ (all async) │
|
|
243
|
-
│ │ │
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
**Key Architectural Advantages:**
|
|
247
|
-
|
|
248
|
-
1. **<10ms Latency** - Hooks publish events and return immediately, no blocking
|
|
249
|
-
2. **True Autonomy** - Memory agent runs as independent daemon process
|
|
250
|
-
3. **Event-Driven Decoupling** - PubNub acts as message bus between Claude Code and agent
|
|
251
|
-
4. **Zero Performance Impact** - All memory operations happen in background thread
|
|
252
|
-
5. **Real-Time Pub/Sub** - Agent subscribes to events, processes asynchronously
|
|
253
|
-
6. **Fault Isolation** - If agent crashes, Claude Code continues working
|
|
254
|
-
|
|
255
|
-
**Automatic Setup:**
|
|
256
|
-
|
|
257
|
-
When you `npm install claude-recall`, the installer automatically:
|
|
258
|
-
1. Creates `.claude/hooks/` directory in your project
|
|
259
|
-
2. Installs PubNub hook scripts:
|
|
260
|
-
- `pubnub_pre_tool_hook.py` - Publishes tool execution events (fire-and-forget)
|
|
261
|
-
- `pubnub_prompt_hook.py` - Publishes user prompts for preference extraction
|
|
262
|
-
3. Configures `.claude/settings.json` with hook bindings
|
|
263
|
-
|
|
264
|
-
**How It Works:**
|
|
265
|
-
|
|
266
|
-
```python
|
|
267
|
-
# Hook executes in <10ms:
|
|
268
|
-
1. Receive tool execution event from Claude Code
|
|
269
|
-
2. Publish to PubNub (fire-and-forget)
|
|
270
|
-
3. Return immediately ✓
|
|
271
|
-
|
|
272
|
-
# Meanwhile, memory agent (running as daemon):
|
|
273
|
-
4. Receives event from PubNub
|
|
274
|
-
5. Searches relevant memories
|
|
275
|
-
6. Stores new patterns
|
|
276
|
-
7. Updates memory database
|
|
277
|
-
(all happens asynchronously, doesn't block Claude Code)
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
**Configuration:**
|
|
281
|
-
|
|
282
|
-
Hooks are configured in `.claude/settings.json`:
|
|
283
|
-
|
|
284
|
-
```json
|
|
285
|
-
{
|
|
286
|
-
"hooks": {
|
|
287
|
-
"PreToolUse": [
|
|
288
|
-
{
|
|
289
|
-
"matcher": "Write|Edit|Bash",
|
|
290
|
-
"hooks": [
|
|
291
|
-
{
|
|
292
|
-
"type": "command",
|
|
293
|
-
"command": "python3 .claude/hooks/pubnub_pre_tool_hook.py"
|
|
294
|
-
}
|
|
295
|
-
]
|
|
296
|
-
}
|
|
297
|
-
],
|
|
298
|
-
"UserPromptSubmit": [
|
|
299
|
-
{
|
|
300
|
-
"hooks": [
|
|
301
|
-
{
|
|
302
|
-
"type": "command",
|
|
303
|
-
"command": "python3 .claude/hooks/pubnub_prompt_hook.py"
|
|
304
|
-
}
|
|
305
|
-
]
|
|
306
|
-
}
|
|
307
|
-
]
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
**Requirements:**
|
|
313
|
-
- Python 3 (pre-installed on most systems)
|
|
314
|
-
- Memory agent running: `npx claude-recall agent start`
|
|
315
|
-
- Hook scripts installed automatically during `npm install`
|
|
316
|
-
|
|
317
|
-
**Troubleshooting:**
|
|
318
|
-
|
|
319
|
-
If hooks aren't working:
|
|
320
|
-
1. Check Python is available: `python3 --version`
|
|
321
|
-
2. Verify hooks are installed: `ls .claude/hooks/`
|
|
322
|
-
3. Check agent status: `npx claude-recall agent status`
|
|
323
|
-
4. View agent logs: `npx claude-recall agent logs`
|
|
324
|
-
5. Restart agent: `npx claude-recall agent restart`
|
|
325
|
-
|
|
326
|
-
## Verifying Claude Recall is Working
|
|
327
|
-
|
|
328
|
-
To confirm claude-recall is active in your Claude Code session:
|
|
329
|
-
|
|
330
|
-
**1. Check MCP Server Status**
|
|
331
|
-
```bash
|
|
332
|
-
claude mcp list
|
|
333
|
-
```
|
|
334
|
-
Should show `claude-recall` in the list of active servers.
|
|
335
|
-
|
|
336
|
-
**2. Ask Claude to Search Memories**
|
|
337
|
-
Simply ask: "Search my memories for [anything]" - Claude should be able to call the search tool.
|
|
338
|
-
|
|
339
|
-
**3. Check Available MCP Tools**
|
|
340
|
-
Ask Claude: "What MCP tools do you have access to?" - Claude should list tools starting with `mcp__claude-recall__` including:
|
|
341
|
-
- `mcp__claude-recall__store_memory`
|
|
342
|
-
- `mcp__claude-recall__retrieve_memory`
|
|
343
|
-
- `mcp__claude-recall__search`
|
|
344
|
-
|
|
345
|
-
**4. Store and Retrieve a Test Memory**
|
|
346
|
-
```
|
|
347
|
-
You: "Remember that I prefer testing with Jest"
|
|
348
|
-
Claude: [Should call store_memory tool]
|
|
349
|
-
|
|
350
|
-
You: "What testing framework do I prefer?"
|
|
351
|
-
Claude: [Should search memories and find Jest]
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
**5. Check Stats via CLI**
|
|
355
|
-
```bash
|
|
356
|
-
claude-recall stats
|
|
357
|
-
```
|
|
358
|
-
This shows if memories are being stored.
|
|
359
|
-
|
|
360
|
-
**6. Check Running Process**
|
|
361
|
-
```bash
|
|
362
|
-
ps aux | grep claude-recall
|
|
363
|
-
```
|
|
364
|
-
Should show the MCP server process running.
|
|
365
|
-
|
|
366
|
-
## PubNub: Fire-and-Forget Architecture
|
|
367
|
-
|
|
368
|
-
Claude Recall uses **PubNub** as a real-time message bus to enable truly autonomous memory operations with zero performance impact on Claude Code.
|
|
369
|
-
|
|
370
|
-
### What is PubNub?
|
|
371
|
-
|
|
372
|
-
PubNub is a real-time pub/sub messaging service that acts as a message bus between Claude Code and the Memory Agent. When Claude Code executes a tool (Write, Edit, Bash), a lightweight hook publishes an event to PubNub and returns immediately (<10ms). The Memory Agent, running as an independent daemon, subscribes to these events and processes them asynchronously.
|
|
373
|
-
|
|
374
|
-
**Simple flow:**
|
|
375
|
-
```
|
|
376
|
-
Claude Code → Hook (<10ms) → PubNub → Memory Agent (background)
|
|
377
|
-
↓
|
|
378
|
-
Continues immediately
|
|
379
|
-
(zero blocking!)
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
### Why This Matters
|
|
383
|
-
|
|
384
|
-
- **<10ms hook latency** - Hooks return instantly, no waiting
|
|
385
|
-
- **Zero performance impact** - Memory operations happen in background
|
|
386
|
-
- **True autonomy** - Agent runs independently, crashes don't affect Claude Code
|
|
387
|
-
- **Fault isolation** - If agent fails, Claude Code continues working
|
|
388
|
-
- **Real-time pub/sub** - Events flow asynchronously through message bus
|
|
389
|
-
|
|
390
|
-
### Demo Keys Included
|
|
391
|
-
|
|
392
|
-
Claude Recall includes **demo PubNub keys** that work out of the box - no signup or configuration required. Perfect for getting started immediately.
|
|
393
|
-
|
|
394
|
-
**For production use**, you can optionally use your own PubNub keys (free tier available). See [PubNub Integration Guide](docs/PUBNUB_INTEGRATION.md) for details.
|
|
395
|
-
|
|
396
|
-
## How It Works
|
|
397
|
-
|
|
398
|
-
Claude Recall implements an **intelligent learning loop** that ensures you never repeat yourself:
|
|
399
|
-
|
|
400
|
-
### The Learning Loop
|
|
401
|
-
|
|
402
|
-
1. **Store Preferences**: When you express preferences, they're stored in SQLite
|
|
403
|
-
2. **Pre-Action Search**: Before tasks, Claude searches memories directly (fast MCP call)
|
|
404
|
-
3. **Find Context**: Search finds preferences + successes + failures + corrections automatically
|
|
405
|
-
4. **Execute with Context**: Claude applies what was learned
|
|
406
|
-
5. **Capture Outcome**: After task, Claude stores success/failure/correction
|
|
407
|
-
6. **Future Application**: Next similar task automatically applies learnings
|
|
408
|
-
|
|
409
|
-
### Complete Example: Never Repeat Yourself
|
|
410
|
-
|
|
411
87
|
```
|
|
412
|
-
=== First Time: State Preference ===
|
|
413
|
-
You: "I prefer Python for scripts"
|
|
414
|
-
[Claude stores preference via MCP]
|
|
415
|
-
|
|
416
|
-
=== Second Time: First Use ===
|
|
417
|
-
You: "Create a test script"
|
|
418
|
-
[Claude searches: mcp__claude-recall__search("scripts python test")]
|
|
419
|
-
[Search finds: "I prefer Python for scripts"]
|
|
420
|
-
[Claude creates test.py using Python]
|
|
421
|
-
You: "Perfect!"
|
|
422
|
-
[Claude stores: "Created test script with Python - SUCCESS"]
|
|
423
|
-
|
|
424
|
-
=== Third Time: Automatic Application ===
|
|
425
|
-
You: "Create a build script"
|
|
426
|
-
[Claude searches: mcp__claude-recall__search("scripts build python")]
|
|
427
|
-
[Search finds: "I prefer Python" + "test.py SUCCESS"]
|
|
428
|
-
[Claude creates build.py automatically - learned pattern!]
|
|
429
|
-
You: *Don't have to repeat preference - it was learned!*
|
|
430
|
-
|
|
431
|
-
=== Correction Loop ===
|
|
432
|
-
You: "No, put scripts in scripts/ directory not root"
|
|
433
|
-
[Claude stores: "CORRECTION: Scripts in scripts/ directory" (highest priority)]
|
|
434
|
-
[Claude moves file immediately]
|
|
435
|
-
Next time: Search finds correction and applies automatically
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
## Claude Code Skills Integration
|
|
439
|
-
|
|
440
|
-
Claude Recall now integrates with **Claude Code Skills** for better LLM compliance and automatic memory management.
|
|
441
|
-
|
|
442
|
-
### What Are Skills?
|
|
443
|
-
|
|
444
|
-
Skills are structured task modules that teach Claude how to perform specific workflows. Unlike `.claude/CLAUDE.md` (which are passive instructions), Skills are recognized by Claude Code's runtime and loaded intelligently.
|
|
445
|
-
|
|
446
|
-
**Benefits:**
|
|
447
|
-
- ✅ **Better compliance**: Skills are runtime-integrated, not just text instructions
|
|
448
|
-
- ✅ **Progressive disclosure**: Only load detailed instructions when needed
|
|
449
|
-
- ✅ **Structured format**: YAML frontmatter makes parsing more reliable
|
|
450
|
-
- ✅ **Tool teaching**: Explicitly teaches WHEN and HOW to use MCP tools
|
|
451
|
-
|
|
452
|
-
### Memory Management Skill
|
|
453
|
-
|
|
454
|
-
**Location:** `.claude/skills/memory-management/SKILL.md`
|
|
455
|
-
|
|
456
|
-
This Skill teaches Claude to:
|
|
457
|
-
1. **Search memories before tasks** - Automatic search before file operations
|
|
458
|
-
2. **Store memories after outcomes** - Success/failure/correction capture
|
|
459
|
-
3. **Apply learned patterns** - Use devops workflows, preferences automatically
|
|
460
|
-
4. **Check what's captured** - Verify automatic capture worked
|
|
461
|
-
|
|
462
|
-
**Created automatically** when you install Claude Recall in a project.
|
|
463
|
-
|
|
464
|
-
### Skill Structure
|
|
465
|
-
|
|
466
|
-
```
|
|
467
|
-
.claude/
|
|
468
|
-
├── CLAUDE.md # Backward compatibility
|
|
469
|
-
├── agents/ # Optional context-manager agent
|
|
470
|
-
└── skills/
|
|
471
|
-
└── memory-management/
|
|
472
|
-
├── SKILL.md # Main skill definition
|
|
473
|
-
└── references/
|
|
474
|
-
├── devops-patterns.md # DevOps capture examples
|
|
475
|
-
├── capture-examples.md # Manual storage templates
|
|
476
|
-
└── troubleshooting.md # Common issues & fixes
|
|
477
|
-
```
|
|
478
|
-
|
|
479
|
-
### How Skills Work
|
|
480
|
-
|
|
481
|
-
1. **Metadata loaded first** - Claude reads skill name/description (fast)
|
|
482
|
-
2. **Full instructions when needed** - Detailed workflow loaded on-demand
|
|
483
|
-
3. **References as needed** - Examples and patterns loaded if required
|
|
484
|
-
|
|
485
|
-
**Example:**
|
|
486
|
-
```
|
|
487
|
-
User: "Create authentication module"
|
|
488
|
-
|
|
489
|
-
Claude:
|
|
490
|
-
1. Loads memory-management Skill metadata
|
|
491
|
-
2. Reads SKILL.md instructions → "Search before tasks"
|
|
492
|
-
3. Searches: mcp__claude-recall__search("authentication devops testing")
|
|
493
|
-
4. Finds: "Always use JWT" + "Tests in __tests__/" + "TDD approach"
|
|
494
|
-
5. Creates auth module following learned patterns
|
|
495
|
-
6. Loads references/capture-examples.md for success storage template
|
|
496
|
-
7. Stores: "Created auth with JWT - SUCCESS"
|
|
497
|
-
```
|
|
498
|
-
|
|
499
|
-
### Backward Compatibility
|
|
500
|
-
|
|
501
|
-
**Both work together:**
|
|
502
|
-
- **CLAUDE.md** - General instructions for Claude Code
|
|
503
|
-
- **SKILL.md** - Specific memory management workflow
|
|
504
|
-
|
|
505
|
-
Skills take precedence when both exist, but CLAUDE.md provides fallback for users without Skills support.
|
|
506
|
-
|
|
507
|
-
## How Memory Capture Works
|
|
508
|
-
|
|
509
|
-
**You don't need to say "remember"** - Claude Recall automatically captures preferences when you speak naturally.
|
|
510
|
-
|
|
511
|
-
### Automatic Trigger Words
|
|
512
|
-
|
|
513
|
-
Claude Recall uses a **three-tier priority system** to capture memories:
|
|
514
88
|
|
|
515
|
-
|
|
516
|
-
```
|
|
517
|
-
"Remember that I prefer TypeScript with strict mode"
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
#### Priority 2 & 3: Automatic Pattern Detection (60%+ Confidence)
|
|
521
|
-
|
|
522
|
-
**Strong indicators** (boost confidence):
|
|
523
|
-
- `prefer`, `always`, `never`
|
|
524
|
-
- `from now on`, `moving forward`, `going forward`
|
|
525
|
-
|
|
526
|
-
**General indicators**:
|
|
527
|
-
- `use`, `should`, `want`, `like`, `love`
|
|
528
|
-
- `save`, `store`, `put`, `place`, `create`, `make`
|
|
529
|
-
|
|
530
|
-
### Examples That Work WITHOUT "Remember"
|
|
531
|
-
|
|
532
|
-
| What You Say | Automatically Captured? | Confidence |
|
|
533
|
-
|--------------|------------------------|------------|
|
|
534
|
-
| "I prefer TypeScript with strict mode" | ✅ YES | High (80%+) |
|
|
535
|
-
| "Always use Jest for testing" | ✅ YES | High (80%+) |
|
|
536
|
-
| "Never put tests in the root directory" | ✅ YES | High (80%+) |
|
|
537
|
-
| "From now on, use 4 spaces for indentation" | ✅ YES | High (85%+) |
|
|
538
|
-
| "I want scripts in the scripts/ folder" | ✅ YES | Medium (70%+) |
|
|
539
|
-
| "Use Axios for HTTP requests" | ✅ YES | Medium (70%+) |
|
|
540
|
-
| "Tests should go in __tests__/" | ✅ YES | Medium (70%+) |
|
|
541
|
-
| "Create files with .ts extension" | ✅ YES | Medium (65%+) |
|
|
542
|
-
| "Maybe use React" | ❌ NO | Low (< 60%) |
|
|
543
|
-
|
|
544
|
-
### Confidence Threshold
|
|
545
|
-
|
|
546
|
-
- **Minimum confidence**: 60% required for automatic capture
|
|
547
|
-
- **"Remember" keyword**: Ensures 100% confidence capture (but not required)
|
|
548
|
-
- **Stronger language**: "prefer", "always", "never" boost confidence
|
|
549
|
-
- **Override signals**: "from now on", "actually", "instead" boost confidence
|
|
550
|
-
|
|
551
|
-
**Bottom line**: Speak naturally about your preferences - Claude Recall captures them automatically. Use "remember" only when you want to ensure something is captured with absolute certainty.
|
|
552
|
-
|
|
553
|
-
## Memory Types
|
|
554
|
-
|
|
555
|
-
Claude Recall stores different types of memories (sorted by priority):
|
|
556
|
-
|
|
557
|
-
### 1. DevOps (Highest Priority - v0.5.0+)
|
|
558
|
-
- **Project-specific workflows** that are critical to how you work
|
|
559
|
-
- Git conventions, testing approaches, build processes
|
|
560
|
-
- Development environment setup (WSL, Docker, etc.)
|
|
561
|
-
- Architecture decisions, tech stack choices
|
|
562
|
-
- **Automatically captured** when you describe your workflow
|
|
563
|
-
- **Example**: "We use TDD for all new features"
|
|
564
|
-
- **Example**: "Always create feature branches from main"
|
|
565
|
-
- **Example**: "This is a teleprompter tool for interviews"
|
|
566
|
-
|
|
567
|
-
### 2. Corrections
|
|
568
|
-
- User explicitly said "No, do this instead"
|
|
569
|
-
- Fixes to mistakes Claude made
|
|
570
|
-
- Override previous approaches
|
|
571
|
-
- **Example**: "CORRECTION: Tests in __tests__/ not tests/"
|
|
572
|
-
|
|
573
|
-
### 3. Preferences
|
|
574
|
-
- Coding style preferences (languages, frameworks, patterns)
|
|
575
|
-
- Tool preferences (testing frameworks, build tools)
|
|
576
|
-
- File organization, naming conventions
|
|
577
|
-
- **Example**: "I prefer TypeScript with strict mode"
|
|
578
|
-
|
|
579
|
-
### 4. Successes
|
|
580
|
-
- What worked in past tasks
|
|
581
|
-
- Approaches that user approved
|
|
582
|
-
- Validated patterns
|
|
583
|
-
- **Example**: "Created auth module with JWT tokens - SUCCESS"
|
|
584
|
-
|
|
585
|
-
### 5. Failures
|
|
586
|
-
- What didn't work and should be avoided
|
|
587
|
-
- Approaches that failed or were rejected
|
|
588
|
-
- Deprecated approaches
|
|
589
|
-
- **Example**: "Session-based auth failed, use JWT instead"
|
|
590
|
-
|
|
591
|
-
### 6. Project Knowledge
|
|
592
|
-
- Database configurations
|
|
593
|
-
- API patterns and endpoints
|
|
594
|
-
- Infrastructure details (tenant IDs, endpoints)
|
|
595
|
-
- Dependencies and versions
|
|
596
|
-
- **Example**: "Tenant ID is abc-123"
|
|
597
|
-
- **Example**: "API endpoint: https://api.example.com"
|
|
598
|
-
|
|
599
|
-
### 7. Tool Use
|
|
600
|
-
- Historical tool execution
|
|
601
|
-
- Command patterns
|
|
602
|
-
- Workflow steps
|
|
603
|
-
|
|
604
|
-
## CLI Commands
|
|
605
|
-
|
|
606
|
-
All commands can be run from your terminal or **within Claude Code sessions** (Claude can execute them using the Bash tool).
|
|
607
|
-
|
|
608
|
-
### Memory Operations
|
|
609
|
-
|
|
610
|
-
**Search memories:**
|
|
611
|
-
```bash
|
|
612
|
-
npx claude-recall search "database"
|
|
613
|
-
npx claude-recall search "auth" --limit 20 # Show up to 20 results
|
|
614
|
-
npx claude-recall search "config" --project my-app # Filter by project + universal
|
|
615
|
-
npx claude-recall search "testing" --global # Search all projects
|
|
616
|
-
npx claude-recall search "api" --json # Output as JSON
|
|
617
|
-
```
|
|
618
|
-
|
|
619
|
-
**View statistics:**
|
|
620
|
-
```bash
|
|
621
|
-
npx claude-recall stats # Current project + universal + unscoped
|
|
622
|
-
npx claude-recall stats --project my-app # Specific project + universal
|
|
623
|
-
npx claude-recall stats --global # All projects
|
|
624
|
-
```
|
|
89
|
+
Restart **Claude Code**.
|
|
625
90
|
|
|
626
|
-
|
|
627
|
-
```bash
|
|
628
|
-
npx claude-recall store "I prefer TypeScript with strict mode"
|
|
629
|
-
npx claude-recall store "Use PostgreSQL" --type project-knowledge
|
|
630
|
-
```
|
|
631
|
-
|
|
632
|
-
### Intelligence & Evolution
|
|
633
|
-
|
|
634
|
-
**View memory evolution and sophistication metrics:**
|
|
635
|
-
```bash
|
|
636
|
-
npx claude-recall evolution # Last 30 days
|
|
637
|
-
npx claude-recall evolution --days 60 # Last 60 days
|
|
638
|
-
npx claude-recall evolution --project my-app # Filter by project
|
|
639
|
-
```
|
|
640
|
-
|
|
641
|
-
**Example `evolution` output:**
|
|
642
|
-
```
|
|
643
|
-
📈 Memory Evolution
|
|
644
|
-
|
|
645
|
-
Analysis Period: Last 30 days
|
|
646
|
-
Total Memories: 145
|
|
647
|
-
Progression Score: 67/100
|
|
648
|
-
|
|
649
|
-
Sophistication Breakdown:
|
|
650
|
-
Procedural (L1): 45 ( 31.0%)
|
|
651
|
-
Self-Reflection (L2): 38 ( 26.2%)
|
|
652
|
-
Adaptive (L3): 52 ( 35.9%)
|
|
653
|
-
Compositional (L4): 10 ( 6.9%)
|
|
654
|
-
|
|
655
|
-
Average Confidence: 0.78 ↗
|
|
656
|
-
Failure Rate: 12.4% ↘
|
|
657
|
-
|
|
658
|
-
○ Agent developing adaptive patterns
|
|
659
|
-
```
|
|
660
|
-
|
|
661
|
-
**Sophistication Levels:**
|
|
662
|
-
- **L1 Procedural**: Basic tool use, simple actions
|
|
663
|
-
- **L2 Self-Reflection**: Error checking, corrections, learning from failures
|
|
664
|
-
- **L3 Adaptive**: Systematic workflows, devops patterns
|
|
665
|
-
- **L4 Compositional**: Multi-constraint reasoning, complex decision-making
|
|
666
|
-
|
|
667
|
-
**View failure memories with counterfactual learning:**
|
|
668
|
-
```bash
|
|
669
|
-
npx claude-recall failures # Last 10 failures
|
|
670
|
-
npx claude-recall failures --limit 20 # Show 20 most recent
|
|
671
|
-
npx claude-recall failures --project my-app # Filter by project
|
|
672
|
-
```
|
|
673
|
-
|
|
674
|
-
**Example `failures` output:**
|
|
675
|
-
```
|
|
676
|
-
❌ Failure Memories (Counterfactual Learning)
|
|
677
|
-
|
|
678
|
-
1. Avoid: Reading file without existence check
|
|
679
|
-
What Failed: Attempted to read config.json directly
|
|
680
|
-
Why Failed: File does not exist at expected location
|
|
681
|
-
Should Do: Verify file path exists before reading. Use fs.existsSync()
|
|
682
|
-
Preventative Checks:
|
|
683
|
-
- Verify file exists before reading (fs.existsSync)
|
|
684
|
-
- Handle ENOENT errors gracefully
|
|
685
|
-
|
|
686
|
-
2. Avoid: Session-based authentication
|
|
687
|
-
What Failed: Session-based auth implementation
|
|
688
|
-
Why Failed: User reported: Doesn't scale across multiple servers
|
|
689
|
-
Should Do: Use JWT tokens instead
|
|
690
|
-
```
|
|
691
|
-
|
|
692
|
-
### Data Management
|
|
693
|
-
|
|
694
|
-
**Export/import memories:**
|
|
695
|
-
```bash
|
|
696
|
-
npx claude-recall export memories.json # Export all memories
|
|
697
|
-
npx claude-recall export backup.json --json # Export as JSON
|
|
698
|
-
npx claude-recall import memories.json # Import memories
|
|
699
|
-
```
|
|
700
|
-
|
|
701
|
-
**Clear memories (use with caution):**
|
|
702
|
-
```bash
|
|
703
|
-
npx claude-recall clear --force # Clear everything (requires --force)
|
|
704
|
-
```
|
|
705
|
-
|
|
706
|
-
### MCP Server Commands
|
|
707
|
-
|
|
708
|
-
**What are MCP commands?**
|
|
709
|
-
The MCP (Model Context Protocol) server is how Claude Code communicates with Claude Recall. When you install claude-recall, it automatically configures `~/.claude.json` to start the MCP server.
|
|
710
|
-
|
|
711
|
-
**Process Management:**
|
|
712
|
-
```bash
|
|
713
|
-
# Start/stop
|
|
714
|
-
npx claude-recall mcp start # Start MCP server (auto-started by Claude Code)
|
|
715
|
-
npx claude-recall mcp stop # Stop running server gracefully
|
|
716
|
-
npx claude-recall mcp restart # Restart server
|
|
717
|
-
npx claude-recall mcp test # Test MCP server functionality
|
|
718
|
-
|
|
719
|
-
# Monitoring
|
|
720
|
-
npx claude-recall mcp status # Show server status for current project
|
|
721
|
-
npx claude-recall mcp ps # List all running MCP servers (all projects)
|
|
722
|
-
|
|
723
|
-
# Cleanup
|
|
724
|
-
npx claude-recall mcp cleanup # Remove stale PID files and processes
|
|
725
|
-
npx claude-recall mcp cleanup --dry-run # Preview cleanup actions
|
|
726
|
-
npx claude-recall mcp cleanup --all # Stop all MCP servers (all projects)
|
|
727
|
-
```
|
|
728
|
-
|
|
729
|
-
**When to use:**
|
|
730
|
-
- **Auto-started**: Claude Code automatically starts the MCP server on launch
|
|
731
|
-
- **Manual management**: Stop, restart, or cleanup stale servers as needed
|
|
732
|
-
- **Troubleshooting**: Use `mcp ps` to see running servers, `mcp cleanup` to remove zombies
|
|
733
|
-
- **Testing**: Use `mcp test` to verify the server responds correctly
|
|
734
|
-
|
|
735
|
-
### Utilities
|
|
736
|
-
|
|
737
|
-
**Check installation status:**
|
|
738
|
-
```bash
|
|
739
|
-
npx claude-recall status # Show installation and system status
|
|
740
|
-
npx claude-recall --version # Show version
|
|
741
|
-
```
|
|
742
|
-
|
|
743
|
-
**Monitoring (advanced):**
|
|
744
|
-
```bash
|
|
745
|
-
npx claude-recall monitor # View search monitoring stats
|
|
746
|
-
npx claude-recall test-memory-search # Test if Claude searches before file creation
|
|
747
|
-
```
|
|
748
|
-
|
|
749
|
-
**Migration:**
|
|
750
|
-
```bash
|
|
751
|
-
# Database schema migration
|
|
752
|
-
npx claude-recall migrate schema # Migrate database schema (automatic)
|
|
753
|
-
npx claude-recall migrate schema --backup # Create backup before migration
|
|
754
|
-
|
|
755
|
-
# Architecture migration (file-watcher → MCP)
|
|
756
|
-
npx claude-recall migrate # Migrate from file-watcher to MCP architecture
|
|
757
|
-
```
|
|
758
|
-
|
|
759
|
-
### Global Options
|
|
760
|
-
|
|
761
|
-
All commands support:
|
|
762
|
-
- `--verbose` - Enable verbose logging
|
|
763
|
-
- `--config <path>` - Use custom config file
|
|
764
|
-
- `-h, --help` - Show help for any command
|
|
765
|
-
|
|
766
|
-
## Project Management
|
|
767
|
-
|
|
768
|
-
Claude Recall maintains a **project registry** to track all projects using it, enabling better organization and visibility across multiple projects.
|
|
769
|
-
|
|
770
|
-
### Auto-Registration
|
|
771
|
-
|
|
772
|
-
Projects are automatically registered when:
|
|
773
|
-
- The MCP server starts (every time Claude Code connects)
|
|
774
|
-
- You run `npm install claude-recall` locally
|
|
775
|
-
- You manually run `npx claude-recall project register`
|
|
776
|
-
|
|
777
|
-
The registry stores:
|
|
778
|
-
- Project path
|
|
779
|
-
- Claude Recall version
|
|
780
|
-
- Registration date
|
|
781
|
-
- Last activity timestamp
|
|
782
|
-
|
|
783
|
-
### Project Commands
|
|
784
|
-
|
|
785
|
-
**List all registered projects:**
|
|
786
|
-
```bash
|
|
787
|
-
npx claude-recall project list # Human-friendly output
|
|
788
|
-
npx claude-recall project list --json # JSON format
|
|
789
|
-
```
|
|
790
|
-
|
|
791
|
-
Shows:
|
|
792
|
-
- Project name and path
|
|
793
|
-
- Claude Recall version
|
|
794
|
-
- Last activity
|
|
795
|
-
- MCP server status (active/inactive)
|
|
796
|
-
|
|
797
|
-
**Show project details:**
|
|
798
|
-
```bash
|
|
799
|
-
npx claude-recall project show # Current project
|
|
800
|
-
npx claude-recall project show my-project # Specific project
|
|
801
|
-
```
|
|
802
|
-
|
|
803
|
-
Displays:
|
|
804
|
-
- Registry information (path, version, timestamps)
|
|
805
|
-
- MCP server status (running/stopped, PID)
|
|
806
|
-
|
|
807
|
-
**Register a project:**
|
|
808
|
-
```bash
|
|
809
|
-
npx claude-recall project register # Current directory
|
|
810
|
-
npx claude-recall project register --path /path/to/project
|
|
811
|
-
```
|
|
812
|
-
|
|
813
|
-
**Unregister a project:**
|
|
814
|
-
```bash
|
|
815
|
-
npx claude-recall project unregister # Current project
|
|
816
|
-
npx claude-recall project unregister my-project
|
|
817
|
-
```
|
|
818
|
-
|
|
819
|
-
**Note**: Unregistering does NOT remove memories or MCP configuration - only the registry entry.
|
|
820
|
-
|
|
821
|
-
**Clean up stale entries:**
|
|
822
|
-
```bash
|
|
823
|
-
npx claude-recall project clean # Remove projects not seen in 30 days
|
|
824
|
-
npx claude-recall project clean --days 60 # Custom threshold
|
|
825
|
-
npx claude-recall project clean --dry-run # Preview without changes
|
|
826
|
-
```
|
|
827
|
-
|
|
828
|
-
### Enhanced MCP Commands
|
|
829
|
-
|
|
830
|
-
MCP commands now show registry information:
|
|
831
|
-
|
|
832
|
-
```bash
|
|
833
|
-
npx claude-recall mcp status # Shows registry info + MCP status
|
|
834
|
-
npx claude-recall mcp ps # Lists all servers with version info
|
|
835
|
-
```
|
|
836
|
-
|
|
837
|
-
### Registry Storage
|
|
838
|
-
|
|
839
|
-
Registry stored at: `~/.claude-recall/projects.json`
|
|
840
|
-
|
|
841
|
-
Format:
|
|
842
|
-
```json
|
|
843
|
-
{
|
|
844
|
-
"version": 1,
|
|
845
|
-
"projects": {
|
|
846
|
-
"my-project": {
|
|
847
|
-
"path": "/full/path/to/my-project",
|
|
848
|
-
"registeredAt": "2025-11-09T...",
|
|
849
|
-
"version": "0.7.5",
|
|
850
|
-
"lastSeen": "2025-11-09T..."
|
|
851
|
-
}
|
|
852
|
-
}
|
|
853
|
-
}
|
|
854
|
-
```
|
|
855
|
-
|
|
856
|
-
**Note**: The registry is separate from your memory database. Cleaning the registry does NOT affect your stored memories.
|
|
857
|
-
|
|
858
|
-
## Project Scoping
|
|
859
|
-
|
|
860
|
-
Claude Recall now supports **project-specific memory isolation** while keeping universal preferences available everywhere.
|
|
861
|
-
|
|
862
|
-
### How It Works
|
|
863
|
-
|
|
864
|
-
- **Single global database**: `~/.claude-recall/claude-recall.db`
|
|
865
|
-
- **Three memory scopes**:
|
|
866
|
-
- **Universal**: Available in all projects (coding preferences, tools)
|
|
867
|
-
- **Project**: Only available in the specific project
|
|
868
|
-
- **Unscoped** (default): Available everywhere (backward compatible)
|
|
869
|
-
- **Project ID**: Automatically detected from directory name
|
|
870
|
-
|
|
871
|
-
### Storing Memories
|
|
872
|
-
|
|
873
|
-
**Universal memories** (available everywhere):
|
|
874
|
-
```
|
|
875
|
-
User: "Remember everywhere: I prefer TypeScript with strict mode"
|
|
876
|
-
Claude: [Stores with scope='universal']
|
|
877
|
-
```
|
|
91
|
+
---
|
|
878
92
|
|
|
879
|
-
**
|
|
880
|
-
```
|
|
881
|
-
User: "For this project, we use SQLite for the database"
|
|
882
|
-
Claude: [Stores with scope='project', project_id='my-app']
|
|
883
|
-
```
|
|
93
|
+
### **Verify it's working**
|
|
884
94
|
|
|
885
|
-
|
|
886
|
-
```
|
|
887
|
-
User: "I prefer Jest for testing"
|
|
888
|
-
Claude: [Stores with scope=null, available everywhere]
|
|
889
|
-
```
|
|
95
|
+
In Claude Code:
|
|
890
96
|
|
|
891
|
-
|
|
97
|
+
> "Search my memories for preferences."
|
|
892
98
|
|
|
893
|
-
|
|
894
|
-
```bash
|
|
895
|
-
npx claude-recall search "database"
|
|
896
|
-
# Returns: Current project memories + universal memories + unscoped
|
|
897
|
-
```
|
|
99
|
+
Claude should call:
|
|
898
100
|
|
|
899
|
-
**Specific project**:
|
|
900
|
-
```bash
|
|
901
|
-
npx claude-recall search "database" --project my-app
|
|
902
|
-
# Returns: my-app memories + universal memories + unscoped
|
|
903
101
|
```
|
|
904
|
-
|
|
905
|
-
**All projects**:
|
|
906
|
-
```bash
|
|
907
|
-
npx claude-recall search "database" --global
|
|
908
|
-
# Returns: All memories from all projects
|
|
909
|
-
```
|
|
910
|
-
|
|
911
|
-
### Stats with Scopes
|
|
912
|
-
|
|
913
|
-
**Current project**:
|
|
914
|
-
```bash
|
|
915
|
-
npx claude-recall stats
|
|
916
|
-
# Shows: Memories for current project (claude-recall) + universal + unscoped
|
|
102
|
+
mcp__claude-recall__search
|
|
917
103
|
```
|
|
918
104
|
|
|
919
|
-
|
|
920
|
-
```bash
|
|
921
|
-
npx claude-recall stats --global
|
|
922
|
-
# Shows: All memories across all projects
|
|
923
|
-
```
|
|
105
|
+
If results appear → Claude Recall is active.
|
|
924
106
|
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
**Universal memories** (scope='universal'):
|
|
928
|
-
- Coding style preferences: "Always use TypeScript with strict mode"
|
|
929
|
-
- Tool preferences: "Prefer Jest for testing"
|
|
930
|
-
- File naming conventions: "Name markdown files with lowercase-dash-case"
|
|
931
|
-
|
|
932
|
-
**Project-specific memories** (scope='project'):
|
|
933
|
-
- Database choice: "This project uses PostgreSQL"
|
|
934
|
-
- API endpoints: "API base URL is https://api.example.com"
|
|
935
|
-
- Build commands: "Run npm run build:prod for production"
|
|
936
|
-
|
|
937
|
-
**Unscoped memories** (scope=null, default):
|
|
938
|
-
- Backward compatible
|
|
939
|
-
- Works like v0.7.1 and earlier
|
|
940
|
-
- Available everywhere unless you explicitly scope them
|
|
941
|
-
|
|
942
|
-
### How Project Scoping Works (Installation Location)
|
|
943
|
-
|
|
944
|
-
**Important**: Where you install claude-recall (global vs local) does NOT affect project-specific memory scoping!
|
|
945
|
-
|
|
946
|
-
**What Determines Project Scope:**
|
|
947
|
-
|
|
948
|
-
1. ✅ **Claude Code's working directory** - Where you run Claude Code
|
|
949
|
-
2. ✅ **Database scoping logic** - Filters memories by project_id
|
|
950
|
-
3. ❌ **Installation location** - Doesn't matter for scoping
|
|
107
|
+
---
|
|
951
108
|
|
|
952
|
-
|
|
109
|
+
## 🧠 How It Works
|
|
953
110
|
|
|
954
|
-
|
|
955
|
-
# Claude Code runs in this directory:
|
|
956
|
-
/home/user/projects/my-app
|
|
111
|
+
Claude Recall consists of **three integrated systems**:
|
|
957
112
|
|
|
958
|
-
|
|
959
|
-
project_id = "my-app"
|
|
960
|
-
|
|
961
|
-
# Memories stored/searched with that project_id:
|
|
962
|
-
- "For this project, use PostgreSQL" → stored with project_id="my-app"
|
|
963
|
-
- "Remember everywhere: I prefer TypeScript" → stored with scope="universal"
|
|
113
|
+
---
|
|
964
114
|
|
|
965
|
-
|
|
966
|
-
# - Installed globally: /usr/local/lib/node_modules/claude-recall
|
|
967
|
-
# - Installed locally: ./node_modules/claude-recall
|
|
968
|
-
```
|
|
115
|
+
### **1. The Memory Engine (SQLite, local)**
|
|
969
116
|
|
|
970
|
-
|
|
117
|
+
Stores:
|
|
971
118
|
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
119
|
+
* preferences
|
|
120
|
+
* project knowledge
|
|
121
|
+
* coding style
|
|
122
|
+
* corrections
|
|
123
|
+
* workflow patterns
|
|
124
|
+
* successes & failures
|
|
976
125
|
|
|
977
|
-
|
|
978
|
-
- Project-specific memories for each project (isolated by project_id)
|
|
979
|
-
- Universal memories (available in all projects)
|
|
980
|
-
- Unscoped memories (backward compatible)
|
|
126
|
+
Memory is structured, versioned, and evolves over time.
|
|
981
127
|
|
|
982
|
-
|
|
128
|
+
---
|
|
983
129
|
|
|
984
|
-
|
|
985
|
-
# Project A:
|
|
986
|
-
cd ~/projects/project-a
|
|
987
|
-
# Claude Code detects: project_id = "project-a"
|
|
988
|
-
# Memories: isolated to project-a + universal + unscoped
|
|
130
|
+
### **2. The Realtime Event Bus (PubNub)**
|
|
989
131
|
|
|
990
|
-
|
|
991
|
-
cd ~/projects/project-b
|
|
992
|
-
# Claude Code detects: project_id = "project-b"
|
|
993
|
-
# Memories: isolated to project-b + universal + unscoped
|
|
132
|
+
A lightweight, metadata-only communication layer enabling **non-blocking hooks** and **fast memory updates**.
|
|
994
133
|
|
|
995
|
-
|
|
996
|
-
```
|
|
134
|
+
**Why PubNub?**
|
|
997
135
|
|
|
998
|
-
|
|
136
|
+
* Hooks complete in <10ms
|
|
137
|
+
* Memory Agent processes events asynchronously
|
|
138
|
+
* Claude stays fast and responsive
|
|
139
|
+
* Zero waiting on the MCP server
|
|
140
|
+
* No user data transmitted
|
|
999
141
|
|
|
1000
|
-
|
|
1001
|
-
- Code location: `/home/user/.nvm/.../bin/claude-recall` (global)
|
|
1002
|
-
- Project detection: Based on Claude Code's `cwd`, NOT installation path
|
|
1003
|
-
- Memory isolation: Each project gets its own memories + universal preferences
|
|
142
|
+
**Channels used:**
|
|
1004
143
|
|
|
1005
|
-
|
|
144
|
+
| Channel | Purpose | Payload (metadata only) |
|
|
145
|
+
| ----------------------- | ------------------------ | ----------------------- |
|
|
146
|
+
| `claude-tool-events` | tool invocation metadata | tool name, file path |
|
|
147
|
+
| `claude-prompt-stream` | prompt chunk events | token counts, not text |
|
|
148
|
+
| `claude-memory-context` | memory suggestions | memory IDs, confidence |
|
|
149
|
+
| `claude-presence` | heartbeat & lifecycle | agent online/offline |
|
|
1006
150
|
|
|
1007
|
-
|
|
151
|
+
**Privacy guarantee:**
|
|
152
|
+
No code, file contents, conversation text, or memory content is ever transmitted.
|
|
153
|
+
Only minimal metadata.
|
|
1008
154
|
|
|
1009
|
-
|
|
155
|
+
---
|
|
1010
156
|
|
|
1011
|
-
###
|
|
1012
|
-
- **Maximum memories**: 10,000 total (configurable)
|
|
1013
|
-
- **Database size threshold**: 10MB for automatic compaction
|
|
1014
|
-
- **Queue message retention**: 7 days for completed messages
|
|
157
|
+
### **3. Claude Code Hook System**
|
|
1015
158
|
|
|
1016
|
-
|
|
1017
|
-
- **Stats command** shows current usage: `8,234/10,000 (82.3%)`
|
|
1018
|
-
- **Warning at 80%**: "⚠️ Note: Memory usage is high"
|
|
1019
|
-
- **Critical at 90%**: "⚠️ WARNING: Approaching memory limit - pruning will occur soon"
|
|
1020
|
-
- **During pruning**: "🔄 Pruned 500 old tool-use memories"
|
|
1021
|
-
- **During compaction**: "🗜️ Compacting database... ✅ saved 2.3MB"
|
|
159
|
+
Hooks enforce high-quality behavior:
|
|
1022
160
|
|
|
1023
|
-
|
|
1024
|
-
- **Preferences**: Kept indefinitely (your coding style, tool choices)
|
|
1025
|
-
- **Project Knowledge**: Kept indefinitely (database configs, API patterns)
|
|
1026
|
-
- **Tool Usage**: Last 1,000 entries
|
|
1027
|
-
- **Corrections**: Last 100 entries
|
|
1028
|
-
- **Session memories**: Maximum 50 per session
|
|
161
|
+
**Pre-action:**
|
|
1029
162
|
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
claude-recall stats
|
|
163
|
+
* Search memory
|
|
164
|
+
* Provide context
|
|
165
|
+
* Adjust plan
|
|
1034
166
|
|
|
1035
|
-
|
|
1036
|
-
claude-recall clear --days 30 # Clear memories older than 30 days
|
|
1037
|
-
claude-recall clear --type tool_use # Clear specific type
|
|
1038
|
-
claude-recall clear --all # Clear everything (requires confirmation)
|
|
167
|
+
**Post-action:**
|
|
1039
168
|
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
169
|
+
* Capture new learnings
|
|
170
|
+
* Update or evolve memories
|
|
171
|
+
* Suggest improvements through PubNub
|
|
1043
172
|
|
|
1044
|
-
|
|
1045
|
-
```bash
|
|
1046
|
-
# Customize limits
|
|
1047
|
-
export CLAUDE_RECALL_MAX_MEMORIES=20000 # Increase memory limit
|
|
1048
|
-
export CLAUDE_RECALL_COMPACT_THRESHOLD=20971520 # 20MB compaction threshold
|
|
1049
|
-
export CLAUDE_RECALL_RETAIN_TOOL_USE=2000 # Keep more tool usage history
|
|
1050
|
-
```
|
|
173
|
+
**Planning hook:**
|
|
1051
174
|
|
|
1052
|
-
|
|
175
|
+
* High-quality reasoning
|
|
176
|
+
* Structured decision making
|
|
177
|
+
* Leverages stored knowledge
|
|
1053
178
|
|
|
1054
|
-
|
|
1055
|
-
1. Verify memories exist: `claude-recall stats`
|
|
1056
|
-
2. Search manually to test: `claude-recall search "your topic"`
|
|
179
|
+
---
|
|
1057
180
|
|
|
1058
|
-
|
|
181
|
+
## 📚 Full Documentation
|
|
1059
182
|
|
|
1060
|
-
|
|
1061
|
-
```bash
|
|
1062
|
-
npm cache clean --force
|
|
1063
|
-
npm uninstall -g claude-recall
|
|
1064
|
-
npm install -g claude-recall@latest
|
|
1065
|
-
claude-recall --version
|
|
1066
|
-
```
|
|
183
|
+
Detailed docs live in the `docs/` folder:
|
|
1067
184
|
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
185
|
+
| Topic | File |
|
|
186
|
+
| -------------------------- | ------------------------- |
|
|
187
|
+
| Installation | `docs/installation.md` |
|
|
188
|
+
| 5-minute Quickstart | `docs/quickstart.md` |
|
|
189
|
+
| Architecture (with PubNub) | `docs/architecture.md` |
|
|
190
|
+
| The Learning Loop | `docs/learning-loop.md` |
|
|
191
|
+
| Memory Types | `docs/memory-types.md` |
|
|
192
|
+
| CLI Reference | `docs/cli.md` |
|
|
193
|
+
| Hooks Documentation | `docs/hooks.md` |
|
|
194
|
+
| Project Scoping | `docs/project-scoping.md` |
|
|
195
|
+
| Troubleshooting | `docs/troubleshooting.md` |
|
|
196
|
+
| Security & Privacy | `docs/security.md` |
|
|
197
|
+
| FAQ | `docs/faq.md` |
|
|
1075
198
|
|
|
1076
|
-
|
|
1077
|
-
- Check database size: `ls -lh ~/.claude-recall/claude-recall.db`
|
|
1078
|
-
- Clear old memories: `claude-recall clear --days 30`
|
|
1079
|
-
- The system uses SQLite with optimized indexes for fast retrieval
|
|
199
|
+
---
|
|
1080
200
|
|
|
1081
|
-
|
|
1082
|
-
Run this diagnostic script and share the output:
|
|
1083
|
-
```bash
|
|
1084
|
-
claude-recall --version
|
|
1085
|
-
claude-recall stats
|
|
1086
|
-
ls -lh ~/.claude-recall/claude-recall.db
|
|
1087
|
-
node --version
|
|
1088
|
-
npm --version
|
|
1089
|
-
```
|
|
201
|
+
## 🔐 Security & Privacy
|
|
1090
202
|
|
|
1091
|
-
|
|
203
|
+
Claude Recall is a **local-first**, privacy-focused system.
|
|
1092
204
|
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
205
|
+
* All memory stored locally in SQLite
|
|
206
|
+
* PubNub used only for ephemeral event metadata
|
|
207
|
+
* No user data, code, or conversation text leaves your machine
|
|
208
|
+
* No cloud sync
|
|
209
|
+
* No telemetry
|
|
210
|
+
* You control your entire memory set
|
|
211
|
+
* Easy export/inspect/delete through CLI
|
|
1100
212
|
|
|
1101
|
-
|
|
213
|
+
Full security notes: `docs/security.md`.
|
|
1102
214
|
|
|
1103
|
-
|
|
1104
|
-
- [claude-flow](https://github.com/ruvnet/claude-flow) - by Ruvnet
|
|
215
|
+
---
|
|
1105
216
|
|
|
1106
|
-
##
|
|
217
|
+
## 🛠 Development
|
|
1107
218
|
|
|
1108
|
-
|
|
219
|
+
PRs welcome — see `CONTRIBUTING.md` (optional).
|
|
220
|
+
Local development uses the Memory Agent + PubNub + SQLite.
|
|
1109
221
|
|
|
1110
|
-
|
|
222
|
+
---
|
|
1111
223
|
|
|
1112
|
-
|
|
224
|
+
## ❤️ Community
|
|
1113
225
|
|
|
1114
|
-
|
|
226
|
+
Issues and feedback are welcome.
|
|
227
|
+
Claude Recall is evolving rapidly — your input shapes it.
|
|
1115
228
|
|
|
1116
229
|
---
|
|
1117
230
|
|
|
1118
|
-
|
|
231
|
+
## 📝 License
|
|
232
|
+
|
|
233
|
+
MIT.
|