@clauderecallhq/cli 0.64.0 → 0.64.4

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,10 +1,6 @@
1
1
  <div align="center">
2
2
 
3
- <picture>
4
- <source media="(prefers-color-scheme: dark)" srcset="https://clauderecall.com/wordmark-dark.svg">
5
- <source media="(prefers-color-scheme: light)" srcset="https://clauderecall.com/wordmark-light.svg">
6
- <img src="https://clauderecall.com/wordmark-dark.svg" alt="Claude Recall" width="400">
7
- </picture>
3
+ <img src="https://clauderecall.com/wordmark-light.svg" alt="Claude Recall" width="400">
8
4
 
9
5
  <br />
10
6
  <br />
@@ -15,17 +11,14 @@ Claude Recall indexes every Claude Code session you've ever run, surfaces what m
15
11
 
16
12
  <br />
17
13
 
18
- <img src="https://clauderecall.com/hero/brand-morph.gif" alt="Claude Recall memory tree morphing into the wordmark" width="700">
14
+ <img src="https://clauderecall.com/hero/brand-morph.gif" alt="Claude Recall, memory tree morphing into the wordmark" width="700">
19
15
 
20
16
  <br />
21
17
  <br />
22
18
 
23
- [![npm](https://img.shields.io/npm/v/@clauderecallhq/cli?style=flat-square&color=f97316&label=npm)](https://www.npmjs.com/package/@clauderecallhq/cli)
24
- [![Node](https://img.shields.io/badge/node-%E2%89%A522-43853d?style=flat-square&logo=node.js&logoColor=white)](https://nodejs.org)
25
- [![TypeScript](https://img.shields.io/badge/typescript-strict-3178c6?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
26
- [![Local-first](https://img.shields.io/badge/local--first-127.0.0.1%20only-0b0c0f?style=flat-square)](#privacy--security)
27
- [![License](https://img.shields.io/badge/license-proprietary-1a1a2e?style=flat-square)](#license)
28
- [![Site](https://img.shields.io/badge/clauderecall.com-f97316?style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PGxpbmUgeDE9IjIiIHkxPSIxMiIgeDI9IjIyIiB5Mj0iMTIiLz48cGF0aCBkPSJNMTIgMmExNS4zIDE1LjMgMCAwIDEgNCAxMCAxNS4zIDE1LjMgMCAwIDEtNCA4IDEwIi8+PC9zdmc+)](https://clauderecall.com)
19
+ [![npm](https://img.shields.io/npm/v/@clauderecallhq/cli?style=flat-square&color=f97316&labelColor=f97316&label=npm)](https://www.npmjs.com/package/@clauderecallhq/cli)
20
+ [![Downloads](https://img.shields.io/npm/dm/@clauderecallhq/cli?style=flat-square&color=f97316&labelColor=f97316&label=downloads)](https://www.npmjs.com/package/@clauderecallhq/cli)
21
+ [![License](https://img.shields.io/badge/license-proprietary-f97316?style=flat-square)](#license)
29
22
 
30
23
  <br />
31
24
 
@@ -96,17 +89,24 @@ Claude picks up where you left off instead of asking you to explain it again.
96
89
 
97
90
  <br />
98
91
 
92
+ <div align="center">
93
+
94
+ <img src="https://cdn.clauderecall.com/marketing/product-ui.png?v=hd3" alt="Claude Recall web UI — every Claude Code session you have ever run, with full transcripts, tool calls, threading, and search" width="900">
95
+
96
+ <sub>Every Claude Code session you have ever run. Searchable. Threaded. Re-injectable.</sub>
97
+
98
+ </div>
99
+
100
+ <br />
101
+
99
102
  ---
100
103
 
101
104
  <br />
102
105
 
103
106
  ## Features
104
107
 
105
- <table>
106
- <tr>
107
- <td width="50%" valign="top">
108
+ ### Context Re-injection (the moat)
108
109
 
109
- ### Context Re-injection &nbsp;<sub>← the moat</sub>
110
110
  Pipe any past session straight into a new Claude Code conversation as condensed markdown. Claude picks up where you left off instead of asking you to re-explain it. **Nothing else in this category has it.**
111
111
 
112
112
  ```bash
@@ -115,10 +115,8 @@ recall context <id> --prelude "continue this" | claude
115
115
  recall context <id> --since 2h | claude
116
116
  ```
117
117
 
118
- </td>
119
- <td width="50%" valign="top">
118
+ ### Threads
120
119
 
121
- ### Threads &nbsp;<sub>NEW · v0.15a</sub>
122
120
  Group related sessions into a DAG you can see, rename, and walk. Drag-to-reparent in the graph view. Right-click rename. Bulk-generate coherent titles across an entire thread with one click.
123
121
 
124
122
  ```bash
@@ -127,12 +125,8 @@ recall thread create "auth-refactor"
127
125
  recall thread add <thread> <session>
128
126
  ```
129
127
 
130
- </td>
131
- </tr>
132
- <tr>
133
- <td width="50%" valign="top">
134
-
135
128
  ### Full-Text Search
129
+
136
130
  FTS5 BM25 ranking across every message, every session, in milliseconds. Highlighted snippets, inline `#tag` filters, project + date scoping.
137
131
 
138
132
  ```bash
@@ -140,26 +134,20 @@ recall search "zod schema"
140
134
  recall search "auth #auth-fix" -p Pest-Control
141
135
  ```
142
136
 
143
- </td>
144
- <td width="50%" valign="top">
137
+ ### On-Device Vector Search (Pro)
145
138
 
146
- ### On-Device Vector Search &nbsp;<sub>Pro</sub>
147
139
  Local **768-dimension embeddings** via `bge-base-en-v1.5` ONNX. Three-lane RRF fusion (BM25 + summary + vectors) finds sessions by *meaning*, not keywords. Your code never leaves your laptop.
148
140
 
149
141
  The embedder model (~110MB) auto-downloads on `npm install`. Skip with `RECALL_SKIP_MODEL_DOWNLOAD=1`.
150
142
 
151
- > **Anonymous install ping (opt-in, off by default).** On first run we ask once whether you want to send a single anonymous message per month so we can count real installs vs bots. No PII, no fingerprint, no cross-month linkage. Full payload at [clauderecall.com/telemetry](https://clauderecall.com/telemetry). Toggle any time with `recall telemetry on` / `off` / `view`.
143
+ **Anonymous install ping (opt-in, off by default).** On first run we ask once whether you want to send a single anonymous message per month so we can count real installs vs bots. No PII, no fingerprint, no cross-month linkage. Full payload at [clauderecall.com/telemetry](https://clauderecall.com/telemetry). Toggle any time with `recall telemetry on` / `off` / `view`.
152
144
 
153
145
  ```bash
154
146
  recall similar <session-id>
155
147
  ```
156
148
 
157
- </td>
158
- </tr>
159
- <tr>
160
- <td width="50%" valign="top">
161
-
162
149
  ### Cost Analytics
150
+
163
151
  Per-session and per-project token + dollar totals. Daily sparkline. Top-10 heaviest sessions. Know exactly where your Anthropic bill is going.
164
152
 
165
153
  ```bash
@@ -167,10 +155,19 @@ recall stats <id>
167
155
  recall stats --project Tools --days 7
168
156
  ```
169
157
 
170
- </td>
171
- <td width="50%" valign="top">
158
+ <div align="center">
159
+
160
+ <video autoplay loop muted playsinline width="540">
161
+ <source src="https://cdn.clauderecall.com/marketing/cost-analytics.mp4?v=hd3" type="video/mp4">
162
+ <img src="https://cdn.clauderecall.com/marketing/cost-analytics.gif?v=hd3" alt="Cost analytics dashboard — daily spend bars, top sessions ranked by cost, primary model breakdown" width="540">
163
+ </video>
164
+
165
+ <sub>Hover any day. Exact cost. Exact tokens.</sub>
166
+
167
+ </div>
172
168
 
173
169
  ### Git Correlation
170
+
174
171
  Every session links to commits authored in its working directory during its time window. Reverse-map any commit back to the session that produced it.
175
172
 
176
173
  ```bash
@@ -178,65 +175,76 @@ recall correlate
178
175
  recall blame <sha>
179
176
  ```
180
177
 
181
- </td>
182
- </tr>
183
- <tr>
184
- <td width="50%" valign="top">
185
-
186
178
  ### Auto-Tagging
179
+
187
180
  Let Claude label your sessions automatically. Two modes: **MCP mode** (zero-setup, runs through your existing Claude Code subscription at no extra cost) or **BYOK** (paste your own Anthropic API key). Off by default, fully opt-in.
188
181
 
189
- </td>
190
- <td width="50%" valign="top">
182
+ ### MCP Server (35 tools)
191
183
 
192
- ### MCP Server &nbsp;<sub>33 tools</sub>
193
- Expose Recall to Claude Desktop, Claude Code, or any MCP client as native tools. **14 read tools always on**, **19 write tools** opt-in with rate limiting and append-only audit logging.
184
+ Expose Recall to Claude Desktop, Claude Code, or any MCP client as native tools. **13 read tools always on**, **22 write tools** opt-in with rate limiting and append-only audit logging.
194
185
 
195
186
  ```bash
196
187
  recall mcp
197
188
  recall mcp --allow-writes
198
189
  ```
199
190
 
200
- </td>
201
- </tr>
202
- <tr>
203
- <td width="50%" valign="top">
191
+ <div align="center">
204
192
 
205
- ### Collections, Tags & Notes
206
- Hand-curated hierarchical collections that cut across projects. Flat tags. Markdown notes per session. Aliases. Pins. Cross-session diff. Every write is reversible -- three-layer durability with plain-text mirrors on disk.
193
+ <video autoplay loop muted playsinline width="900">
194
+ <source src="https://cdn.clauderecall.com/marketing/mcp-server-demo.mp4?v=hd3" type="video/mp4">
195
+ <img src="https://cdn.clauderecall.com/marketing/mcp-server-demo.gif?v=hd3" alt="Claude calling Recall as native MCP tools — search and get_session executing live" width="900">
196
+ </video>
207
197
 
208
- </td>
209
- <td width="50%" valign="top">
198
+ <sub>Claude searches your history, pulls context, and decides — no copy-paste.</sub>
199
+
200
+ </div>
201
+
202
+ ### Collections, Tags and Notes
203
+
204
+ Hand-curated hierarchical collections that cut across projects. Flat tags. Markdown notes per session. Aliases. Pins. Cross-session diff. Every write is reversible: three-layer durability with plain-text mirrors on disk.
205
+
206
+ <div align="center">
207
+
208
+ <video autoplay loop muted playsinline width="540">
209
+ <source src="https://cdn.clauderecall.com/marketing/collections.mp4?v=hd3" type="video/mp4">
210
+ <img src="https://cdn.clauderecall.com/marketing/collections.gif?v=hd3" alt="Collections panel — Auth System, Database Migrations, React Refactor, API Design, Deployment Issues; drag a session card into a collection" width="540">
211
+ </video>
212
+
213
+ <sub>Drag-to-organize. Collections cut across projects.</sub>
214
+
215
+ </div>
210
216
 
211
217
  ### Web UI
218
+
212
219
  Dark-mode three-pane layout. **Virtualized transcript** (10,000-message sessions open instantly). `Cmd+K` command palette. Cross-session diff. First-60-seconds onboarding tour. Export to markdown, HTML, or print-ready PDF.
213
220
 
214
- </td>
215
- </tr>
216
- <tr>
217
- <td width="50%" valign="top">
221
+ <div align="center">
222
+
223
+ <video autoplay loop muted playsinline width="900">
224
+ <source src="https://cdn.clauderecall.com/marketing/tui-demo.mp4?v=hd3" type="video/mp4">
225
+ <img src="https://cdn.clauderecall.com/marketing/tui-demo.gif?v=hd3" alt="Full-screen terminal UI — sessions list with live preview pane, slash-to-filter" width="900">
226
+ </video>
227
+
228
+ <sub>Or stay in the terminal. <code>recall tui</code> ships the same library as a full-screen terminal app — slash to filter, arrow keys to navigate, live preview.</sub>
229
+
230
+ </div>
231
+
232
+ ### Rediscovery ("For you")
218
233
 
219
- ### Rediscovery &nbsp;<sub>"For you"</sub>
220
234
  Three rotating cards in the left pane surface forgotten sessions worth revisiting: a 60+-day-old session that overlaps with what you've been working on, your top-cost session this week, and the session that authored your current `HEAD`.
221
235
 
222
236
  ```bash
223
237
  recall digest
224
238
  ```
225
239
 
226
- </td>
227
- <td width="50%" valign="top">
228
-
229
240
  ### IDE Extension
230
- **VS Code · Cursor · Windsurf · VS Code Insiders.** Tag terminal tabs from inside your editor -- terminal names sync to Recall so sessions get meaningful aliases with zero CLI ceremony, live as you rename tabs.
241
+
242
+ **VS Code, Cursor, Windsurf, VS Code Insiders.** Tag terminal tabs from inside your editor; terminal names sync to Recall so sessions get meaningful aliases with zero CLI ceremony, live as you rename tabs.
231
243
 
232
244
  ```bash
233
245
  recall install-extension
234
246
  ```
235
247
 
236
- </td>
237
- </tr>
238
- </table>
239
-
240
248
  <br />
241
249
 
242
250
  <details>
@@ -244,13 +252,13 @@ recall install-extension
244
252
 
245
253
  <br />
246
254
 
247
- - **Secrets redaction** -- API keys, auth tokens, passwords, private-key blobs are detected by pattern and replaced with placeholders **before** text lands in the searchable index or any export. Original JSONLs untouched.
248
- - **Memory health scores** -- every session gets a freshness score; surfaces stale data so you know when to re-run a backfill.
249
- - **MCP audit log** -- every write tool call lands in `mcp_audit_events` with status (ok / error / rate_limited). Pure local, no telemetry.
250
- - **First-60-seconds onboarding** -- 3-step modal demos the moat (`recall context <id> | claude`) the moment you open the web UI.
251
- - **Cmd+K command palette** -- jump to any session, action, or setting in one keystroke.
252
- - **Multi-select sessions** -- `Cmd+Click` toggle, `Shift+Click` range, right-click to copy IDs.
253
- - **Three-layer durability** -- every write goes to SQLite + an append-only history column + a plain-text mirror on disk. Source JSONLs at `~/.claude/projects/` are strictly read-only.
255
+ - **Secrets redaction.** API keys, auth tokens, passwords, private-key blobs are detected by pattern and replaced with placeholders **before** text lands in the searchable index or any export. Original JSONLs untouched.
256
+ - **Memory health scores.** Every session gets a freshness score; surfaces stale data so you know when to re-run a backfill.
257
+ - **MCP audit log.** Every write tool call lands in `mcp_audit_events` with status (ok / error / rate_limited). Pure local, no telemetry.
258
+ - **First-60-seconds onboarding.** 3-step modal demos the moat (`recall context <id> | claude`) the moment you open the web UI.
259
+ - **Cmd+K command palette.** Jump to any session, action, or setting in one keystroke.
260
+ - **Multi-select sessions.** `Cmd+Click` toggle, `Shift+Click` range, right-click to copy IDs.
261
+ - **Three-layer durability.** Every write goes to SQLite + an append-only history column + a plain-text mirror on disk. Source JSONLs at `~/.claude/projects/` are strictly read-only.
254
262
 
255
263
  #### Keyboard Shortcuts
256
264
 
@@ -273,6 +281,19 @@ recall install-extension
273
281
 
274
282
  <br />
275
283
 
284
+ <div align="center">
285
+
286
+ <video autoplay loop muted playsinline width="900">
287
+ <source src="https://cdn.clauderecall.com/marketing/vs-obsidian.mp4?v=hd3" type="video/mp4">
288
+ <img src="https://cdn.clauderecall.com/marketing/vs-obsidian.gif?v=hd3" alt="Side-by-side: Obsidian vault on the left, Claude Recall TUI on the right showing 247 sessions across 8 projects with live preview" width="900">
289
+ </video>
290
+
291
+ <sub>People sometimes ask if this is "Obsidian for Claude Code." It is not. A general note-taking app cannot watch your filesystem for new sessions, index JSONLs into FTS5 + vector search, expose those sessions as MCP tools, or pipe a session back into Claude with one command. Claude Recall is built specifically for the loop you actually run.</sub>
292
+
293
+ </div>
294
+
295
+ <br />
296
+
276
297
  ## Quick Start
277
298
 
278
299
  ### Install
@@ -304,7 +325,7 @@ recall tui # full terminal UI: arrow-key browse, live search, pre
304
325
 
305
326
  `recall` (no args) prints a branded splash with version / daemon / sessions / license status and drops into a slash-aware prompt; type `/` to browse 60+ commands grouped by purpose (Setup, Browse, Pipe to Claude, Threads, Inference, Analytics, Daemon, Diagnostics, Integrations, Sharing, Feedback, Pro).
306
327
 
307
- `recall tui` mounts an Ink-based terminal app modeled on `lazygit` and `k9s`. Arrow keys to navigate, `/` to filter, `enter` to view the full transcript, `o` to open the selected session in the browser, `q` to quit.
328
+ `recall tui` mounts a full-screen terminal app modeled on `lazygit` and `k9s`. Arrow keys to navigate, `/` to filter, `enter` to view the full transcript, `o` to open the selected session in the browser, `q` to quit.
308
329
 
309
330
  ### Explore
310
331
 
@@ -329,15 +350,25 @@ recall context abc12345 --prelude "continue where we left off" | claude
329
350
  recall context abc12345 --since 2h | claude
330
351
  ```
331
352
 
353
+ <br />
354
+
355
+ <div align="center">
356
+
357
+ <img src="https://cdn.clauderecall.com/marketing/product-demo.gif?v=hd3" alt="Pipe past session context back into Claude with one command" width="720">
358
+
359
+ <sub>Claude resumes with full prior context. One command. No re-explaining.</sub>
360
+
361
+ </div>
362
+
332
363
  ### How Claude Recall integrates with Claude Code
333
364
 
334
- Don't think of Claude Recall as a *separate* tool you context-switch to. It's **Claude Code's memory layer** you reach it from inside any session through four surfaces, in increasing power:
365
+ Don't think of Claude Recall as a *separate* tool you context-switch to. It's **Claude Code's memory layer**: you reach it from inside any session through four surfaces, in increasing power:
335
366
 
336
- **1. Bash tool always available, zero setup.**
367
+ **1. Bash tool: always available, zero setup.**
337
368
 
338
- Inside any Claude Code conversation, just say *"run `recall search auth bug`"* (or any other recall command). The Bash tool executes it; output lands in the conversation. Works the moment you `npm install -g @clauderecallhq/cli` no config.
369
+ Inside any Claude Code conversation, just say *"run `recall search auth bug`"* (or any other recall command). The Bash tool executes it; output lands in the conversation. Works the moment you `npm install -g @clauderecallhq/cli`. No config.
339
370
 
340
- **2. Slash commands (skills) one-tap workflows.**
371
+ **2. Slash commands (skills): one-tap workflows.**
341
372
 
342
373
  When Claude Recall is installed as a Claude Code plugin, typing `/` in Claude Code surfaces ready-made workflows:
343
374
 
@@ -352,11 +383,11 @@ When Claude Recall is installed as a Claude Code plugin, typing `/` in Claude Co
352
383
  | `/claude-recall:thread-scan` | Auto-detect threads across historical sessions |
353
384
  | `/claude-recall:setup` | Verify installation and MCP connection |
354
385
 
355
- **3. MCP server the model calls Recall directly.**
386
+ **3. MCP server: the model calls Recall directly.**
356
387
 
357
- The most powerful surface. With `recall mcp` registered as an MCP server in Claude Code, the model itself decides when to call Recall mid-conversation. Ask *"have I solved this auth bug before?"* and Claude calls `search` autonomously, gets results, and uses them. Ask *"pull yesterday's context"* and it calls `context_for_session`. No commands, no slash menu pure intent.
388
+ The most powerful surface. With `recall mcp` registered as an MCP server in Claude Code, the model itself decides when to call Recall mid-conversation. Ask *"have I solved this auth bug before?"* and Claude calls `search` autonomously, gets results, and uses them. Ask *"pull yesterday's context"* and it calls `context_for_session`. No commands, no slash menu, pure intent.
358
389
 
359
- **4. Piping into a fresh `claude` start tomorrow with yesterday's context.**
390
+ **4. Piping into a fresh `claude`: start tomorrow with yesterday's context.**
360
391
 
361
392
  The cross-session continuation pattern, run from your shell:
362
393
 
@@ -382,33 +413,34 @@ Point any MCP client at Recall and the model calls it as native tools:
382
413
  ```
383
414
 
384
415
  <details>
385
- <summary><strong>Available MCP tools (33 total)</strong></summary>
416
+ <summary><strong>Available MCP tools (35 total)</strong></summary>
386
417
 
387
418
  <br />
388
419
 
389
- **Read tools (14 -- always available):**
420
+ **Read tools (13, always available):**
390
421
 
391
422
  | Tool | Purpose |
392
423
  |---|---|
393
424
  | `list_projects` | Every indexed project with session/message counts |
394
425
  | `list_sessions` | Recent sessions; filters: project, tag, date range |
395
426
  | `list_tags` | Tag cloud with counts, most popular first |
396
- | `list_sessions_to_tag` | Surface untagged sessions for review |
397
- | `apply_tags` | Add tags to a session (merge-mode) |
398
427
  | `search` | Full-text search with `#tag` support; BM25 + optional vector fusion |
399
428
  | `find_similar_sessions` | Semantic similarity via vector embeddings (Pro) |
400
429
  | `semantic_status` | Health snapshot: model, worker, queue depth (Pro) |
401
430
  | `get_session` | Full transcript (accepts 8+ char id prefix) |
402
431
  | `context_for_session` | Condensed markdown export, ready to inject |
403
432
  | `recall_neighborhood` | Bundle parents/children/citations/similar as one budget-bounded markdown blob |
433
+ | `doctor` | Read-only health snapshot: db size, WAL, FTS5 fragmentation, integrity check |
404
434
  | `thread_list` | All threads, newest first; can exclude archived |
405
435
  | `thread_get` | Full thread detail with every session edge |
406
436
  | `thread_for_session` | Non-archived threads referencing a session |
407
437
 
408
- **Write tools (19 -- opt-in via `--allow-writes`):**
438
+ **Write tools (22, opt-in via `--allow-writes`):**
409
439
 
410
440
  | Tool | Purpose |
411
441
  |---|---|
442
+ | `list_sessions_to_tag` | Surface untagged sessions for review (auto-tag flow) |
443
+ | `apply_tags` | Add tags to a session (merge-mode, never deletes) |
412
444
  | `add_tag` / `remove_tag` | Tag management; removals logged in append-only log |
413
445
  | `set_alias` | Human-friendly session name; previous alias archived |
414
446
  | `append_note` | Add markdown to session note; separated by `---` |
@@ -424,8 +456,9 @@ Point any MCP client at Recall and the model calls it as native tools:
424
456
  | `thread_archive` | Soft-delete thread; hidden by default |
425
457
  | `thread_merge` | Move all edges from source to dest, delete source |
426
458
  | `thread_split` | Peel sessions into new thread |
427
- | `sync_active_sessions` | Capture currently-active terminals in a repo into a thread (Captain Code Pattern) |
459
+ | `sync_active_sessions` | Capture every Claude Code terminal currently open in a repo into one thread, so parallel sessions stay organized |
428
460
  | `generate_thread_titles` | Generate coherent titles for sessions in thread DAG |
461
+ | `optimize` | WAL checkpoint, FTS5 segment merge, planner stats refresh; optional VACUUM |
429
462
 
430
463
  All writes are rate-limited (default 60/min), zod-validated, and audited to `~/.recall/audit/`.
431
464
 
@@ -439,14 +472,14 @@ All writes are rate-limited (default 60/min), zod-validated, and audited to `~/.
439
472
 
440
473
  ## How It Works
441
474
 
442
- ```
443
- ~/.claude/projects/**/*.jsonl <-- Claude Code's session files (read-only to Recall)
475
+ ```text
476
+ ~/.claude/projects/**/*.jsonl <-- Claude Code session files (read-only to Recall)
444
477
  |
445
478
  v chokidar file watcher
446
479
  ~/.recall/db.sqlite <-- indexed database (FTS5 + sqlite-vec 768d)
447
480
  |
448
481
  +-- background embedding worker (idle-aware, transactional)
449
- +-- git correlator (read-only `git log` scoped to session cwd)
482
+ +-- git correlator (read-only 'git log' scoped to session cwd)
450
483
  +-- semantic / auto-tag scanner (opt-in, off by default)
451
484
  |
452
485
  +-----+-----+
@@ -454,7 +487,7 @@ All writes are rate-limited (default 60/min), zod-validated, and audited to `~/.
454
487
  CLI HTTP server (Hono, 127.0.0.1 only)
455
488
  | |
456
489
  recall ... Web UI (React + Tailwind SPA, Vite-bundled)
457
- MCP server (stdio, 33 tools, opt-in writes)
490
+ MCP server (stdio, 35 tools, opt-in writes)
458
491
  ```
459
492
 
460
493
  ### Data stays local
@@ -477,21 +510,31 @@ All writes are rate-limited (default 60/min), zod-validated, and audited to `~/.
477
510
 
478
511
  ## Privacy & Security
479
512
 
513
+ <div align="center">
514
+
515
+ <img src="https://cdn.clauderecall.com/marketing/privacy-trust.gif?v=hd3" alt="Local-first design — daemon binds to 127.0.0.1, no telemetry, no outbound network calls" width="640">
516
+
517
+ </div>
518
+
519
+ <br />
520
+
480
521
  Claude Recall is **local-first by design**, not as an afterthought.
481
522
 
482
523
  - **The daemon binds to `127.0.0.1` only.** Never `0.0.0.0`, never a public interface.
483
524
  - **No telemetry. No analytics. No background phone-home.** The daemon, file watcher, indexer, and web UI never make outbound network calls. Your session content never leaves your machine.
484
- - **The only outbound calls are user-initiated**, never automatic, and never transmit your session data:
485
-
486
- | Command | Endpoint | What it sends | What it gets |
487
- |---|---|---|---|
488
- | `recall activate <key>` | `clauderecall.com` | The license key only | A signed JWT for offline validation |
489
- | `recall semantic install` | `huggingface.co` | Nothing about you | The `bge-base-en-v1.5` ONNX model file |
490
-
491
- Both are optional and not required for core indexing, search, or context re-injection. Skip them and Recall is fully air-gapped.
525
+ - **The only outbound calls are user-initiated**, never automatic, and never transmit your session data.
492
526
  - **No cloud. No account.** Your data lives at `~/.recall/` and nowhere else.
493
527
  - **Source sessions are never modified.** Claude Code's JSONL files at `~/.claude/projects/` are strictly read-only to Recall.
494
- - **Never-delete-data invariant.** Every write enforces three independent durability layers: SQLite with history columns, plain-text mirror on disk, and source JSONLs untouched. Renaming, clearing, or removing anything is always additive -- the prior value is archived, never destroyed.
528
+ - **Never-delete-data invariant.** Every write enforces three independent durability layers: SQLite with history columns, plain-text mirror on disk, and source JSONLs untouched. Renaming, clearing, or removing anything is always additive; the prior value is archived, never destroyed.
529
+
530
+ The two user-initiated outbound calls:
531
+
532
+ | Command | Endpoint | What it sends | What it gets |
533
+ |---|---|---|---|
534
+ | `recall activate <key>` | `clauderecall.com` | The license key only | A signed JWT for offline validation |
535
+ | `recall semantic install` | `huggingface.co` | Nothing about you | The `bge-base-en-v1.5` ONNX model file |
536
+
537
+ Both are optional and not required for core indexing, search, or context re-injection. Skip them and Recall is fully air-gapped.
495
538
 
496
539
  <br />
497
540
 
@@ -564,7 +607,7 @@ recall semantic reindex # re-embed everything
564
607
  recall semantic auto-extract on # daemon nibbles un-extracted sessions through Claude (Pro)
565
608
  recall similar <id> # cosine kNN over session chunks
566
609
 
567
- # Threads (v0.15a)
610
+ # Threads
568
611
  recall thread list # all threads, newest first
569
612
  recall thread create <name> # new thread
570
613
  recall thread add <t> <s> # attach session to thread
@@ -638,7 +681,7 @@ Claude Recall is a Node.js CLI with a few native dependencies (`better-sqlite3`,
638
681
 
639
682
  **Node:** 22 LTS or 24 LTS. Node 20 and earlier are unsupported (declared in `engines.node`).
640
683
 
641
- **Semantic search is optional.** The on-device embedder is the only feature that loads the native ONNX runtime. The model auto-downloads (~110MB) on `npm install`; skip with `RECALL_SKIP_MODEL_DOWNLOAD=1` and install later via `recall semantic install`. Core CLI features search, list, context, daemon, MCP work on every supported platform regardless of whether the embedder is installed. If the embedder fails to load on your platform, you get a clear error pointing here, and the rest of Claude Recall keeps working.
684
+ **Semantic search is optional.** The on-device embedder is the only feature that loads the native ONNX runtime. The model auto-downloads (~110MB) on `npm install`; skip with `RECALL_SKIP_MODEL_DOWNLOAD=1` and install later via `recall semantic install`. Core CLI features (search, list, context, daemon, MCP) work on every supported platform regardless of whether the embedder is installed. If the embedder fails to load on your platform, you get a clear error pointing here, and the rest of Claude Recall keeps working.
642
685
 
643
686
  <br />
644
687
 
@@ -656,9 +699,9 @@ Claude Recall ships on every surface a developer already works in.
656
699
  | **VS Code Marketplace** | [`clauderecallhq.clauderecall-vscode`](https://marketplace.visualstudio.com/items?itemName=clauderecallhq.clauderecall-vscode) | Search "Claude Recall" in Extensions |
657
700
  | **MCP Registry** | [`com.clauderecall/recall`](https://registry.modelcontextprotocol.io/v0/servers?search=clauderecall) | Auto-discovered by MCP clients |
658
701
  | **Claude Code Plugin Hub** | `claude-recall` | `/plugin install claude-recall` in Claude Code |
659
- | **Website** | [clauderecall.com](https://clauderecall.com) | -- |
702
+ | **Website** | [clauderecall.com](https://clauderecall.com) | |
660
703
 
661
- The npm package ships **the CLI and the MCP server**. The VS Code extension is a thin companion that talks to the local daemon over `127.0.0.1`. The MCP Registry and Claude Code Plugin Hub both point back to the npm package -- one source of truth, one update pipeline.
704
+ The npm package ships **the CLI and the MCP server**. The VS Code extension is a thin companion that talks to the local daemon over `127.0.0.1`. The MCP Registry and Claude Code Plugin Hub both point back to the npm package: one source of truth, one update pipeline.
662
705
 
663
706
  <br />
664
707
 
@@ -670,14 +713,9 @@ The npm package ships **the CLI and the MCP server**. The VS Code extension is a
670
713
 
671
714
  One tier is free forever. One tier is a **one-time** purchase that works offline for life, even if we disappear. One tier is a conversation.
672
715
 
673
- <table>
674
- <tr>
675
- <td width="33%" valign="top">
676
-
677
716
  ### Free
678
717
 
679
- **$0**
680
- Forever. No signup. No credit card.
718
+ **$0.** Forever. No signup. No credit card.
681
719
 
682
720
  - Full indexing of every `~/.claude/projects/` JSON-L
683
721
  - CLI: `list`, `show`, `projects`, `status`
@@ -688,14 +726,9 @@ Forever. No signup. No credit card.
688
726
  npm install -g @clauderecallhq/cli
689
727
  ```
690
728
 
691
- </td>
692
- <td width="33%" valign="top">
693
-
694
- ### Pro &nbsp;<sub>← daily driver</sub>
729
+ ### Pro (daily driver)
695
730
 
696
- **$29.69 one-time** through May 2026 (Founder pricing)
697
- **$49.69 one-time** from June 2026 (standard)
698
- Pay once. Offline forever. Lifetime updates. Dead-man clause included. Never a subscription.
731
+ **$29.69 one-time** through May 2026 (Founder pricing). **$49.69 one-time** from June 2026 (standard). Pay once. Offline forever. Lifetime updates. Dead-man clause included. Never a subscription.
699
732
 
700
733
  - Full-text search (FTS5 BM25)
701
734
  - On-device semantic vector search (768d, RRF fusion)
@@ -709,15 +742,11 @@ Pay once. Offline forever. Lifetime updates. Dead-man clause included. Never a s
709
742
  - Secrets redaction (client-side scrub of keys, tokens, passwords pre-index)
710
743
  - **Every future personal-use feature.** One price, lifetime updates.
711
744
 
712
- [**Buy Pro for $29.69 (Founder pricing through May) →**](https://clauderecall.com/pricing)
713
-
714
- </td>
715
- <td width="33%" valign="top">
745
+ [**Buy Pro for $29.69 (Founder pricing through May)**](https://clauderecall.com/pricing)
716
746
 
717
747
  ### Enterprise
718
748
 
719
- **Contact us**
720
- Built for 50+ developer organizations.
749
+ **Contact us.** Built for 50+ developer organizations.
721
750
 
722
751
  - Shared session library with end-to-end encrypted team sync
723
752
  - Team-wide tag conventions
@@ -728,10 +757,6 @@ Built for 50+ developer organizations.
728
757
 
729
758
  [hello@clauderecall.com](mailto:hello@clauderecall.com)
730
759
 
731
- </td>
732
- </tr>
733
- </table>
734
-
735
760
  <br />
736
761
 
737
762
  ### How it compares to what you already pay
@@ -750,7 +775,7 @@ Built for 50+ developer organizations.
750
775
 
751
776
  ### The dead-man clause
752
777
 
753
- Your Pro license validates against our server exactly once, at activation. After that, Recall works **offline forever**. If `clauderecall.com` ever disappears, every existing license stays valid -- we'll publish the validation secret if we ever shut down, so you're never stranded.
778
+ Your Pro license validates against our server exactly once, at activation. After that, Recall works **offline forever**. If `clauderecall.com` ever disappears, every existing license stays valid; we'll publish the validation secret if we ever shut down, so you're never stranded.
754
779
 
755
780
  Full pricing FAQ: **[clauderecall.com/pricing](https://clauderecall.com/pricing)**
756
781
 
@@ -777,7 +802,7 @@ Full pricing FAQ: **[clauderecall.com/pricing](https://clauderecall.com/pricing)
777
802
  - [x] First-60-seconds onboarding
778
803
  - [x] Rediscovery surface ("For you" cards)
779
804
  - [x] **On-device vector search** (768d ONNX embeddings, RRF fusion)
780
- - [x] **Threads** -- DAG view, drag-to-reparent, bulk title generation
805
+ - [x] **Threads.** DAG view, drag-to-reparent, bulk title generation
781
806
  - [x] **Pro license + dead-man clause** (offline-validatable JWT)
782
807
  - [x] Memory health scores
783
808
  - [x] Claude Code plugin manifest
@@ -791,19 +816,26 @@ Full pricing FAQ: **[clauderecall.com/pricing](https://clauderecall.com/pricing)
791
816
 
792
817
  <br />
793
818
 
819
+ ## License
820
+
821
+ Proprietary. Free tier is free forever for personal use. Pro is a one-time purchase with offline-validatable JWT and a dead-man clause: if `clauderecall.com` ever shuts down, every existing license stays valid and the validation secret will be published so you're never stranded. Full terms at [clauderecall.com/terms](https://clauderecall.com/terms).
822
+
823
+ <br />
824
+
825
+ ---
826
+
827
+ <br />
828
+
794
829
  <div align="center">
795
830
 
796
- <picture>
797
- <source media="(prefers-color-scheme: dark)" srcset="https://clauderecall.com/mark-scrollback-dark.svg">
798
- <img src="https://clauderecall.com/mark-scrollback-dark.svg" alt="Claude Recall" width="48">
799
- </picture>
831
+ <img src="https://clauderecall.com/mark-scrollback-dark.svg" alt="Claude Recall" width="48">
800
832
 
801
833
  <br />
802
834
  <br />
803
835
 
804
- **Claude Recall** -- the memory layer for the agent you're steering.
836
+ **Claude Recall.** The memory layer for the agent you're steering.
805
837
 
806
- [Website](https://clauderecall.com) &nbsp;&middot;&nbsp; [Install](https://www.npmjs.com/package/@clauderecallhq/cli) &nbsp;&middot;&nbsp; [Issues](https://gitlab.com/clauderecallhq/clauderecallhq/-/issues)
838
+ [Website](https://clauderecall.com) · [Install](https://www.npmjs.com/package/@clauderecallhq/cli) · [Issues](https://gitlab.com/clauderecallhq/clauderecallhq/-/issues)
807
839
 
808
840
  <br />
809
841