@clauderecallhq/cli 0.12.0 → 0.12.5
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 +584 -407
- package/dist/cli.js +0 -8
- package/dist/cli.js.map +1 -1
- package/package.json +4 -3
- package/README.public.md +0 -523
- package/dist/commands/installs.js +0 -128
- package/dist/commands/installs.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,230 +1,316 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
3
|
<picture>
|
|
4
|
-
<source media="(prefers-color-scheme: dark)" srcset="
|
|
5
|
-
<source media="(prefers-color-scheme: light)" srcset="
|
|
6
|
-
<img src="
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/clauderecallhq/.github/main/profile/assets/wordmark-dark.svg">
|
|
5
|
+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/clauderecallhq/.github/main/profile/assets/wordmark-light.svg">
|
|
6
|
+
<img src="https://raw.githubusercontent.com/clauderecallhq/.github/main/profile/assets/wordmark-dark.svg" alt="Claude Recall" width="400">
|
|
7
7
|
</picture>
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
<br />
|
|
10
|
+
<br />
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
**Stop re-explaining your project to Claude every morning.**
|
|
13
|
+
|
|
14
|
+
Claude Recall indexes every Claude Code session you've ever run, surfaces what matters,<br />and pipes the right context back in with one command.
|
|
15
|
+
|
|
16
|
+
<br />
|
|
17
|
+
|
|
18
|
+
[](https://www.npmjs.com/package/@clauderecallhq/cli)
|
|
19
|
+
[](https://nodejs.org)
|
|
20
|
+
[](https://www.typescriptlang.org/)
|
|
21
|
+
[](#privacy--security)
|
|
22
|
+
[](#license)
|
|
23
|
+
[](https://clauderecall.com)
|
|
24
|
+
|
|
25
|
+
<br />
|
|
26
|
+
|
|
27
|
+
<sub>100% local. No cloud. No account. No telemetry. Your conversations never leave your machine.</sub>
|
|
17
28
|
|
|
18
29
|
</div>
|
|
19
30
|
|
|
31
|
+
<br />
|
|
32
|
+
|
|
20
33
|
---
|
|
21
34
|
|
|
22
|
-
|
|
23
|
-
|
|
35
|
+
<br />
|
|
36
|
+
|
|
37
|
+
## The Problem
|
|
38
|
+
|
|
39
|
+
Claude Code is incredible until the conversation ends. Then you hit three walls:
|
|
40
|
+
|
|
41
|
+
<table>
|
|
42
|
+
<tr>
|
|
43
|
+
<td width="33%" valign="top">
|
|
44
|
+
|
|
45
|
+
### Context Amnesia
|
|
46
|
+
|
|
47
|
+
Every new `claude` invocation starts from zero. You re-explain the architecture, re-paste the key files, re-describe the bug you already fixed yesterday.
|
|
48
|
+
|
|
49
|
+
You built that context pyramid once. Now you're building it again.
|
|
50
|
+
|
|
51
|
+
</td>
|
|
52
|
+
<td width="33%" valign="top">
|
|
24
53
|
|
|
25
|
-
|
|
54
|
+
### Cost Blindness
|
|
26
55
|
|
|
27
|
-
|
|
56
|
+
Claude Code tells you nothing about spend after a session ends. Which session burned through tokens? Which project is quietly eating half your Anthropic bill?
|
|
28
57
|
|
|
29
|
-
|
|
58
|
+
You're guessing.
|
|
30
59
|
|
|
31
|
-
|
|
60
|
+
</td>
|
|
61
|
+
<td width="33%" valign="top">
|
|
32
62
|
|
|
33
|
-
|
|
63
|
+
### Session Sprawl
|
|
34
64
|
|
|
35
|
-
|
|
65
|
+
Claude Code scatters conversations into `~/.claude/projects/**/*.jsonl`. No titles. No search. No way to find the session where you finally got the auth flow right.
|
|
66
|
+
|
|
67
|
+
Dozens of projects. Hundreds of sessions. Zero discoverability.
|
|
68
|
+
|
|
69
|
+
</td>
|
|
70
|
+
</tr>
|
|
71
|
+
</table>
|
|
72
|
+
|
|
73
|
+
<br />
|
|
74
|
+
|
|
75
|
+
## The Fix
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
npm install -g @clauderecallhq/cli
|
|
79
|
+
recall start
|
|
80
|
+
recall open
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
That's it. Recall indexes every past and future Claude Code session into a searchable local database, gives you a beautiful web UI to explore them, and lets you pipe any session back into a new conversation:
|
|
36
84
|
|
|
37
85
|
```bash
|
|
38
|
-
|
|
39
|
-
recall context abc12345
|
|
86
|
+
# The moat: past session -> new conversation
|
|
87
|
+
recall context abc12345 | claude
|
|
40
88
|
```
|
|
41
89
|
|
|
42
|
-
|
|
90
|
+
Claude picks up where you left off instead of asking you to explain it again.
|
|
91
|
+
|
|
92
|
+
<br />
|
|
43
93
|
|
|
44
|
-
|
|
94
|
+
---
|
|
45
95
|
|
|
46
|
-
|
|
96
|
+
<br />
|
|
97
|
+
|
|
98
|
+
## Features
|
|
99
|
+
|
|
100
|
+
<table>
|
|
101
|
+
<tr>
|
|
102
|
+
<td width="50%" valign="top">
|
|
103
|
+
|
|
104
|
+
### Context Re-injection <sub>← the moat</sub>
|
|
105
|
+
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.**
|
|
47
106
|
|
|
48
107
|
```bash
|
|
49
|
-
recall
|
|
50
|
-
recall
|
|
51
|
-
recall
|
|
108
|
+
recall context <id> | claude
|
|
109
|
+
recall context <id> --prelude "continue this" | claude
|
|
110
|
+
recall context <id> --since 2h | claude
|
|
52
111
|
```
|
|
53
112
|
|
|
54
|
-
|
|
113
|
+
</td>
|
|
114
|
+
<td width="50%" valign="top">
|
|
115
|
+
|
|
116
|
+
### Threads <sub>NEW · v0.15a</sub>
|
|
117
|
+
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.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
recall thread list
|
|
121
|
+
recall thread create "auth-refactor"
|
|
122
|
+
recall thread add <thread> <session>
|
|
123
|
+
```
|
|
55
124
|
|
|
56
|
-
|
|
125
|
+
</td>
|
|
126
|
+
</tr>
|
|
127
|
+
<tr>
|
|
128
|
+
<td width="50%" valign="top">
|
|
57
129
|
|
|
58
|
-
|
|
130
|
+
### Full-Text Search
|
|
131
|
+
FTS5 BM25 ranking across every message, every session, in milliseconds. Highlighted snippets, inline `#tag` filters, project + date scoping.
|
|
59
132
|
|
|
60
133
|
```bash
|
|
61
|
-
recall search "zod schema"
|
|
62
|
-
recall search "auth #auth-fix"
|
|
63
|
-
recall semantic on # enable conceptual search
|
|
134
|
+
recall search "zod schema"
|
|
135
|
+
recall search "auth #auth-fix" -p Pest-Control
|
|
64
136
|
```
|
|
65
137
|
|
|
66
|
-
|
|
138
|
+
</td>
|
|
139
|
+
<td width="50%" valign="top">
|
|
67
140
|
|
|
68
|
-
|
|
141
|
+
### On-Device Vector Search <sub>Pro</sub>
|
|
142
|
+
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.
|
|
69
143
|
|
|
70
144
|
```bash
|
|
71
|
-
|
|
72
|
-
|
|
145
|
+
recall semantic install
|
|
146
|
+
recall similar <session-id>
|
|
147
|
+
```
|
|
73
148
|
|
|
74
|
-
|
|
75
|
-
|
|
149
|
+
</td>
|
|
150
|
+
</tr>
|
|
151
|
+
<tr>
|
|
152
|
+
<td width="50%" valign="top">
|
|
76
153
|
|
|
77
|
-
|
|
78
|
-
|
|
154
|
+
### Cost Analytics
|
|
155
|
+
Per-session and per-project token + dollar totals. Daily sparkline. Top-10 heaviest sessions. Know exactly where your Anthropic bill is going.
|
|
79
156
|
|
|
80
|
-
|
|
81
|
-
recall
|
|
157
|
+
```bash
|
|
158
|
+
recall stats <id>
|
|
159
|
+
recall stats --project Tools --days 7
|
|
160
|
+
```
|
|
82
161
|
|
|
83
|
-
|
|
84
|
-
|
|
162
|
+
</td>
|
|
163
|
+
<td width="50%" valign="top">
|
|
164
|
+
|
|
165
|
+
### Git Correlation
|
|
166
|
+
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.
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
recall correlate
|
|
170
|
+
recall blame <sha>
|
|
85
171
|
```
|
|
86
172
|
|
|
87
|
-
|
|
173
|
+
</td>
|
|
174
|
+
</tr>
|
|
175
|
+
<tr>
|
|
176
|
+
<td width="50%" valign="top">
|
|
177
|
+
|
|
178
|
+
### Auto-Tagging
|
|
179
|
+
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.
|
|
88
180
|
|
|
89
|
-
|
|
181
|
+
</td>
|
|
182
|
+
<td width="50%" valign="top">
|
|
183
|
+
|
|
184
|
+
### MCP Server <sub>31 tools</sub>
|
|
185
|
+
Expose Recall to Claude Desktop, Claude Code, or any MCP client as native tools. **13 read tools always on**, **18 write tools** opt-in with rate limiting and append-only audit logging.
|
|
90
186
|
|
|
91
187
|
```bash
|
|
92
|
-
|
|
93
|
-
recall
|
|
94
|
-
|
|
95
|
-
recall open # open web UI (starts daemon if needed)
|
|
96
|
-
recall status # db + daemon health
|
|
188
|
+
recall mcp
|
|
189
|
+
recall mcp --allow-writes
|
|
190
|
+
```
|
|
97
191
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
192
|
+
</td>
|
|
193
|
+
</tr>
|
|
194
|
+
<tr>
|
|
195
|
+
<td width="50%" valign="top">
|
|
102
196
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
recall list # 30 most-recent sessions
|
|
106
|
-
recall list -p Tools # filter by project substring
|
|
107
|
-
recall list -n 100 # higher limit
|
|
197
|
+
### Collections, Tags & Notes
|
|
198
|
+
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.
|
|
108
199
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
recall show <id> --raw # raw JSONL
|
|
112
|
-
recall show <id> --no-pager # dump to stdout
|
|
200
|
+
</td>
|
|
201
|
+
<td width="50%" valign="top">
|
|
113
202
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
203
|
+
### Web UI
|
|
204
|
+
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.
|
|
205
|
+
|
|
206
|
+
</td>
|
|
207
|
+
</tr>
|
|
208
|
+
<tr>
|
|
209
|
+
<td width="50%" valign="top">
|
|
210
|
+
|
|
211
|
+
### Rediscovery <sub>"For you"</sub>
|
|
212
|
+
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`.
|
|
118
213
|
|
|
119
|
-
|
|
120
|
-
recall
|
|
121
|
-
recall context <id> | pbcopy # to clipboard (macOS)
|
|
122
|
-
recall context <id> | claude # pipe into a new Claude Code session
|
|
123
|
-
recall context <id> --full # full transcript (bigger)
|
|
124
|
-
recall context <id> --since 2h # only last 2 hours
|
|
125
|
-
recall context <id> --prelude "continue this" # prepend an instruction
|
|
126
|
-
recall context <id> --subagents # include subagent messages
|
|
127
|
-
|
|
128
|
-
# stats (v0.10a)
|
|
129
|
-
recall stats <id> # tokens + dollars for one session
|
|
130
|
-
recall stats --project Tools # per-project rollup
|
|
131
|
-
recall stats --days 7 # 7-day overview
|
|
132
|
-
recall stats --backfill # one-shot usage backfill for older messages
|
|
133
|
-
|
|
134
|
-
# git correlation (v0.10b)
|
|
135
|
-
recall correlate # link sessions to commits in their cwd
|
|
136
|
-
recall blame <sha> # reverse lookup: commit → session
|
|
137
|
-
|
|
138
|
-
# semantic search (v0.11)
|
|
139
|
-
recall semantic on # enable conceptual search
|
|
140
|
-
recall semantic off # disable
|
|
141
|
-
recall semantic status # backfill progress
|
|
142
|
-
recall semantic backfill # run now
|
|
143
|
-
recall semantic pause # pause background worker
|
|
144
|
-
recall semantic resume # resume worker
|
|
145
|
-
recall semantic install # download the local embedding model
|
|
146
|
-
recall semantic uninstall # remove the local model
|
|
147
|
-
recall semantic reindex # regenerate all summaries
|
|
148
|
-
|
|
149
|
-
# similar sessions (Pro, requires vector model)
|
|
150
|
-
recall similar <id> # sessions related to this one
|
|
151
|
-
recall similar <id> -n 5 # top 5 results
|
|
152
|
-
|
|
153
|
-
# clipboard archiving (opt-in)
|
|
154
|
-
recall paste # archive clipboard contents
|
|
155
|
-
recall paste --label "zod fix" # attach a short description
|
|
156
|
-
recall paste --dry-run # preview without writing
|
|
157
|
-
recall paste --pipe # echo content to stdout after archiving
|
|
158
|
-
recall paste --force # skip secret-scan confirmation
|
|
159
|
-
recall paste --list # list archived pastes
|
|
160
|
-
recall paste --purge <id> # permanently delete one paste
|
|
161
|
-
|
|
162
|
-
# security scanning
|
|
163
|
-
recall audit-secrets # scan db for leaked secrets (read-only)
|
|
164
|
-
recall audit-secrets --redact # scrub hits in place (source JSONLs untouched)
|
|
165
|
-
recall audit-secrets -v # verbose per-session output
|
|
166
|
-
|
|
167
|
-
# rediscovery ("For you" picks)
|
|
168
|
-
recall digest # today's picks (rediscovered session, costliest, HEAD author)
|
|
169
|
-
recall digest --json # machine-readable output
|
|
170
|
-
|
|
171
|
-
# VS Code / Cursor / Windsurf extension sideloading
|
|
172
|
-
recall install-extension # install into all detected editors
|
|
173
|
-
recall install-extension --editor cursor # target one editor
|
|
174
|
-
recall install-extension --print-path # print .vsix path and exit
|
|
175
|
-
|
|
176
|
-
# memory health scores
|
|
177
|
-
recall health # all projects, worst health first
|
|
178
|
-
recall health "My Project" # single-project breakdown
|
|
179
|
-
recall health --json # machine-readable output
|
|
180
|
-
|
|
181
|
-
# verification badges (opt-in preview)
|
|
182
|
-
recall verify # show current status (default)
|
|
183
|
-
recall verify on # enable
|
|
184
|
-
recall verify off # disable
|
|
185
|
-
|
|
186
|
-
# Pro licensing
|
|
187
|
-
recall activate <license-key> # activate a Pro license (one-time)
|
|
188
|
-
recall license # show current tier (default: status)
|
|
189
|
-
recall license status # same as above
|
|
190
|
-
recall license deactivate # remove license from this machine
|
|
191
|
-
|
|
192
|
-
# threads (v0.15a) - intent-grouped session clusters
|
|
193
|
-
recall thread list # list threads (most recent first)
|
|
194
|
-
recall thread list --archived # include archived threads
|
|
195
|
-
recall thread show <id> # thread header + session tree
|
|
196
|
-
recall thread new "Auth refactor" # create a thread
|
|
197
|
-
recall thread new "Auth" --origin <sid> # create with an origin session
|
|
198
|
-
recall thread new "Auth" --summary "..." # create with a summary
|
|
199
|
-
recall thread link <sid> --thread <tid> # link a session into a thread
|
|
200
|
-
recall thread link <sid> --thread <tid> --parent <pid> # link as child of another session
|
|
201
|
-
recall thread unlink <sid> --thread <tid> # remove session from thread
|
|
202
|
-
recall thread set-parent <sid> --thread <tid> --parent <pid> # re-parent within thread
|
|
203
|
-
recall thread set-parent <sid> --thread <tid> --parent none # promote to origin
|
|
204
|
-
recall thread rename <id> "New name" # rename a thread
|
|
205
|
-
recall thread close <id> # mark work complete
|
|
206
|
-
recall thread reopen <id> # reopen a closed thread
|
|
207
|
-
recall thread archive <id> # soft-delete (hidden from list, never hard-deleted)
|
|
208
|
-
recall thread merge <source> --into <dest> # merge two threads
|
|
209
|
-
recall thread split <id> --sessions s1,s2 --name "New thread" # split sessions into new thread
|
|
214
|
+
```bash
|
|
215
|
+
recall digest
|
|
210
216
|
```
|
|
211
217
|
|
|
212
|
-
|
|
218
|
+
</td>
|
|
219
|
+
<td width="50%" valign="top">
|
|
213
220
|
|
|
214
|
-
|
|
221
|
+
### IDE Extension
|
|
222
|
+
**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.
|
|
215
223
|
|
|
216
224
|
```bash
|
|
217
|
-
|
|
218
|
-
|
|
225
|
+
recall install-extension
|
|
226
|
+
```
|
|
219
227
|
|
|
220
|
-
|
|
221
|
-
|
|
228
|
+
</td>
|
|
229
|
+
</tr>
|
|
230
|
+
</table>
|
|
222
231
|
|
|
223
|
-
|
|
224
|
-
|
|
232
|
+
<br />
|
|
233
|
+
|
|
234
|
+
<details>
|
|
235
|
+
<summary><strong>More: secrets redaction, memory health, audit log, keyboard shortcuts...</strong></summary>
|
|
236
|
+
|
|
237
|
+
<br />
|
|
238
|
+
|
|
239
|
+
- **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.
|
|
240
|
+
- **Memory health scores** -- every session gets a freshness score; surfaces stale data so you know when to re-run a backfill.
|
|
241
|
+
- **MCP audit log** -- every write tool call lands in `mcp_audit_events` with status (ok / error / rate_limited). Pure local, no telemetry.
|
|
242
|
+
- **First-60-seconds onboarding** -- 3-step modal demos the moat (`recall context <id> | claude`) the moment you open the web UI.
|
|
243
|
+
- **Cmd+K command palette** -- jump to any session, action, or setting in one keystroke.
|
|
244
|
+
- **Multi-select sessions** -- `Cmd+Click` toggle, `Shift+Click` range, right-click to copy IDs.
|
|
245
|
+
- **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.
|
|
246
|
+
|
|
247
|
+
#### Keyboard Shortcuts
|
|
248
|
+
|
|
249
|
+
| Key | Action |
|
|
250
|
+
|---|---|
|
|
251
|
+
| `/` | Focus search |
|
|
252
|
+
| `?` | Open Command Center |
|
|
253
|
+
| `Cmd+K` / `Ctrl+K` | Command palette |
|
|
254
|
+
| `Esc` | Close / clear / dismiss |
|
|
255
|
+
| `n` / `p` | Next / previous search match |
|
|
256
|
+
| `c` | New collection |
|
|
257
|
+
| `Cmd+Shift+A` | Add session to collection |
|
|
258
|
+
| `Cmd+Enter` | Save note |
|
|
259
|
+
|
|
260
|
+
</details>
|
|
261
|
+
|
|
262
|
+
<br />
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
<br />
|
|
267
|
+
|
|
268
|
+
## Quick Start
|
|
269
|
+
|
|
270
|
+
### Install
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
npm install -g @clauderecallhq/cli
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Start
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# Start the background daemon (file watcher + local HTTP server)
|
|
280
|
+
recall start
|
|
281
|
+
|
|
282
|
+
# Open the web UI
|
|
283
|
+
recall open
|
|
225
284
|
```
|
|
226
285
|
|
|
227
|
-
|
|
286
|
+
The daemon watches `~/.claude/projects/` for new and changed session files, indexes them into a local SQLite database at `~/.recall/db.sqlite`, and serves the web UI on a random `127.0.0.1` port.
|
|
287
|
+
|
|
288
|
+
### Explore
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
recall projects # list projects with session counts
|
|
292
|
+
recall list # 30 most-recent sessions
|
|
293
|
+
recall list -p Tools # filter by project
|
|
294
|
+
recall show <id> # pretty-printed transcript
|
|
295
|
+
recall search "auth bug" # full-text search
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### The Moat
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
# Pipe a past session into a new Claude Code conversation
|
|
302
|
+
recall context abc12345 | claude
|
|
303
|
+
|
|
304
|
+
# With a custom instruction
|
|
305
|
+
recall context abc12345 --prelude "continue where we left off" | claude
|
|
306
|
+
|
|
307
|
+
# Just the last 2 hours
|
|
308
|
+
recall context abc12345 --since 2h | claude
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### MCP Server
|
|
312
|
+
|
|
313
|
+
Point any MCP client at Recall and the model calls it as native tools:
|
|
228
314
|
|
|
229
315
|
```json
|
|
230
316
|
{
|
|
@@ -236,310 +322,401 @@ Minimal Claude Code / Claude Desktop config:
|
|
|
236
322
|
}
|
|
237
323
|
```
|
|
238
324
|
|
|
239
|
-
|
|
325
|
+
<details>
|
|
326
|
+
<summary><strong>Available MCP tools (31 total)</strong></summary>
|
|
327
|
+
|
|
328
|
+
<br />
|
|
329
|
+
|
|
330
|
+
**Read tools (13 -- always available):**
|
|
240
331
|
|
|
241
332
|
| Tool | Purpose |
|
|
242
333
|
|---|---|
|
|
243
334
|
| `list_projects` | Every indexed project with session/message counts |
|
|
244
|
-
| `list_sessions` | Recent sessions
|
|
335
|
+
| `list_sessions` | Recent sessions; filters: project, tag, date range |
|
|
245
336
|
| `list_tags` | Tag cloud with counts, most popular first |
|
|
246
|
-
| `list_sessions_to_tag` |
|
|
247
|
-
| `apply_tags` |
|
|
248
|
-
| `search` | Full-text search
|
|
249
|
-
| `find_similar_sessions` |
|
|
250
|
-
| `semantic_status` | Health snapshot
|
|
251
|
-
| `get_session` | Full transcript
|
|
252
|
-
| `context_for_session` | Condensed
|
|
253
|
-
| `thread_list` | All threads, newest first
|
|
337
|
+
| `list_sessions_to_tag` | Surface untagged sessions for review |
|
|
338
|
+
| `apply_tags` | Add tags to a session (merge-mode) |
|
|
339
|
+
| `search` | Full-text search with `#tag` support; BM25 + optional vector fusion |
|
|
340
|
+
| `find_similar_sessions` | Semantic similarity via vector embeddings (Pro) |
|
|
341
|
+
| `semantic_status` | Health snapshot: model, worker, queue depth (Pro) |
|
|
342
|
+
| `get_session` | Full transcript (accepts 8+ char id prefix) |
|
|
343
|
+
| `context_for_session` | Condensed markdown export, ready to inject |
|
|
344
|
+
| `thread_list` | All threads, newest first; can exclude archived |
|
|
254
345
|
| `thread_get` | Full thread detail with every session edge |
|
|
255
|
-
| `thread_for_session` |
|
|
346
|
+
| `thread_for_session` | Non-archived threads referencing a session |
|
|
256
347
|
|
|
257
|
-
|
|
348
|
+
**Write tools (18 -- opt-in via `--allow-writes`):**
|
|
258
349
|
|
|
259
350
|
| Tool | Purpose |
|
|
260
351
|
|---|---|
|
|
261
|
-
| `add_tag` / `remove_tag` |
|
|
262
|
-
| `set_alias` |
|
|
263
|
-
| `append_note` |
|
|
264
|
-
| `create_collection` |
|
|
265
|
-
| `add_session_to_collection`
|
|
266
|
-
| `
|
|
267
|
-
| `
|
|
268
|
-
| `
|
|
269
|
-
| `
|
|
352
|
+
| `add_tag` / `remove_tag` | Tag management; removals logged in append-only log |
|
|
353
|
+
| `set_alias` | Human-friendly session name; previous alias archived |
|
|
354
|
+
| `append_note` | Add markdown to session note; separated by `---` |
|
|
355
|
+
| `create_collection` | New collection; optional parent, icon, color |
|
|
356
|
+
| `add_session_to_collection` | Idempotent collection membership |
|
|
357
|
+
| `remove_session_from_collection` | Remove session; logged in append-only log |
|
|
358
|
+
| `thread_create` | Create thread, optionally seed with origin session |
|
|
359
|
+
| `thread_add_session` | Attach session; role=origin or child |
|
|
360
|
+
| `thread_set_parent` | Change parent within thread; null clears parent |
|
|
361
|
+
| `thread_remove_session` | Detach session from thread |
|
|
270
362
|
| `thread_rename` | Change thread display name |
|
|
271
|
-
| `thread_close` / `thread_reopen` | Mark
|
|
272
|
-
| `thread_archive` | Soft-delete
|
|
273
|
-
| `thread_merge` |
|
|
274
|
-
| `thread_split` | Peel sessions into
|
|
275
|
-
| `generate_thread_titles` |
|
|
363
|
+
| `thread_close` / `thread_reopen` | Mark thread as closed or reopen |
|
|
364
|
+
| `thread_archive` | Soft-delete thread; hidden by default |
|
|
365
|
+
| `thread_merge` | Move all edges from source to dest, delete source |
|
|
366
|
+
| `thread_split` | Peel sessions into new thread |
|
|
367
|
+
| `generate_thread_titles` | Generate coherent titles for sessions in thread DAG |
|
|
276
368
|
|
|
277
|
-
|
|
369
|
+
All writes are rate-limited (default 60/min), zod-validated, and audited to `~/.recall/audit/`.
|
|
278
370
|
|
|
279
|
-
|
|
371
|
+
</details>
|
|
372
|
+
|
|
373
|
+
<br />
|
|
280
374
|
|
|
281
|
-
|
|
375
|
+
---
|
|
282
376
|
|
|
283
|
-
|
|
377
|
+
<br />
|
|
284
378
|
|
|
285
|
-
|
|
379
|
+
## How It Works
|
|
380
|
+
|
|
381
|
+
```
|
|
382
|
+
~/.claude/projects/**/*.jsonl <-- Claude Code's session files (read-only to Recall)
|
|
383
|
+
|
|
|
384
|
+
v chokidar file watcher
|
|
385
|
+
~/.recall/db.sqlite <-- indexed database (FTS5 + sqlite-vec 768d)
|
|
386
|
+
|
|
|
387
|
+
+-- background embedding worker (idle-aware, transactional)
|
|
388
|
+
+-- git correlator (read-only `git log` scoped to session cwd)
|
|
389
|
+
+-- semantic / auto-tag scanner (opt-in, off by default)
|
|
390
|
+
|
|
|
391
|
+
+-----+-----+
|
|
392
|
+
| |
|
|
393
|
+
CLI HTTP server (Hono, 127.0.0.1 only)
|
|
394
|
+
| |
|
|
395
|
+
recall ... Web UI (React + Tailwind SPA, Vite-bundled)
|
|
396
|
+
MCP server (stdio, 31 tools, opt-in writes)
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### Data stays local
|
|
400
|
+
|
|
401
|
+
| Path | What |
|
|
286
402
|
|---|---|
|
|
287
|
-
|
|
|
288
|
-
|
|
|
289
|
-
|
|
|
290
|
-
| `
|
|
291
|
-
|
|
|
292
|
-
| `
|
|
293
|
-
| `
|
|
294
|
-
| `Cmd+Enter` | Save note |
|
|
295
|
-
| `Cmd+Click` / `Ctrl+Click` (sessions list) | Toggle row in a multi-selection |
|
|
296
|
-
| `Shift+Click` (sessions list) | Extend the multi-selection as a range |
|
|
403
|
+
| `~/.recall/db.sqlite` | Indexed database (projects, sessions, messages, FTS5, vectors, aliases, notes, tags, collections, threads, semantic summaries, commit links, usage rollups, audit logs) |
|
|
404
|
+
| `~/.recall/aliases.json` | Plain-text mirror of every alias with full edit history |
|
|
405
|
+
| `~/.recall/notes/<session>.md` | One markdown file per session note |
|
|
406
|
+
| `~/.recall/tags.json` | Current tag state + append-only event log |
|
|
407
|
+
| `~/.recall/collections.json` | Current tree state + append-only event log |
|
|
408
|
+
| `~/.recall/semantic/<id>.json` | Per-session summary + keywords (semantic mode) |
|
|
409
|
+
| `~/.recall/license.jwt` | Activated Pro license (offline-validatable, dead-man clause) |
|
|
297
410
|
|
|
298
|
-
|
|
411
|
+
<br />
|
|
299
412
|
|
|
300
|
-
|
|
413
|
+
---
|
|
301
414
|
|
|
302
|
-
|
|
303
|
-
- **Full-text search** across 100,000+ messages in milliseconds with `bm25()` ranking and highlighted snippets
|
|
304
|
-
- **Semantic search** (v0.11) — 3-sentence summary + ~15 keywords per session via your local `claude` CLI; off by default
|
|
305
|
-
- **Context re-injection** (v0.4) — `recall context <id> | claude`. The moat
|
|
306
|
-
- **Cost analytics** (v0.10a) — per-session and per-project token + dollar totals, daily sparkline, top-10 heaviest sessions
|
|
307
|
-
- **Git correlation** (v0.10b) — every session links to commits authored in its `cwd` during its time window; `recall blame <sha>` reverse-maps
|
|
308
|
-
- **MCP server** (v0.9, bidirectional v0.13) — expose Recall to Claude Desktop / Claude Code as native tools
|
|
309
|
-
- **Collections** (v0.8) — hand-picked hierarchical groupings of sessions that cut across projects
|
|
310
|
-
- **Aliases, tags, notes, pins** — every metadata layer keeps history; UUIDs stay the immutable primary key
|
|
311
|
-
- **Auto-tagging** (v0.9, off by default) — propose tags via your Anthropic API key or your local `claude` CLI through MCP (zero extra cost)
|
|
312
|
-
- **Cmd+K command palette** (v0.12a) — jump to any session, action, or setting in one keystroke
|
|
313
|
-
- **Multi-select sessions** — `Cmd+Click` to toggle, `Shift+Click` for a range, then right-click for a copy-IDs menu (newline / space / comma separated) or use the inline "copy IDs" button — paste straight into a new Claude prompt
|
|
314
|
-
- **Cross-session diff** (v0.4.4) — split view of two transcripts with shareable `cmp=` URL
|
|
315
|
-
- **VS Code / Cursor / Windsurf extension** (v0.7) — auto-name sessions using the terminal tab name via process-tree matching
|
|
316
|
-
- **First-run onboarding** (v0.14a) — a 3-step tour that demos the moat in the first 60 seconds
|
|
317
|
-
- **Beautiful dark-mode web UI** — three-pane layout with virtualized transcript (10,000-message sessions open instantly)
|
|
318
|
-
- **Export** — condensed markdown, full markdown, self-contained dark-mode HTML, print-ready PDF
|
|
415
|
+
<br />
|
|
319
416
|
|
|
320
|
-
##
|
|
417
|
+
## Privacy & Security
|
|
321
418
|
|
|
322
|
-
|
|
419
|
+
Claude Recall is **local-first by design**, not as an afterthought.
|
|
323
420
|
|
|
324
|
-
|
|
421
|
+
- **The daemon binds to `127.0.0.1` only.** Never `0.0.0.0`, never a public interface.
|
|
422
|
+
- **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.
|
|
423
|
+
- **The only outbound calls are user-initiated**, never automatic, and never transmit your session data:
|
|
325
424
|
|
|
326
|
-
|
|
|
327
|
-
|---|---|---|---|
|
|
328
|
-
|
|
|
329
|
-
|
|
|
425
|
+
| Command | Endpoint | What it sends | What it gets |
|
|
426
|
+
|---|---|---|---|
|
|
427
|
+
| `recall activate <key>` | `clauderecall.com` | The license key only | A signed JWT for offline validation |
|
|
428
|
+
| `recall semantic install` | `huggingface.co` | Nothing about you | The `bge-base-en-v1.5` ONNX model file |
|
|
330
429
|
|
|
331
|
-
|
|
430
|
+
Both are optional and not required for core indexing, search, or context re-injection. Skip them and Recall is fully air-gapped.
|
|
431
|
+
- **No cloud. No account.** Your data lives at `~/.recall/` and nowhere else.
|
|
432
|
+
- **Source sessions are never modified.** Claude Code's JSONL files at `~/.claude/projects/` are strictly read-only to Recall.
|
|
433
|
+
- **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.
|
|
332
434
|
|
|
333
|
-
|
|
435
|
+
<br />
|
|
334
436
|
|
|
335
|
-
|
|
437
|
+
---
|
|
336
438
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
439
|
+
<br />
|
|
440
|
+
|
|
441
|
+
## Full CLI Reference
|
|
442
|
+
|
|
443
|
+
<details>
|
|
444
|
+
<summary><strong>Click to expand</strong></summary>
|
|
445
|
+
|
|
446
|
+
<br />
|
|
447
|
+
|
|
448
|
+
```bash
|
|
449
|
+
# Lifecycle
|
|
450
|
+
recall start # start daemon (watcher + local HTTP)
|
|
451
|
+
recall stop # stop daemon
|
|
452
|
+
recall open # open web UI (starts daemon if needed)
|
|
453
|
+
recall status # db + daemon health
|
|
454
|
+
|
|
455
|
+
# Indexing
|
|
456
|
+
recall index # scan for new/changed session files
|
|
457
|
+
recall index --force # reindex everything
|
|
458
|
+
|
|
459
|
+
# Explore
|
|
460
|
+
recall projects # list projects with session counts
|
|
461
|
+
recall list # 30 most-recent sessions
|
|
462
|
+
recall list -p Tools # filter by project substring
|
|
463
|
+
recall list -n 100 # higher limit
|
|
464
|
+
|
|
465
|
+
# Read
|
|
466
|
+
recall show <id> # pretty transcript, auto-paged
|
|
467
|
+
recall show <id> --raw # raw JSONL
|
|
468
|
+
recall show <id> --no-pager
|
|
469
|
+
|
|
470
|
+
# Search
|
|
471
|
+
recall search "zod schema"
|
|
472
|
+
recall search "auth" -p Pest-Control
|
|
473
|
+
recall search bug -n 50
|
|
474
|
+
|
|
475
|
+
# Context re-injection
|
|
476
|
+
recall context <id> # condensed markdown
|
|
477
|
+
recall context <id> | pbcopy # to clipboard (macOS)
|
|
478
|
+
recall context <id> | claude # into new Claude session
|
|
479
|
+
recall context <id> --full # full transcript
|
|
480
|
+
recall context <id> --since 2h # last 2 hours only
|
|
481
|
+
recall context <id> --prelude "continue this" # prepend instruction
|
|
482
|
+
recall context <id> --subagents # include subagent messages
|
|
483
|
+
|
|
484
|
+
# Stats
|
|
485
|
+
recall stats <id> # tokens + dollars for one session
|
|
486
|
+
recall stats --project Tools # per-project rollup
|
|
487
|
+
recall stats --days 7 # 7-day overview
|
|
488
|
+
recall stats --backfill # one-shot usage backfill
|
|
489
|
+
|
|
490
|
+
# Git correlation
|
|
491
|
+
recall correlate # link sessions to commits
|
|
492
|
+
recall blame <sha> # commit -> session reverse lookup
|
|
493
|
+
|
|
494
|
+
# Semantic / vector search (Pro)
|
|
495
|
+
recall semantic install # download on-device embedding model
|
|
496
|
+
recall semantic status # model + backfill progress
|
|
497
|
+
recall semantic reindex # re-embed everything
|
|
498
|
+
recall similar <id> # cosine kNN over session chunks
|
|
499
|
+
|
|
500
|
+
# Threads (v0.15a)
|
|
501
|
+
recall thread list # all threads, newest first
|
|
502
|
+
recall thread create <name> # new thread
|
|
503
|
+
recall thread add <t> <s> # attach session to thread
|
|
504
|
+
|
|
505
|
+
# Rediscovery
|
|
506
|
+
recall digest # today's "For you" picks
|
|
507
|
+
recall digest --json # machine-readable
|
|
508
|
+
|
|
509
|
+
# MCP server
|
|
510
|
+
recall mcp # stdio, read-only
|
|
511
|
+
recall mcp --allow-writes # opt-in write tools
|
|
512
|
+
|
|
513
|
+
# Pro license
|
|
514
|
+
recall activate <key> # one-time activation, offline forever
|
|
515
|
+
recall license # show license status
|
|
516
|
+
|
|
517
|
+
# IDE extension
|
|
518
|
+
recall install-extension # auto-install for VS Code / Cursor / Windsurf
|
|
519
|
+
|
|
520
|
+
# Maintenance
|
|
521
|
+
recall health # memory health scores per project
|
|
522
|
+
recall paste # archive clipboard content into Recall (opt-in)
|
|
523
|
+
recall audit-secrets # scan index for residual secrets
|
|
351
524
|
```
|
|
352
525
|
|
|
353
|
-
|
|
526
|
+
</details>
|
|
354
527
|
|
|
355
|
-
|
|
528
|
+
<br />
|
|
529
|
+
|
|
530
|
+
---
|
|
531
|
+
|
|
532
|
+
<br />
|
|
533
|
+
|
|
534
|
+
## Tech Stack
|
|
535
|
+
|
|
536
|
+
| Layer | Technology |
|
|
356
537
|
|---|---|
|
|
357
|
-
|
|
|
358
|
-
|
|
|
359
|
-
|
|
|
360
|
-
|
|
|
361
|
-
|
|
|
362
|
-
|
|
|
363
|
-
|
|
|
364
|
-
|
|
|
365
|
-
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
3. **Source JSONLs are never modified** — Claude Code's own files at `~/.claude/projects/` are strictly read-only to Recall
|
|
374
|
-
|
|
375
|
-
Renaming, clearing, or removing anything is always additive — the prior value is archived, never destroyed.
|
|
376
|
-
|
|
377
|
-
## Tech stack
|
|
378
|
-
|
|
379
|
-
### CLI + daemon (Node, ESM)
|
|
380
|
-
- **TypeScript 5** strict mode, compiled with `tsc` to `dist/`
|
|
381
|
-
- **better-sqlite3** — synchronous SQLite with FTS5 full-text search
|
|
382
|
-
- **Hono** + **@hono/node-server** — HTTP server on a random ephemeral port (never a well-known dev port)
|
|
383
|
-
- **chokidar** — filesystem watcher
|
|
384
|
-
- **commander** — CLI parsing
|
|
385
|
-
- **@modelcontextprotocol/sdk** — MCP stdio server (v0.9 read-only, v0.13 bidirectional)
|
|
386
|
-
- **zod** — schema validation on every MCP write
|
|
387
|
-
- **chalk**, **cli-table3**, **date-fns** — terminal formatting
|
|
388
|
-
|
|
389
|
-
### Web UI (bundled into daemon)
|
|
390
|
-
- **Vite 8** + **React 19** + **TypeScript**
|
|
391
|
-
- **Tailwind CSS 3** — dark palette matching the app brand (`#0b0c0f` / `#f97316` accent)
|
|
392
|
-
- **@tanstack/react-query** — data fetching with caching
|
|
393
|
-
- **@tanstack/react-virtual** — virtualized message list (handles 10k+ message sessions)
|
|
394
|
-
- **marked** + **highlight.js** + **DOMPurify** — markdown rendering with syntax highlighting and XSS hardening
|
|
395
|
-
- **clsx** — conditional class names
|
|
396
|
-
- Inter + JetBrains Mono fonts from Google Fonts
|
|
397
|
-
|
|
398
|
-
### Storage
|
|
399
|
-
- SQLite with FTS5 porter/unicode61 tokenization
|
|
400
|
-
- `~/.recall/` as the root for everything user-generated
|
|
401
|
-
- `~/.claude/projects/` as the external read-only source of truth
|
|
402
|
-
|
|
403
|
-
## Auto-tagging (v0.9)
|
|
404
|
-
|
|
405
|
-
Propose tags for your sessions with an LLM, then review before anything is written. Two backends: your Anthropic API key OR your Claude Code agent via MCP (zero extra cost). Off by default.
|
|
406
|
-
|
|
407
|
-
See [`docs/auto-tagging.md`](./docs/auto-tagging.md) for setup.
|
|
538
|
+
| CLI + daemon | TypeScript (strict), Node 20+, ESM |
|
|
539
|
+
| HTTP server | Hono + @hono/node-server |
|
|
540
|
+
| Database | better-sqlite3 with FTS5 full-text search |
|
|
541
|
+
| Vector store | sqlite-vec (768d, on-device) |
|
|
542
|
+
| Embeddings | @huggingface/transformers (`bge-base-en-v1.5` ONNX) |
|
|
543
|
+
| File watcher | chokidar |
|
|
544
|
+
| CLI parsing | commander |
|
|
545
|
+
| MCP server | @modelcontextprotocol/sdk (stdio) |
|
|
546
|
+
| Validation | zod |
|
|
547
|
+
| Auth | jose (offline-validatable signed JWT licenses) |
|
|
548
|
+
| Web UI | Vite 8 + React 19 + Tailwind CSS |
|
|
549
|
+
| Data fetching | @tanstack/react-query |
|
|
550
|
+
| Virtualization | @tanstack/react-virtual |
|
|
551
|
+
| Markdown | marked + highlight.js + DOMPurify |
|
|
552
|
+
|
|
553
|
+
<br />
|
|
408
554
|
|
|
409
|
-
|
|
555
|
+
---
|
|
410
556
|
|
|
411
|
-
|
|
557
|
+
<br />
|
|
412
558
|
|
|
413
|
-
|
|
414
|
-
- ✅ v0.7 — VS Code / Cursor / Windsurf extension (process-tree tab correlation)
|
|
415
|
-
- ✅ v0.8 — Collections (hand-curated hierarchical groupings across projects)
|
|
416
|
-
- ✅ v0.9 — Auto-tagging (API key or MCP backend, off by default)
|
|
417
|
-
- ✅ v0.10a — Cost / token analytics (dashboard + `recall stats`)
|
|
418
|
-
- ✅ v0.10b — Git correlation (session ↔ commit, `recall blame`)
|
|
419
|
-
- ✅ v0.11 — Semantic search via local `claude` CLI
|
|
420
|
-
- ✅ v0.12a — `Cmd+K` command palette
|
|
421
|
-
- ✅ v0.13 — Bidirectional MCP write tools (opt-in, rate-limited, audited)
|
|
422
|
-
- ✅ v0.14a — First-60-seconds onboarding flow
|
|
423
|
-
- ✅ **v0.14c — Positioning rewrite (this pass)**
|
|
424
|
-
- ⬜ v0.6 — Commercialize: Next.js landing at `clauderecall.com` + LemonSqueezy license flow
|
|
559
|
+
## Distribution
|
|
425
560
|
|
|
426
|
-
|
|
561
|
+
Claude Recall ships on every surface a developer already works in.
|
|
427
562
|
|
|
428
|
-
|
|
563
|
+
| Surface | Identity | Install |
|
|
564
|
+
|---|---|---|
|
|
565
|
+
| **npm** (CLI + MCP) | [`@clauderecallhq/cli`](https://www.npmjs.com/package/@clauderecallhq/cli) | `npm i -g @clauderecallhq/cli` |
|
|
566
|
+
| **VS Code Marketplace** | [`clauderecallhq.clauderecall-vscode`](https://marketplace.visualstudio.com/items?itemName=clauderecallhq.clauderecall-vscode) | Search "Claude Recall" in Extensions |
|
|
567
|
+
| **MCP Registry** | [`io.github.clauderecallhq/recall`](https://registry.modelcontextprotocol.io/) | Auto-discovered by MCP clients |
|
|
568
|
+
| **Claude Code Plugin Hub** | `claude-recall` | `/plugin install claude-recall` in Claude Code |
|
|
569
|
+
| **Website** | [clauderecall.com](https://clauderecall.com) | -- |
|
|
429
570
|
|
|
430
|
-
|
|
571
|
+
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.
|
|
431
572
|
|
|
432
|
-
|
|
433
|
-
push to main (touching site/** | site-ci.yml | src/web/components/HelpView.tsx)
|
|
434
|
-
│
|
|
435
|
-
▼
|
|
436
|
-
site-ci typecheck → lint → sync:docs → unit tests → e2e (Playwright)
|
|
437
|
-
→ build → Lighthouse → bundle size ~3 min
|
|
438
|
-
│
|
|
439
|
-
▼ workflow_run on success only
|
|
440
|
-
deploy-site setup Node 22 → npm ci → next build → load deploy SSH key
|
|
441
|
-
→ ssh-keyscan droplet → rsync .next/ + public/ + manifests
|
|
442
|
-
→ npm install --omit=dev on droplet → pm2 restart
|
|
443
|
-
→ curl 5 routes for 200 → cleanup SSH key ~1 min
|
|
444
|
-
│
|
|
445
|
-
▼
|
|
446
|
-
clauderecall.com is live
|
|
447
|
-
```
|
|
573
|
+
<br />
|
|
448
574
|
|
|
449
|
-
|
|
575
|
+
---
|
|
450
576
|
|
|
451
|
-
|
|
577
|
+
<br />
|
|
452
578
|
|
|
453
|
-
|
|
454
|
-
# Re-run the full test suite against main (e.g. after rotating a secret).
|
|
455
|
-
gh workflow run site-ci --ref main
|
|
579
|
+
## Pricing
|
|
456
580
|
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
581
|
+
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.
|
|
582
|
+
|
|
583
|
+
<table>
|
|
584
|
+
<tr>
|
|
585
|
+
<td width="33%" valign="top">
|
|
586
|
+
|
|
587
|
+
### Free
|
|
588
|
+
|
|
589
|
+
**$0**
|
|
590
|
+
Forever. No signup. No credit card.
|
|
591
|
+
|
|
592
|
+
- Full indexing of every `~/.claude/projects/` JSON-L
|
|
593
|
+
- CLI: `list`, `show`, `projects`, `status`
|
|
594
|
+
- Web UI: browse projects, read transcripts, copy code
|
|
595
|
+
- Three-layer durability
|
|
596
|
+
|
|
597
|
+
```bash
|
|
598
|
+
npm install -g @clauderecallhq/cli
|
|
460
599
|
```
|
|
461
600
|
|
|
462
|
-
|
|
601
|
+
</td>
|
|
602
|
+
<td width="33%" valign="top">
|
|
463
603
|
|
|
464
|
-
###
|
|
604
|
+
### Pro <sub>← daily driver</sub>
|
|
465
605
|
|
|
466
|
-
|
|
606
|
+
**$29.69 one-time**
|
|
607
|
+
Pay once. Offline forever. Dead-man clause included.
|
|
608
|
+
*Less than two coffees a year out.*
|
|
467
609
|
|
|
468
|
-
|
|
610
|
+
- Full-text search (FTS5 BM25)
|
|
611
|
+
- On-device semantic vector search (768d, RRF fusion)
|
|
612
|
+
- `recall context` re-injection -- **the moat**
|
|
613
|
+
- MCP server (Claude Desktop / Claude Code native tools)
|
|
614
|
+
- VS Code / Cursor / Windsurf extension
|
|
615
|
+
- Aliases, tags, markdown notes, pins, date filters, cross-session diff
|
|
616
|
+
- Export: clean markdown, self-contained dark-mode HTML, print-ready
|
|
617
|
+
- Virtualized transcript (10k+ message sessions open instantly)
|
|
618
|
+
- Auto-tagging (API-key + MCP modes)
|
|
619
|
+
- Secrets redaction (client-side scrub of keys, tokens, passwords pre-index)
|
|
620
|
+
- **Every future personal-use feature.** One price, lifetime updates.
|
|
621
|
+
|
|
622
|
+
[**Buy Pro for $29.69 →**](https://clauderecall.com/pricing)
|
|
623
|
+
|
|
624
|
+
</td>
|
|
625
|
+
<td width="33%" valign="top">
|
|
626
|
+
|
|
627
|
+
### Enterprise
|
|
628
|
+
|
|
629
|
+
**Contact us**
|
|
630
|
+
Priced per deal.
|
|
631
|
+
|
|
632
|
+
- Shared session library with end-to-end encrypted team sync
|
|
633
|
+
- Team-wide tag conventions
|
|
634
|
+
- Local audit log (compliance-grade, not surveillance)
|
|
635
|
+
- SSO + per-project access control
|
|
636
|
+
- Priority support, named engineer
|
|
637
|
+
- Optional on-prem deployment
|
|
638
|
+
|
|
639
|
+
[hello@clauderecall.com](mailto:hello@clauderecall.com)
|
|
640
|
+
|
|
641
|
+
</td>
|
|
642
|
+
</tr>
|
|
643
|
+
</table>
|
|
644
|
+
|
|
645
|
+
<br />
|
|
646
|
+
|
|
647
|
+
### How it compares to what you already pay
|
|
648
|
+
|
|
649
|
+
| Tool | Price |
|
|
469
650
|
|---|---|
|
|
470
|
-
| **
|
|
471
|
-
|
|
|
472
|
-
|
|
|
473
|
-
|
|
|
474
|
-
|
|
|
475
|
-
| **Cloudflare Tunnel** | Dedicated tunnel `clauderecall` (its own systemd unit `cloudflared-clauderecall.service`), independent of every other tenant on the box. |
|
|
476
|
-
| **SSH** | `clauderecall-prod` host alias backed by a dedicated ed25519 key. CI uses a separate ed25519 key (rotatable without disturbing local deploys). Key-only auth — `PasswordAuthentication no` droplet-wide. |
|
|
477
|
-
| **Secrets** | `.env.production` lives only on the droplet (`0600`, never in git, never in CI artifacts). Rotate via `site/scripts/admin/swap-env-var.sh`. |
|
|
651
|
+
| **Claude Recall** | **$29.69 one-time** |
|
|
652
|
+
| Claude Code | $20 / mo |
|
|
653
|
+
| Cursor | $20 / mo |
|
|
654
|
+
| Raycast Pro | $8–$16 / mo |
|
|
655
|
+
| GitHub Copilot | $10 / mo |
|
|
478
656
|
|
|
479
|
-
|
|
657
|
+
<sub>Prices as of April 2026.</sub>
|
|
480
658
|
|
|
481
|
-
|
|
659
|
+
<br />
|
|
482
660
|
|
|
483
|
-
|
|
484
|
-
cd site
|
|
485
|
-
bash scripts/deploy/deploy-to-production.sh # full deploy
|
|
486
|
-
bash scripts/deploy/deploy-to-production.sh --dry-run # show plan only
|
|
487
|
-
bash scripts/deploy/deploy-to-production.sh --skip-build # reuse current .next/
|
|
488
|
-
```
|
|
661
|
+
### The dead-man clause
|
|
489
662
|
|
|
490
|
-
|
|
663
|
+
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.
|
|
491
664
|
|
|
492
|
-
|
|
665
|
+
Full pricing FAQ: **[clauderecall.com/pricing](https://clauderecall.com/pricing)**
|
|
493
666
|
|
|
494
|
-
|
|
495
|
-
# Reads value from stdin, never argv → never lands in shell history.
|
|
496
|
-
echo -n 'sk_live_...' | bash site/scripts/admin/swap-env-var.sh STRIPE_SECRET_KEY
|
|
667
|
+
<br />
|
|
497
668
|
|
|
498
|
-
|
|
499
|
-
bash site/scripts/admin/swap-env-var.sh STRIPE_SECRET_KEY
|
|
500
|
-
```
|
|
669
|
+
---
|
|
501
670
|
|
|
502
|
-
|
|
671
|
+
<br />
|
|
503
672
|
|
|
504
|
-
##
|
|
673
|
+
## Roadmap
|
|
505
674
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
675
|
+
- [x] CLI, daemon, web UI, full-text search
|
|
676
|
+
- [x] Context re-injection (the moat)
|
|
677
|
+
- [x] Aliases, notes, tags, pins
|
|
678
|
+
- [x] Cross-session diff
|
|
679
|
+
- [x] VS Code / Cursor / Windsurf extension
|
|
680
|
+
- [x] MCP server (read-only)
|
|
681
|
+
- [x] Collections (hierarchical, cross-project)
|
|
682
|
+
- [x] Auto-tagging (MCP + BYOK modes)
|
|
683
|
+
- [x] Cost / token analytics
|
|
684
|
+
- [x] Git correlation
|
|
685
|
+
- [x] Cmd+K command palette
|
|
686
|
+
- [x] Bidirectional MCP write tools (rate-limited + audited)
|
|
687
|
+
- [x] First-60-seconds onboarding
|
|
688
|
+
- [x] Rediscovery surface ("For you" cards)
|
|
689
|
+
- [x] **On-device vector search** (768d ONNX embeddings, RRF fusion)
|
|
690
|
+
- [x] **Threads** -- DAG view, drag-to-reparent, bulk title generation
|
|
691
|
+
- [x] **Pro license + dead-man clause** (offline-validatable JWT)
|
|
692
|
+
- [x] Memory health scores
|
|
693
|
+
- [x] Claude Code plugin manifest
|
|
694
|
+
- [ ] Public launch at clauderecall.com
|
|
695
|
+
- [ ] Team features (E2E-encrypted sync, SSO, audit log)
|
|
696
|
+
- [ ] Enterprise tier (on-prem, named-engineer support)
|
|
697
|
+
|
|
698
|
+
<br />
|
|
699
|
+
|
|
700
|
+
---
|
|
509
701
|
|
|
510
|
-
|
|
511
|
-
recall start # keep daemon running on port X
|
|
512
|
-
RECALL_DAEMON_PORT=X npm run dev:web # vite dev server on 5174, proxies /api → daemon
|
|
702
|
+
<br />
|
|
513
703
|
|
|
514
|
-
|
|
515
|
-
npm run typecheck
|
|
704
|
+
<div align="center">
|
|
516
705
|
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
706
|
+
<picture>
|
|
707
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/clauderecallhq/.github/main/profile/assets/mark-scrollback-dark.svg">
|
|
708
|
+
<img src="https://raw.githubusercontent.com/clauderecallhq/.github/main/profile/assets/mark-scrollback-dark.svg" alt="Claude Recall" width="48">
|
|
709
|
+
</picture>
|
|
520
710
|
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
- `src/daemon/` — background server + file watcher
|
|
524
|
-
- `src/db/schema.ts` — SQL schema (single source of truth, `IF NOT EXISTS` migrations)
|
|
525
|
-
- `src/parser/jsonl.ts` — JSONL → structured records (tool_use captured as markdown, ANSI stripped, usage counters extracted, secrets auto-redacted at ingest)
|
|
526
|
-
- `src/context/formatter.ts` — shared markdown formatter used by `recall context` CLI + `/api/sessions/:id/context` HTTP + MCP
|
|
527
|
-
- `src/utils/aliases.ts`, `notes.ts`, `tags.ts`, `collections.ts` — write features with three-layer durability
|
|
528
|
-
- `src/utils/pricing.ts` — static ¢/Mtok pricing table (derived, not persisted)
|
|
529
|
-
- `src/semantic/pipeline.ts` — Claude-CLI-backed semantic summaries
|
|
530
|
-
- `src/mcp/` — MCP stdio server (read-only tools + opt-in write tools + audit + rate limiter)
|
|
531
|
-
- `src/commands/*.ts` — individual CLI subcommands
|
|
532
|
-
- `src/web/App.tsx` — root React component
|
|
533
|
-
- `src/web/commands/` — command palette registry + built-ins
|
|
534
|
-
- `src/web/components/` — each pane and feature
|
|
535
|
-
- `src/web/hooks/` — `useHashRoute`, `usePinned`, `useAlias`, `useNotes`, `useTags`, `useOnboarding`, `useDebounced`
|
|
711
|
+
<br />
|
|
712
|
+
<br />
|
|
536
713
|
|
|
537
|
-
|
|
714
|
+
**Claude Recall** -- the memory layer for the agent you're steering.
|
|
538
715
|
|
|
539
|
-
|
|
716
|
+
[Website](https://clauderecall.com) · [Install](https://www.npmjs.com/package/@clauderecallhq/cli) · [Issues](https://github.com/clauderecallhq/.github/issues)
|
|
540
717
|
|
|
541
|
-
|
|
718
|
+
<br />
|
|
542
719
|
|
|
543
|
-
|
|
720
|
+
<sub>Built by <a href="https://github.com/clauderecallhq">@clauderecallhq</a></sub>
|
|
544
721
|
|
|
545
|
-
|
|
722
|
+
</div>
|