@clauderecallhq/cli 0.12.0 → 0.12.1
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 +468 -413
- package/package.json +3 -3
- package/README.public.md +0 -523
package/README.md
CHANGED
|
@@ -1,230 +1,273 @@
|
|
|
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.
|
|
24
48
|
|
|
25
|
-
|
|
49
|
+
You built that context pyramid once. Now you're building it again.
|
|
26
50
|
|
|
27
|
-
|
|
51
|
+
</td>
|
|
52
|
+
<td width="33%" valign="top">
|
|
28
53
|
|
|
29
|
-
|
|
54
|
+
### Cost Blindness
|
|
30
55
|
|
|
31
|
-
|
|
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?
|
|
32
57
|
|
|
33
|
-
|
|
58
|
+
You're guessing.
|
|
34
59
|
|
|
35
|
-
|
|
60
|
+
</td>
|
|
61
|
+
<td width="33%" valign="top">
|
|
62
|
+
|
|
63
|
+
### Session Sprawl
|
|
64
|
+
|
|
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
|
|
36
76
|
|
|
37
77
|
```bash
|
|
38
|
-
|
|
39
|
-
recall
|
|
78
|
+
npm install -g @clauderecallhq/cli
|
|
79
|
+
recall start
|
|
80
|
+
recall open
|
|
40
81
|
```
|
|
41
82
|
|
|
42
|
-
|
|
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:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# The moat: past session -> new conversation
|
|
87
|
+
recall context abc12345 | claude
|
|
88
|
+
```
|
|
43
89
|
|
|
44
|
-
Claude
|
|
90
|
+
Claude picks up where you left off instead of asking you to explain it again.
|
|
45
91
|
|
|
46
|
-
|
|
92
|
+
<br />
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
<br />
|
|
97
|
+
|
|
98
|
+
## Features
|
|
99
|
+
|
|
100
|
+
<table>
|
|
101
|
+
<tr>
|
|
102
|
+
<td width="50%" valign="top">
|
|
103
|
+
|
|
104
|
+
### Search Everything
|
|
105
|
+
Full-text search across 100,000+ messages in milliseconds. BM25 ranking, highlighted snippets, inline `#tag` filters.
|
|
47
106
|
|
|
48
107
|
```bash
|
|
49
|
-
recall
|
|
50
|
-
recall
|
|
51
|
-
recall stats --days 7 # last week across everything
|
|
108
|
+
recall search "zod schema"
|
|
109
|
+
recall search "auth #auth-fix"
|
|
52
110
|
```
|
|
53
111
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
Claude Code scatters every conversation into `~/.claude/projects/**/*.jsonl` — a write-only log with no titles, no search, no way to find the session where you finally got the auth flow right. Dozens of projects × hundreds of sessions × zero hope of finding anything manually.
|
|
112
|
+
</td>
|
|
113
|
+
<td width="50%" valign="top">
|
|
57
114
|
|
|
58
|
-
|
|
115
|
+
### Context Re-injection
|
|
116
|
+
The core feature. Pipe any past session into a new Claude Code conversation as condensed markdown. Runs locally, never touches the network.
|
|
59
117
|
|
|
60
118
|
```bash
|
|
61
|
-
recall
|
|
62
|
-
recall
|
|
63
|
-
recall semantic on # enable conceptual search
|
|
119
|
+
recall context <id> | claude
|
|
120
|
+
recall context <id> --prelude "continue this" | claude
|
|
64
121
|
```
|
|
65
122
|
|
|
66
|
-
|
|
123
|
+
</td>
|
|
124
|
+
</tr>
|
|
125
|
+
<tr>
|
|
126
|
+
<td width="50%" valign="top">
|
|
67
127
|
|
|
68
|
-
|
|
128
|
+
### Cost Analytics
|
|
129
|
+
Per-session and per-project token + dollar totals. Daily sparkline. Top-10 heaviest sessions. Know exactly where your Anthropic bill is going.
|
|
69
130
|
|
|
70
131
|
```bash
|
|
71
|
-
|
|
72
|
-
|
|
132
|
+
recall stats <id>
|
|
133
|
+
recall stats --project Tools
|
|
134
|
+
recall stats --days 7
|
|
135
|
+
```
|
|
73
136
|
|
|
74
|
-
|
|
75
|
-
|
|
137
|
+
</td>
|
|
138
|
+
<td width="50%" valign="top">
|
|
76
139
|
|
|
77
|
-
|
|
78
|
-
|
|
140
|
+
### Git Correlation
|
|
141
|
+
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.
|
|
79
142
|
|
|
80
|
-
|
|
81
|
-
recall
|
|
143
|
+
```bash
|
|
144
|
+
recall correlate
|
|
145
|
+
recall blame <sha>
|
|
146
|
+
```
|
|
82
147
|
|
|
83
|
-
|
|
84
|
-
|
|
148
|
+
</td>
|
|
149
|
+
</tr>
|
|
150
|
+
<tr>
|
|
151
|
+
<td width="50%" valign="top">
|
|
152
|
+
|
|
153
|
+
### Semantic Search
|
|
154
|
+
Conceptual search powered by your local `claude` CLI. Find "the session where I debugged the worker memory leak" without remembering exact words.
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
recall semantic on
|
|
158
|
+
recall semantic backfill
|
|
85
159
|
```
|
|
86
160
|
|
|
87
|
-
|
|
161
|
+
</td>
|
|
162
|
+
<td width="50%" valign="top">
|
|
88
163
|
|
|
89
|
-
###
|
|
164
|
+
### MCP Server
|
|
165
|
+
Expose Recall to Claude Desktop, Claude Code, or any MCP client as native tools. Read-only by default, opt-in write tools with rate limiting and audit logging.
|
|
90
166
|
|
|
91
167
|
```bash
|
|
92
|
-
|
|
93
|
-
recall
|
|
94
|
-
|
|
95
|
-
recall open # open web UI (starts daemon if needed)
|
|
96
|
-
recall status # db + daemon health
|
|
168
|
+
recall mcp
|
|
169
|
+
recall mcp --allow-writes
|
|
170
|
+
```
|
|
97
171
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
172
|
+
</td>
|
|
173
|
+
</tr>
|
|
174
|
+
<tr>
|
|
175
|
+
<td width="50%" valign="top">
|
|
102
176
|
|
|
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
|
|
177
|
+
### Collections & Tags
|
|
178
|
+
Hand-curated hierarchical groupings of sessions that cut across projects. Human-readable aliases. Auto-tagging via your Anthropic API key or Claude CLI (zero extra cost).
|
|
108
179
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
recall show <id> --raw # raw JSONL
|
|
112
|
-
recall show <id> --no-pager # dump to stdout
|
|
180
|
+
</td>
|
|
181
|
+
<td width="50%" valign="top">
|
|
113
182
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
183
|
+
### Web UI
|
|
184
|
+
Beautiful dark-mode three-pane layout. Virtualized transcript rendering (10,000-message sessions open instantly). `Cmd+K` command palette. Multi-select. Export to markdown, HTML, or PDF.
|
|
185
|
+
|
|
186
|
+
</td>
|
|
187
|
+
</tr>
|
|
188
|
+
</table>
|
|
189
|
+
|
|
190
|
+
<br />
|
|
191
|
+
|
|
192
|
+
<details>
|
|
193
|
+
<summary><strong>More: VS Code extension, cross-session diff, onboarding, keyboard shortcuts...</strong></summary>
|
|
194
|
+
|
|
195
|
+
<br />
|
|
196
|
+
|
|
197
|
+
- **VS Code / Cursor / Windsurf extension** -- auto-names sessions using terminal tab names via process-tree matching
|
|
198
|
+
- **Cross-session diff** -- split view of two transcripts with shareable `cmp=` URL
|
|
199
|
+
- **First-run onboarding** -- a 3-step tour that demos the moat in the first 60 seconds
|
|
200
|
+
- **Multi-select sessions** -- `Cmd+Click` to toggle, `Shift+Click` for range, right-click to copy IDs
|
|
201
|
+
- **Export** -- condensed markdown, full markdown, self-contained dark-mode HTML, print-ready PDF
|
|
202
|
+
- **Cmd+K command palette** -- jump to any session, action, or setting in one keystroke
|
|
203
|
+
|
|
204
|
+
#### Keyboard Shortcuts
|
|
205
|
+
|
|
206
|
+
| Key | Action |
|
|
207
|
+
|---|---|
|
|
208
|
+
| `/` | Focus search |
|
|
209
|
+
| `?` | Open Command Center |
|
|
210
|
+
| `Cmd+K` / `Ctrl+K` | Command palette |
|
|
211
|
+
| `Esc` | Close / clear / dismiss |
|
|
212
|
+
| `n` / `p` | Next / previous search match |
|
|
213
|
+
| `c` | New collection |
|
|
214
|
+
| `Cmd+Shift+A` | Add session to collection |
|
|
215
|
+
| `Cmd+Enter` | Save note |
|
|
216
|
+
|
|
217
|
+
</details>
|
|
218
|
+
|
|
219
|
+
<br />
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
<br />
|
|
224
|
+
|
|
225
|
+
## Quick Start
|
|
118
226
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
#
|
|
129
|
-
recall
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
recall
|
|
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
|
|
227
|
+
### Install
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
npm install -g @clauderecallhq/cli
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Start
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# Start the background daemon (file watcher + local HTTP server)
|
|
237
|
+
recall start
|
|
238
|
+
|
|
239
|
+
# Open the web UI
|
|
240
|
+
recall open
|
|
210
241
|
```
|
|
211
242
|
|
|
212
|
-
|
|
243
|
+
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.
|
|
213
244
|
|
|
214
|
-
|
|
245
|
+
### Explore
|
|
215
246
|
|
|
216
247
|
```bash
|
|
217
|
-
#
|
|
218
|
-
|
|
248
|
+
recall projects # list projects with session counts
|
|
249
|
+
recall list # 30 most-recent sessions
|
|
250
|
+
recall list -p Tools # filter by project
|
|
251
|
+
recall show <id> # pretty-printed transcript
|
|
252
|
+
recall search "auth bug" # full-text search
|
|
253
|
+
```
|
|
219
254
|
|
|
220
|
-
|
|
221
|
-
recall mcp
|
|
255
|
+
### The Moat
|
|
222
256
|
|
|
223
|
-
|
|
224
|
-
|
|
257
|
+
```bash
|
|
258
|
+
# Pipe a past session into a new Claude Code conversation
|
|
259
|
+
recall context abc12345 | claude
|
|
260
|
+
|
|
261
|
+
# With a custom instruction
|
|
262
|
+
recall context abc12345 --prelude "continue where we left off" | claude
|
|
263
|
+
|
|
264
|
+
# Just the last 2 hours
|
|
265
|
+
recall context abc12345 --since 2h | claude
|
|
225
266
|
```
|
|
226
267
|
|
|
227
|
-
|
|
268
|
+
### MCP Server
|
|
269
|
+
|
|
270
|
+
Point any MCP client at Recall and the model calls it as native tools:
|
|
228
271
|
|
|
229
272
|
```json
|
|
230
273
|
{
|
|
@@ -236,310 +279,322 @@ Minimal Claude Code / Claude Desktop config:
|
|
|
236
279
|
}
|
|
237
280
|
```
|
|
238
281
|
|
|
239
|
-
|
|
282
|
+
<details>
|
|
283
|
+
<summary><strong>Available MCP tools (31 total)</strong></summary>
|
|
284
|
+
|
|
285
|
+
<br />
|
|
286
|
+
|
|
287
|
+
**Read tools (13 -- always available):**
|
|
240
288
|
|
|
241
289
|
| Tool | Purpose |
|
|
242
290
|
|---|---|
|
|
243
291
|
| `list_projects` | Every indexed project with session/message counts |
|
|
244
|
-
| `list_sessions` | Recent sessions
|
|
292
|
+
| `list_sessions` | Recent sessions; filters: project, tag, date range |
|
|
245
293
|
| `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
|
|
294
|
+
| `list_sessions_to_tag` | Surface untagged sessions for review |
|
|
295
|
+
| `apply_tags` | Add tags to a session (merge-mode) |
|
|
296
|
+
| `search` | Full-text search with `#tag` support; BM25 + optional vector fusion |
|
|
297
|
+
| `find_similar_sessions` | Semantic similarity via vector embeddings (Pro) |
|
|
298
|
+
| `semantic_status` | Health snapshot: model, worker, queue depth (Pro) |
|
|
299
|
+
| `get_session` | Full transcript (accepts 8+ char id prefix) |
|
|
300
|
+
| `context_for_session` | Condensed markdown export, ready to inject |
|
|
301
|
+
| `thread_list` | All threads, newest first; can exclude archived |
|
|
254
302
|
| `thread_get` | Full thread detail with every session edge |
|
|
255
|
-
| `thread_for_session` |
|
|
303
|
+
| `thread_for_session` | Non-archived threads referencing a session |
|
|
256
304
|
|
|
257
|
-
|
|
305
|
+
**Write tools (18 -- opt-in via `--allow-writes`):**
|
|
258
306
|
|
|
259
307
|
| Tool | Purpose |
|
|
260
308
|
|---|---|
|
|
261
|
-
| `add_tag` / `remove_tag` |
|
|
262
|
-
| `set_alias` |
|
|
263
|
-
| `append_note` |
|
|
264
|
-
| `create_collection` |
|
|
265
|
-
| `add_session_to_collection`
|
|
266
|
-
| `
|
|
267
|
-
| `
|
|
268
|
-
| `
|
|
269
|
-
| `
|
|
309
|
+
| `add_tag` / `remove_tag` | Tag management; removals logged in append-only log |
|
|
310
|
+
| `set_alias` | Human-friendly session name; previous alias archived |
|
|
311
|
+
| `append_note` | Add markdown to session note; separated by `---` |
|
|
312
|
+
| `create_collection` | New collection; optional parent, icon, color |
|
|
313
|
+
| `add_session_to_collection` | Idempotent collection membership |
|
|
314
|
+
| `remove_session_from_collection` | Remove session; logged in append-only log |
|
|
315
|
+
| `thread_create` | Create thread, optionally seed with origin session |
|
|
316
|
+
| `thread_add_session` | Attach session; role=origin or child |
|
|
317
|
+
| `thread_set_parent` | Change parent within thread; null clears parent |
|
|
318
|
+
| `thread_remove_session` | Detach session from thread |
|
|
270
319
|
| `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` |
|
|
320
|
+
| `thread_close` / `thread_reopen` | Mark thread as closed or reopen |
|
|
321
|
+
| `thread_archive` | Soft-delete thread; hidden by default |
|
|
322
|
+
| `thread_merge` | Move all edges from source to dest, delete source |
|
|
323
|
+
| `thread_split` | Peel sessions into new thread |
|
|
324
|
+
| `generate_thread_titles` | Generate coherent titles for sessions in thread DAG |
|
|
276
325
|
|
|
277
|
-
|
|
326
|
+
All writes are rate-limited (default 60/min), zod-validated, and audited to `~/.recall/audit/`.
|
|
278
327
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
Press **`?`** anywhere to open the Command Center — full docs with sections for Quickstart, Web UI tour, CLI commands, Keyboard shortcuts, Collections, Your data, Exporting, Security, Pro tips, MCP server, VS Code extension, Pricing, FAQ, and Troubleshooting.
|
|
282
|
-
|
|
283
|
-
Keyboard shortcuts:
|
|
284
|
-
|
|
285
|
-
| Key | Action |
|
|
286
|
-
|---|---|
|
|
287
|
-
| `/` | Focus the search box |
|
|
288
|
-
| `?` | Open Command Center |
|
|
289
|
-
| `Cmd+K` / `Ctrl+K` | Open the command palette (jump to any session, action, or setting) |
|
|
290
|
-
| `Esc` | Close/clear/dismiss |
|
|
291
|
-
| `n` / `p` | Next / previous match (during search) |
|
|
292
|
-
| `c` | New collection |
|
|
293
|
-
| `Cmd+Shift+A` | Add current session to a collection |
|
|
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 |
|
|
297
|
-
|
|
298
|
-
## Features
|
|
328
|
+
</details>
|
|
299
329
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
- **Indexes every past session** into SQLite + FTS5 at `~/.recall/db.sqlite`
|
|
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
|
|
319
|
-
|
|
320
|
-
## Architecture
|
|
321
|
-
|
|
322
|
-
### Two surfaces — don't confuse them
|
|
323
|
-
|
|
324
|
-
Claude Recall spans two independent frontends that share the `clauderecall.com` brand:
|
|
325
|
-
|
|
326
|
-
| Surface | Stack | Lives at | Purpose |
|
|
327
|
-
|---|---|---|---|
|
|
328
|
-
| **Local product** (this repo, `src/web/`) | Vite 8 + React 19 + Tailwind, served by the Hono daemon | `http://127.0.0.1:<random-port>` on the user's machine | The actual `recall` experience — the UI the user opens when they type `recall open` |
|
|
329
|
-
| **Marketing / docs site** (separate deploy) | Next.js | `clauderecall.com` | Public landing, SEO, MDX docs, AI-search citability, checkout (v0.6) |
|
|
330
|
+
<br />
|
|
330
331
|
|
|
331
|
-
|
|
332
|
+
---
|
|
332
333
|
|
|
333
|
-
|
|
334
|
+
<br />
|
|
334
335
|
|
|
335
|
-
|
|
336
|
+
## How It Works
|
|
336
337
|
|
|
337
338
|
```
|
|
338
|
-
~/.claude/projects/**/*.jsonl
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
~/.recall/db.sqlite
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
CLI HTTP server (Hono,
|
|
346
|
-
|
|
347
|
-
recall
|
|
348
|
-
│
|
|
349
|
-
▼
|
|
350
|
-
React + Tailwind SPA (Vite build, served from dist/web/)
|
|
339
|
+
~/.claude/projects/**/*.jsonl <-- Claude Code's session files (read-only)
|
|
340
|
+
|
|
|
341
|
+
v chokidar file watcher
|
|
342
|
+
~/.recall/db.sqlite <-- indexed database (FTS5 full-text search)
|
|
343
|
+
|
|
|
344
|
+
+-----+-----+
|
|
345
|
+
| |
|
|
346
|
+
CLI HTTP server (Hono, 127.0.0.1 only)
|
|
347
|
+
| |
|
|
348
|
+
recall ... Web UI (React + Tailwind SPA)
|
|
351
349
|
```
|
|
352
350
|
|
|
353
|
-
### Data
|
|
351
|
+
### Data stays local
|
|
354
352
|
|
|
355
353
|
| Path | What |
|
|
356
354
|
|---|---|
|
|
357
|
-
|
|
|
358
|
-
|
|
|
359
|
-
|
|
|
360
|
-
|
|
|
361
|
-
|
|
|
362
|
-
| `semantic/<session>.json` | Per-session summary + keywords (only when semantic mode is on) |
|
|
363
|
-
| `daemon.pid` | Running daemon metadata |
|
|
364
|
-
| `daemon.port` | Port the daemon picked |
|
|
365
|
-
| `daemon.log` | Daemon logs |
|
|
366
|
-
|
|
367
|
-
## The "never delete data" invariant
|
|
368
|
-
|
|
369
|
-
Every user-created write feature enforces **three independent durability layers**:
|
|
370
|
-
|
|
371
|
-
1. **SQLite** — primary storage with history columns (`previous_aliases`, `previous_versions`, `tag_events`, `collection_events`)
|
|
372
|
-
2. **Plain-text mirror on disk** — JSON or markdown files so the data is greppable, editable, and recoverable if the database is wiped
|
|
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.
|
|
355
|
+
| `~/.recall/db.sqlite` | Indexed database (projects, sessions, messages, FTS5, aliases, notes, tags, collections, semantic summaries, commit links, usage rollups, audit logs) |
|
|
356
|
+
| `~/.recall/aliases.json` | Plain-text mirror of every alias with full edit history |
|
|
357
|
+
| `~/.recall/notes/<session>.md` | One markdown file per session note |
|
|
358
|
+
| `~/.recall/tags.json` | Current tag state + append-only event log |
|
|
359
|
+
| `~/.recall/collections.json` | Current tree state + append-only event log |
|
|
408
360
|
|
|
409
|
-
|
|
361
|
+
<br />
|
|
410
362
|
|
|
411
|
-
|
|
363
|
+
---
|
|
412
364
|
|
|
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
|
|
365
|
+
<br />
|
|
425
366
|
|
|
426
|
-
##
|
|
367
|
+
## Privacy & Security
|
|
427
368
|
|
|
428
|
-
|
|
369
|
+
Claude Recall is **local-first by design**, not as an afterthought.
|
|
429
370
|
|
|
430
|
-
|
|
371
|
+
- The daemon binds to **`127.0.0.1` only**. Never `0.0.0.0`, never a public interface.
|
|
372
|
+
- **No telemetry.** No analytics. No outbound network calls. The only exception is a one-time license check when you activate a Pro key.
|
|
373
|
+
- **No cloud. No account.** Your data lives at `~/.recall/` and nowhere else.
|
|
374
|
+
- **Source sessions are never modified.** Claude Code's JSONL files at `~/.claude/projects/` are strictly read-only to Recall.
|
|
375
|
+
- **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.
|
|
431
376
|
|
|
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
|
-
```
|
|
377
|
+
<br />
|
|
448
378
|
|
|
449
|
-
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
<br />
|
|
382
|
+
|
|
383
|
+
## Full CLI Reference
|
|
450
384
|
|
|
451
|
-
|
|
385
|
+
<details>
|
|
386
|
+
<summary><strong>Click to expand</strong></summary>
|
|
387
|
+
|
|
388
|
+
<br />
|
|
452
389
|
|
|
453
390
|
```bash
|
|
454
|
-
#
|
|
455
|
-
|
|
391
|
+
# Lifecycle
|
|
392
|
+
recall start # start daemon (watcher + local HTTP)
|
|
393
|
+
recall stop # stop daemon
|
|
394
|
+
recall open # open web UI (starts daemon if needed)
|
|
395
|
+
recall status # db + daemon health
|
|
396
|
+
|
|
397
|
+
# Indexing
|
|
398
|
+
recall index # scan for new/changed session files
|
|
399
|
+
recall index --force # reindex everything
|
|
400
|
+
|
|
401
|
+
# Explore
|
|
402
|
+
recall projects # list projects with session counts
|
|
403
|
+
recall list # 30 most-recent sessions
|
|
404
|
+
recall list -p Tools # filter by project substring
|
|
405
|
+
recall list -n 100 # higher limit
|
|
406
|
+
|
|
407
|
+
# Read
|
|
408
|
+
recall show <id> # pretty transcript, auto-paged
|
|
409
|
+
recall show <id> --raw # raw JSONL
|
|
410
|
+
recall show <id> --no-pager
|
|
456
411
|
|
|
457
|
-
#
|
|
458
|
-
|
|
459
|
-
|
|
412
|
+
# Search
|
|
413
|
+
recall search "zod schema"
|
|
414
|
+
recall search "auth" -p Pest-Control
|
|
415
|
+
recall search bug -n 50
|
|
416
|
+
|
|
417
|
+
# Context re-injection
|
|
418
|
+
recall context <id> # condensed markdown
|
|
419
|
+
recall context <id> | pbcopy # to clipboard (macOS)
|
|
420
|
+
recall context <id> | claude # into new Claude session
|
|
421
|
+
recall context <id> --full # full transcript
|
|
422
|
+
recall context <id> --since 2h # last 2 hours only
|
|
423
|
+
recall context <id> --prelude "continue this" # prepend instruction
|
|
424
|
+
recall context <id> --subagents # include subagent messages
|
|
425
|
+
|
|
426
|
+
# Stats
|
|
427
|
+
recall stats <id> # tokens + dollars for one session
|
|
428
|
+
recall stats --project Tools # per-project rollup
|
|
429
|
+
recall stats --days 7 # 7-day overview
|
|
430
|
+
recall stats --backfill # one-shot usage backfill
|
|
431
|
+
|
|
432
|
+
# Git correlation
|
|
433
|
+
recall correlate # link sessions to commits
|
|
434
|
+
recall blame <sha> # commit -> session reverse lookup
|
|
435
|
+
|
|
436
|
+
# Semantic search
|
|
437
|
+
recall semantic on # enable conceptual search
|
|
438
|
+
recall semantic status # backfill progress
|
|
439
|
+
recall semantic backfill # run now
|
|
440
|
+
|
|
441
|
+
# MCP server
|
|
442
|
+
recall mcp # stdio, read-only
|
|
443
|
+
recall mcp --allow-writes # opt-in write tools
|
|
460
444
|
```
|
|
461
445
|
|
|
462
|
-
|
|
446
|
+
</details>
|
|
447
|
+
|
|
448
|
+
<br />
|
|
463
449
|
|
|
464
|
-
|
|
450
|
+
---
|
|
465
451
|
|
|
466
|
-
|
|
452
|
+
<br />
|
|
467
453
|
|
|
468
|
-
|
|
454
|
+
## Tech Stack
|
|
455
|
+
|
|
456
|
+
| Layer | Technology |
|
|
469
457
|
|---|---|
|
|
470
|
-
|
|
|
471
|
-
|
|
|
472
|
-
|
|
|
473
|
-
|
|
|
474
|
-
|
|
|
475
|
-
|
|
|
476
|
-
|
|
|
477
|
-
|
|
|
458
|
+
| CLI + daemon | TypeScript 5 (strict), Node 22+, ESM |
|
|
459
|
+
| HTTP server | Hono + @hono/node-server |
|
|
460
|
+
| Database | better-sqlite3 with FTS5 full-text search |
|
|
461
|
+
| File watcher | chokidar |
|
|
462
|
+
| CLI parsing | commander |
|
|
463
|
+
| MCP server | @modelcontextprotocol/sdk (stdio) |
|
|
464
|
+
| Validation | zod |
|
|
465
|
+
| Web UI | Vite 8 + React 19 + Tailwind CSS |
|
|
466
|
+
| Data fetching | @tanstack/react-query |
|
|
467
|
+
| Virtualization | @tanstack/react-virtual |
|
|
468
|
+
| Markdown | marked + highlight.js + DOMPurify |
|
|
469
|
+
|
|
470
|
+
<br />
|
|
478
471
|
|
|
479
|
-
|
|
472
|
+
---
|
|
480
473
|
|
|
481
|
-
|
|
474
|
+
<br />
|
|
475
|
+
|
|
476
|
+
## Distribution
|
|
477
|
+
|
|
478
|
+
Claude Recall ships on every surface a developer already works in.
|
|
479
|
+
|
|
480
|
+
| Surface | Identity | Version | Install |
|
|
481
|
+
|---|---|---|---|
|
|
482
|
+
| **npm** (CLI + MCP) | [`@clauderecallhq/cli`](https://www.npmjs.com/package/@clauderecallhq/cli) | v0.12.0 | `npm i -g @clauderecallhq/cli` |
|
|
483
|
+
| **VS Code Marketplace** | [`clauderecallhq.clauderecall-vscode`](https://marketplace.visualstudio.com/items?itemName=clauderecallhq.clauderecall-vscode) | v0.8.3 | Search "Claude Recall" in Extensions |
|
|
484
|
+
| **MCP Registry** | [`io.github.clauderecallhq/recall`](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.clauderecallhq%2Frecall/versions/0.12.0) | v0.12.0 | Auto-discovered by MCP clients |
|
|
485
|
+
| **Plugin Hub** | `claude-recall` | -- | `/plugin install claude-recall` in Claude Code |
|
|
486
|
+
| **Website** | [clauderecall.com](https://clauderecall.com) | v0.4.0 | -- |
|
|
487
|
+
|
|
488
|
+
### How the pieces connect
|
|
489
|
+
|
|
490
|
+
```
|
|
491
|
+
npm package (@clauderecallhq/cli)
|
|
492
|
+
|
|
|
493
|
+
+-- CLI binary: `recall`
|
|
494
|
+
+-- MCP server: `recall mcp` (stdio transport)
|
|
495
|
+
|
|
|
496
|
+
+-- MCP Registry points here via npx
|
|
497
|
+
+-- Plugin Hub points here via npx
|
|
498
|
+
|
|
|
499
|
+
VS Code extension (independent)
|
|
500
|
+
+-- Talks to daemon over HTTP (127.0.0.1)
|
|
501
|
+
+-- Does NOT run MCP tools
|
|
502
|
+
|
|
|
503
|
+
Website (clauderecall.com)
|
|
504
|
+
+-- Auto-deploys on push via GitHub Actions
|
|
505
|
+
+-- Marketing, docs, /metrics dashboard
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
### Tracking installs
|
|
482
509
|
|
|
483
510
|
```bash
|
|
484
|
-
|
|
485
|
-
|
|
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/
|
|
511
|
+
recall installs # npm downloads + VS Code installs in one view
|
|
512
|
+
recall installs --json # machine-readable output
|
|
488
513
|
```
|
|
489
514
|
|
|
490
|
-
|
|
515
|
+
Live dashboard: [clauderecall.com/metrics](https://clauderecall.com/metrics)
|
|
491
516
|
|
|
492
|
-
###
|
|
517
|
+
### Publishing checklist (for maintainers)
|
|
493
518
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
519
|
+
1. **npm**: `npm publish --access public` (2FA required, bin entries show warning but work via `npx -p @clauderecallhq/cli recall`)
|
|
520
|
+
2. **VS Code**: Build .vsix in `extensions/vscode/`, upload at [marketplace.visualstudio.com/manage](https://marketplace.visualstudio.com/manage/publishers/clauderecallhq)
|
|
521
|
+
3. **MCP Registry**: `cd plugin && mcp-publisher publish` (requires GitHub OAuth, org membership must be Public)
|
|
522
|
+
4. **Plugin Hub**: Web form at `claude.ai/settings/plugins/submit`
|
|
523
|
+
5. **Website**: Push to `main` -- auto-deploys
|
|
497
524
|
|
|
498
|
-
|
|
499
|
-
bash site/scripts/admin/swap-env-var.sh STRIPE_SECRET_KEY
|
|
500
|
-
```
|
|
525
|
+
### Known issue: npx scoped bin resolution
|
|
501
526
|
|
|
502
|
-
|
|
527
|
+
`npx -y @clauderecallhq/cli mcp` fails because npx looks for a bin named `cli` (the unscoped package name). Workaround: `npx -p @clauderecallhq/cli recall mcp`. The MCP config in docs uses the workaround syntax.
|
|
503
528
|
|
|
504
|
-
|
|
529
|
+
<br />
|
|
505
530
|
|
|
506
|
-
|
|
507
|
-
# Develop CLI
|
|
508
|
-
npm run dev # tsx runs src/cli.ts
|
|
531
|
+
---
|
|
509
532
|
|
|
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
|
|
533
|
+
<br />
|
|
513
534
|
|
|
514
|
-
|
|
515
|
-
npm run typecheck
|
|
535
|
+
## Pricing
|
|
516
536
|
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
537
|
+
| | Free | Pro |
|
|
538
|
+
|---|---|---|
|
|
539
|
+
| **Search** | Unlimited | Unlimited |
|
|
540
|
+
| **Context re-injection** | Unlimited | Unlimited |
|
|
541
|
+
| **Sessions indexed** | Unlimited | Unlimited |
|
|
542
|
+
| **Cost analytics** | Unlimited | Unlimited |
|
|
543
|
+
| **Git correlation** | Unlimited | Unlimited |
|
|
544
|
+
| **MCP server** | Read-only | Read + Write |
|
|
545
|
+
| **Semantic search** | -- | Included |
|
|
546
|
+
| **Auto-tagging** | -- | Included |
|
|
547
|
+
| **Price** | $0 | **$29.69 one-time** |
|
|
520
548
|
|
|
521
|
-
|
|
522
|
-
- `src/cli.ts` — CLI entry (commander)
|
|
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`
|
|
549
|
+
No subscriptions. No recurring fees. Pay once, own it forever.
|
|
536
550
|
|
|
537
|
-
|
|
551
|
+
<br />
|
|
538
552
|
|
|
539
|
-
|
|
553
|
+
---
|
|
540
554
|
|
|
541
|
-
|
|
555
|
+
<br />
|
|
542
556
|
|
|
543
|
-
##
|
|
557
|
+
## Roadmap
|
|
544
558
|
|
|
545
|
-
|
|
559
|
+
- [x] CLI, daemon, web UI, full-text search
|
|
560
|
+
- [x] Context re-injection (the moat)
|
|
561
|
+
- [x] Aliases, notes, tags, pins
|
|
562
|
+
- [x] Cross-session diff
|
|
563
|
+
- [x] VS Code / Cursor / Windsurf extension
|
|
564
|
+
- [x] MCP server (read-only)
|
|
565
|
+
- [x] Collections (hierarchical, cross-project)
|
|
566
|
+
- [x] Auto-tagging
|
|
567
|
+
- [x] Cost / token analytics
|
|
568
|
+
- [x] Git correlation
|
|
569
|
+
- [x] Semantic search
|
|
570
|
+
- [x] Cmd+K command palette
|
|
571
|
+
- [x] Bidirectional MCP write tools
|
|
572
|
+
- [x] First-run onboarding
|
|
573
|
+
- [ ] Public launch at clauderecall.com
|
|
574
|
+
- [ ] Team features
|
|
575
|
+
|
|
576
|
+
<br />
|
|
577
|
+
|
|
578
|
+
---
|
|
579
|
+
|
|
580
|
+
<br />
|
|
581
|
+
|
|
582
|
+
<div align="center">
|
|
583
|
+
|
|
584
|
+
<picture>
|
|
585
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/clauderecallhq/.github/main/profile/assets/mark-scrollback-dark.svg">
|
|
586
|
+
<img src="https://raw.githubusercontent.com/clauderecallhq/.github/main/profile/assets/mark-scrollback-dark.svg" alt="Claude Recall" width="48">
|
|
587
|
+
</picture>
|
|
588
|
+
|
|
589
|
+
<br />
|
|
590
|
+
<br />
|
|
591
|
+
|
|
592
|
+
**Claude Recall** -- the memory layer for the agent you're steering.
|
|
593
|
+
|
|
594
|
+
[Website](https://clauderecall.com) · [Install](https://www.npmjs.com/package/@clauderecallhq/cli) · [Issues](https://github.com/clauderecallhq/.github/issues)
|
|
595
|
+
|
|
596
|
+
<br />
|
|
597
|
+
|
|
598
|
+
<sub>Built by <a href="https://github.com/clauderecallhq">@clauderecallhq</a></sub>
|
|
599
|
+
|
|
600
|
+
</div>
|