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 CHANGED
@@ -1,1118 +1,233 @@
1
1
  # Claude Recall
2
2
 
3
- An MCP server that gives Claude persistent memory across conversations.
3
+ ### Persistent, local memory for Claude Code powered by realtime event orchestration.
4
4
 
5
- Every time you start a new conversation with Claude, you're starting from scratch. Claude doesn't remember your preferences, your project context, or the decisions you've made together. Until now.
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
- **Claude Recall** is an MCP (Model Context Protocol) server that gives Claude persistent memory across conversations. It learns from your interactions and provides relevant context in future conversations, making Claude feel like a true collaborator who remembers your journey together.
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
- ## Key Features
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
- ### 🧠 Intelligent Learning Loop
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
- **After installation, verify:**
63
- ```bash
64
- npx claude-recall --version # Should show installed version
65
- ```
16
+ ## 🚀 Features
66
17
 
67
- ### Enable Autonomous Memory Agent
18
+ ### **🌱 Continuous Learning (Local SQLite)**
68
19
 
69
- **Start the memory agent for real-time memory capture:**
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
- ```bash
72
- npx claude-recall agent start
73
- ```
24
+ ### **⚡ Realtime Memory Intelligence (PubNub Event Bus)**
74
25
 
75
- **What this does:**
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
- **How it works:**
83
- 1. **Hooks installed automatically** - PubNub hooks publish events (fire-and-forget)
84
- 2. **Agent receives events** - Subscribes to tool execution and prompt events
85
- 3. **Memory operations** - Searches relevant memories proactively, stores preferences automatically
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
- **Agent commands:**
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
- ### Why Local Over Global?
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
- **Local installation (`npm install claude-recall`):**
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
- **Global installation (`npm install -g`):**
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
- **Bottom line:** Install locally in each project. The MCP server (`~/.claude.json`) and database (`~/.claude-recall/`) are shared globally anyway, so you get the best of both worlds.
42
+ * architecture
43
+ * conventions
44
+ * decisions
45
+ * constraints
46
+ * mistakes + corrections
47
+ * coding preferences
48
+ * tech stack
113
49
 
114
- ### If You Have Global Installation
50
+ Switch projects Claude switches memory.
115
51
 
116
- **Remove it:**
117
- ```bash
118
- npm uninstall -g claude-recall
119
- ```
52
+ ### **🔌 Zero Cloud Storage**
120
53
 
121
- **Then install locally in each project** as shown above. Your memories in `~/.claude-recall/claude-recall.db` are preserved!
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
- ### Cross-Platform Compatibility
60
+ ### **💻 Claude Code–Native Integration**
124
61
 
125
- Claude Recall works on **Windows, Linux, and macOS**. Native binaries (SQLite) compile automatically for your platform during `npm install`.
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
- **WSL Users - Special Case:**
67
+ ---
128
68
 
129
- If you use **both Windows and WSL** for the same project (e.g., Electron app runs on Windows, but you use WSL):
69
+ ## Quick Start
130
70
 
131
- **Problem**: Installing locally creates Windows binaries, but WSL needs Linux binaries → "invalid ELF header" errors.
71
+ ### **Requirements**
132
72
 
133
- **Solution**: Use WSL-specific local installation:
134
- ```bash
135
- # From WSL, in your project directory:
136
- cd /path/to/your-project
137
- npm install claude-recall
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
- # This installs Linux binaries AND hook scripts
140
- # MCP server configured in ~/.claude.json works for all projects
141
- ```
80
+ ---
142
81
 
143
- **Why this works**:
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
- #### Priority 1: Explicit "Remember" Commands (100% Confidence)
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
- **Store memory directly:**
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
- **Project-specific memories**:
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
- **Default** (unscoped, works like before):
886
- ```
887
- User: "I prefer Jest for testing"
888
- Claude: [Stores with scope=null, available everywhere]
889
- ```
95
+ In Claude Code:
890
96
 
891
- ### Searching with Scopes
97
+ > "Search my memories for preferences."
892
98
 
893
- **Default** (current project + universal):
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
- **All projects**:
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
- ### Use Cases
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
- **How It Works:**
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
- # Project ID detected from directory name:
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
- # Same behavior whether claude-recall is:
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
- **Database Location (Always Global):**
117
+ Stores:
971
118
 
972
- Whether you install globally or locally, the database is **always** at:
973
- ```
974
- ~/.claude-recall/claude-recall.db
975
- ```
119
+ * preferences
120
+ * project knowledge
121
+ * coding style
122
+ * corrections
123
+ * workflow patterns
124
+ * successes & failures
976
125
 
977
- This single database contains:
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
- **Example: Two Projects, One Installation**
128
+ ---
983
129
 
984
- ```bash
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
- # Project B:
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
- # Same global installation, proper isolation!
996
- ```
134
+ **Why PubNub?**
997
135
 
998
- **WSL Users:**
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
- This is why **global installation in WSL** works perfectly for project scoping:
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
- Global installation actually **helps** WSL users by avoiding binary conflicts while maintaining perfect project isolation!
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
- ## Memory Management
151
+ **Privacy guarantee:**
152
+ No code, file contents, conversation text, or memory content is ever transmitted.
153
+ Only minimal metadata.
1008
154
 
1009
- Claude Recall automatically manages memory to prevent unlimited database growth, with user notifications:
155
+ ---
1010
156
 
1011
- ### Current Limits
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
- ### User Notifications
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
- ### Memory Retention by Type
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
- ### Manual Management
1031
- ```bash
1032
- # Check database size and memory count (with usage percentage)
1033
- claude-recall stats
163
+ * Search memory
164
+ * Provide context
165
+ * Adjust plan
1034
166
 
1035
- # Clear old memories
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
- # Export before clearing
1041
- claude-recall export backup.json
1042
- ```
169
+ * Capture new learnings
170
+ * Update or evolve memories
171
+ * Suggest improvements through PubNub
1043
172
 
1044
- ### Environment Variables
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
- ## Troubleshooting
175
+ * High-quality reasoning
176
+ * Structured decision making
177
+ * Leverages stored knowledge
1053
178
 
1054
- ### Memories not being retrieved?
1055
- 1. Verify memories exist: `claude-recall stats`
1056
- 2. Search manually to test: `claude-recall search "your topic"`
179
+ ---
1057
180
 
1058
- ### Installation shows old version?
181
+ ## 📚 Full Documentation
1059
182
 
1060
- #### For global installation (CLI usage):
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
- #### For local installation (CLAUDE.md integration):
1069
- ```bash
1070
- npm cache clean --force
1071
- npm uninstall claude-recall
1072
- npm install claude-recall@latest
1073
- npx claude-recall --version
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
- ### Performance issues?
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
- ### Need Help?
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
- ## Best Practices
203
+ Claude Recall is a **local-first**, privacy-focused system.
1092
204
 
1093
- 1. **Be explicit about preferences** - Clear statements like "Always use..." or "Never..." are captured better
1094
- 2. **Approve or correct** - Say "Good!" or "No, do this" after tasks to build the learning loop
1095
- 3. **Trust the learning loop** - Direct MCP search finds preferences, successes, and failures instantly
1096
- 4. **Correct mistakes immediately** - Corrections get highest priority and won't be repeated
1097
- 5. **Review periodically** - Use `claude-recall stats` to see what's being remembered
1098
- 6. **Export important memories** - Backup critical preferences with `claude-recall export`
1099
- 7. **Fast and simple** - Direct MCP calls work great for most tasks (agent is optional)
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
- ## Acknowledgements
213
+ Full security notes: `docs/security.md`.
1102
214
 
1103
- This project makes extensive use of the excellent work from:
1104
- - [claude-flow](https://github.com/ruvnet/claude-flow) - by Ruvnet
215
+ ---
1105
216
 
1106
- ## License
217
+ ## 🛠 Development
1107
218
 
1108
- MIT - Use it, modify it, make it yours.
219
+ PRs welcome see `CONTRIBUTING.md` (optional).
220
+ Local development uses the Memory Agent + PubNub + SQLite.
1109
221
 
1110
- ## Disclaimer
222
+ ---
1111
223
 
1112
- This software is provided "as-is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
224
+ ## ❤️ Community
1113
225
 
1114
- This project is provided for free to the community. While every effort has been made to ensure quality and security (including automated security reviews), users should review and test the code according to their own requirements before use in production environments.
226
+ Issues and feedback are welcome.
227
+ Claude Recall is evolving rapidly — your input shapes it.
1115
228
 
1116
229
  ---
1117
230
 
1118
- Built with ❤️ by a developer who was tired of repeating himself to Claude.
231
+ ## 📝 License
232
+
233
+ MIT.