@clauderecallhq/cli 0.0.1 → 0.12.0
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/LICENSE +33 -0
- package/README.md +543 -3
- package/README.public.md +523 -0
- package/dist/cli.js +362 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/activate.js +69 -0
- package/dist/commands/activate.js.map +1 -0
- package/dist/commands/audit-secrets.js +103 -0
- package/dist/commands/audit-secrets.js.map +1 -0
- package/dist/commands/blame.js +35 -0
- package/dist/commands/blame.js.map +1 -0
- package/dist/commands/config-verification.js +18 -0
- package/dist/commands/config-verification.js.map +1 -0
- package/dist/commands/context.js +144 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/correlate.js +70 -0
- package/dist/commands/correlate.js.map +1 -0
- package/dist/commands/digest.js +78 -0
- package/dist/commands/digest.js.map +1 -0
- package/dist/commands/health.js +62 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/index.js +247 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/install-extension.js +138 -0
- package/dist/commands/install-extension.js.map +1 -0
- package/dist/commands/installs.js +128 -0
- package/dist/commands/installs.js.map +1 -0
- package/dist/commands/license.js +39 -0
- package/dist/commands/license.js.map +1 -0
- package/dist/commands/list.js +47 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/mcp.js +29 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/open.js +28 -0
- package/dist/commands/open.js.map +1 -0
- package/dist/commands/paste.js +154 -0
- package/dist/commands/paste.js.map +1 -0
- package/dist/commands/projects.js +36 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/search.js +67 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/semantic.js +173 -0
- package/dist/commands/semantic.js.map +1 -0
- package/dist/commands/show.js +121 -0
- package/dist/commands/show.js.map +1 -0
- package/dist/commands/start.js +47 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/stats.js +133 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/status.js +45 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.js +29 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands/thread.js +396 -0
- package/dist/commands/thread.js.map +1 -0
- package/dist/context/formatter.js +103 -0
- package/dist/context/formatter.js.map +1 -0
- package/dist/daemon/auto-tag-config.js +103 -0
- package/dist/daemon/auto-tag-config.js.map +1 -0
- package/dist/daemon/auto-tag-config.test.js +72 -0
- package/dist/daemon/auto-tag-config.test.js.map +1 -0
- package/dist/daemon/auto-title-config.js +70 -0
- package/dist/daemon/auto-title-config.js.map +1 -0
- package/dist/daemon/bulk-title-jobs.js +170 -0
- package/dist/daemon/bulk-title-jobs.js.map +1 -0
- package/dist/daemon/correlator.js +320 -0
- package/dist/daemon/correlator.js.map +1 -0
- package/dist/daemon/discover.js +316 -0
- package/dist/daemon/discover.js.map +1 -0
- package/dist/daemon/editor-detection.js +186 -0
- package/dist/daemon/editor-detection.js.map +1 -0
- package/dist/daemon/entrypoint.js +55 -0
- package/dist/daemon/entrypoint.js.map +1 -0
- package/dist/daemon/git-correlator.js +256 -0
- package/dist/daemon/git-correlator.js.map +1 -0
- package/dist/daemon/mcp-installer.js +108 -0
- package/dist/daemon/mcp-installer.js.map +1 -0
- package/dist/daemon/onboarding-state.js +140 -0
- package/dist/daemon/onboarding-state.js.map +1 -0
- package/dist/daemon/pidfile.js +57 -0
- package/dist/daemon/pidfile.js.map +1 -0
- package/dist/daemon/ports.js +48 -0
- package/dist/daemon/ports.js.map +1 -0
- package/dist/daemon/scanProgressRegistry.js +62 -0
- package/dist/daemon/scanProgressRegistry.js.map +1 -0
- package/dist/daemon/server.js +2010 -0
- package/dist/daemon/server.js.map +1 -0
- package/dist/daemon/tag-scanner/anthropic-client.js +40 -0
- package/dist/daemon/tag-scanner/anthropic-client.js.map +1 -0
- package/dist/daemon/tag-scanner/autopilot.js +131 -0
- package/dist/daemon/tag-scanner/autopilot.js.map +1 -0
- package/dist/daemon/tag-scanner/claude-cli-driver.js +250 -0
- package/dist/daemon/tag-scanner/claude-cli-driver.js.map +1 -0
- package/dist/daemon/tag-scanner/orchestrator.js +88 -0
- package/dist/daemon/tag-scanner/orchestrator.js.map +1 -0
- package/dist/daemon/tag-scanner/prompt.js +46 -0
- package/dist/daemon/tag-scanner/prompt.js.map +1 -0
- package/dist/daemon/tag-scanner/prompt.test.js +48 -0
- package/dist/daemon/tag-scanner/prompt.test.js.map +1 -0
- package/dist/daemon/tag-scanner/scan-state.js +49 -0
- package/dist/daemon/tag-scanner/scan-state.js.map +1 -0
- package/dist/daemon/tag-scanner/session-fetcher.js +82 -0
- package/dist/daemon/tag-scanner/session-fetcher.js.map +1 -0
- package/dist/daemon/tag-scanner/session-fetcher.test.js +34 -0
- package/dist/daemon/tag-scanner/session-fetcher.test.js.map +1 -0
- package/dist/daemon/tag-scanner/validator.js +50 -0
- package/dist/daemon/tag-scanner/validator.js.map +1 -0
- package/dist/daemon/tag-scanner/validator.test.js +41 -0
- package/dist/daemon/tag-scanner/validator.test.js.map +1 -0
- package/dist/daemon/terminal-registry.js +443 -0
- package/dist/daemon/terminal-registry.js.map +1 -0
- package/dist/daemon/ui.js +64 -0
- package/dist/daemon/ui.js.map +1 -0
- package/dist/daemon/watcher.js +256 -0
- package/dist/daemon/watcher.js.map +1 -0
- package/dist/db/client.js +22 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/schema.js +496 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/license/api-base.js +13 -0
- package/dist/license/api-base.js.map +1 -0
- package/dist/license/manager.js +43 -0
- package/dist/license/manager.js.map +1 -0
- package/dist/license/public-key.js +19 -0
- package/dist/license/public-key.js.map +1 -0
- package/dist/license/storage.js +27 -0
- package/dist/license/storage.js.map +1 -0
- package/dist/license/verify.js +23 -0
- package/dist/license/verify.js.map +1 -0
- package/dist/mcp/audit.js +126 -0
- package/dist/mcp/audit.js.map +1 -0
- package/dist/mcp/prompts.js +180 -0
- package/dist/mcp/prompts.js.map +1 -0
- package/dist/mcp/server.js +502 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/thread-tools.js +363 -0
- package/dist/mcp/thread-tools.js.map +1 -0
- package/dist/mcp/write-tools.js +239 -0
- package/dist/mcp/write-tools.js.map +1 -0
- package/dist/parser/jsonl.js +150 -0
- package/dist/parser/jsonl.js.map +1 -0
- package/dist/semantic/chunker.js +47 -0
- package/dist/semantic/chunker.js.map +1 -0
- package/dist/semantic/config.js +74 -0
- package/dist/semantic/config.js.map +1 -0
- package/dist/semantic/embedder.js +54 -0
- package/dist/semantic/embedder.js.map +1 -0
- package/dist/semantic/fusion.js +38 -0
- package/dist/semantic/fusion.js.map +1 -0
- package/dist/semantic/model-download.js +69 -0
- package/dist/semantic/model-download.js.map +1 -0
- package/dist/semantic/pipeline.js +375 -0
- package/dist/semantic/pipeline.js.map +1 -0
- package/dist/semantic/query.js +42 -0
- package/dist/semantic/query.js.map +1 -0
- package/dist/semantic/worker.js +78 -0
- package/dist/semantic/worker.js.map +1 -0
- package/dist/stats/backfill.js +151 -0
- package/dist/stats/backfill.js.map +1 -0
- package/dist/stats/health.js +102 -0
- package/dist/stats/health.js.map +1 -0
- package/dist/stats/query.js +385 -0
- package/dist/stats/query.js.map +1 -0
- package/dist/utils/aliases.js +107 -0
- package/dist/utils/aliases.js.map +1 -0
- package/dist/utils/autoCollections.js +635 -0
- package/dist/utils/autoCollections.js.map +1 -0
- package/dist/utils/autoTitle.js +348 -0
- package/dist/utils/autoTitle.js.map +1 -0
- package/dist/utils/collections.js +446 -0
- package/dist/utils/collections.js.map +1 -0
- package/dist/utils/format.js +46 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/notes.js +270 -0
- package/dist/utils/notes.js.map +1 -0
- package/dist/utils/paths.js +50 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/pricing.js +257 -0
- package/dist/utils/pricing.js.map +1 -0
- package/dist/utils/secret-scanner.js +166 -0
- package/dist/utils/secret-scanner.js.map +1 -0
- package/dist/utils/sessionLabel.js +64 -0
- package/dist/utils/sessionLabel.js.map +1 -0
- package/dist/utils/tags.js +97 -0
- package/dist/utils/tags.js.map +1 -0
- package/dist/utils/thread-context.js +129 -0
- package/dist/utils/thread-context.js.map +1 -0
- package/dist/utils/threadFilter.js +18 -0
- package/dist/utils/threadFilter.js.map +1 -0
- package/dist/utils/threads-titler.js +298 -0
- package/dist/utils/threads-titler.js.map +1 -0
- package/dist/utils/threads.js +383 -0
- package/dist/utils/threads.js.map +1 -0
- package/dist/utils/usage.js +76 -0
- package/dist/utils/usage.js.map +1 -0
- package/dist/verification/compute.js +88 -0
- package/dist/verification/compute.js.map +1 -0
- package/dist/verification/config.js +34 -0
- package/dist/verification/config.js.map +1 -0
- package/dist/web/assets/index-CIr6J4Fw.js +1201 -0
- package/dist/web/assets/index-Ctc8g9Jw.css +1 -0
- package/dist/web/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
- package/dist/web/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
- package/dist/web/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
- package/dist/web/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
- package/dist/web/assets/inter-cyrillic-600-normal-4D_pXhcN.woff +0 -0
- package/dist/web/assets/inter-cyrillic-600-normal-CWCymEST.woff2 +0 -0
- package/dist/web/assets/inter-cyrillic-700-normal-CjBOestx.woff2 +0 -0
- package/dist/web/assets/inter-cyrillic-700-normal-DrXBdSj3.woff +0 -0
- package/dist/web/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
- package/dist/web/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
- package/dist/web/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
- package/dist/web/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
- package/dist/web/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff +0 -0
- package/dist/web/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 +0 -0
- package/dist/web/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2 +0 -0
- package/dist/web/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff +0 -0
- package/dist/web/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
- package/dist/web/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
- package/dist/web/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
- package/dist/web/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
- package/dist/web/assets/inter-greek-600-normal-BZpKdvQh.woff +0 -0
- package/dist/web/assets/inter-greek-600-normal-plRanbMR.woff2 +0 -0
- package/dist/web/assets/inter-greek-700-normal-BUv2fZ6O.woff +0 -0
- package/dist/web/assets/inter-greek-700-normal-C3JjAnD8.woff2 +0 -0
- package/dist/web/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
- package/dist/web/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
- package/dist/web/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
- package/dist/web/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
- package/dist/web/assets/inter-greek-ext-600-normal-B8X0CLgF.woff +0 -0
- package/dist/web/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 +0 -0
- package/dist/web/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff +0 -0
- package/dist/web/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2 +0 -0
- package/dist/web/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
- package/dist/web/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
- package/dist/web/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
- package/dist/web/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
- package/dist/web/assets/inter-latin-600-normal-CiBQ2DWP.woff +0 -0
- package/dist/web/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
- package/dist/web/assets/inter-latin-700-normal-BLAVimhd.woff +0 -0
- package/dist/web/assets/inter-latin-700-normal-Yt3aPRUw.woff2 +0 -0
- package/dist/web/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
- package/dist/web/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
- package/dist/web/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
- package/dist/web/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
- package/dist/web/assets/inter-latin-ext-600-normal-CIVaiw4L.woff +0 -0
- package/dist/web/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 +0 -0
- package/dist/web/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2 +0 -0
- package/dist/web/assets/inter-latin-ext-700-normal-TidjK2hL.woff +0 -0
- package/dist/web/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
- package/dist/web/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
- package/dist/web/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
- package/dist/web/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
- package/dist/web/assets/inter-vietnamese-600-normal-BuLX-rYi.woff +0 -0
- package/dist/web/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
- package/dist/web/assets/inter-vietnamese-700-normal-BZaoP0fm.woff +0 -0
- package/dist/web/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
- package/dist/web/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff +0 -0
- package/dist/web/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
- package/dist/web/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff +0 -0
- package/dist/web/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
- package/dist/web/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
- package/dist/web/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
- package/dist/web/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff +0 -0
- package/dist/web/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
- package/dist/web/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff +0 -0
- package/dist/web/favicon.svg +9 -0
- package/dist/web/index.html +15 -0
- package/package.json +80 -9
- package/bin/cli.js +0 -12
package/README.public.md
ADDED
|
@@ -0,0 +1,523 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="marketing/logos/wordmark-dark.svg">
|
|
5
|
+
<source media="(prefers-color-scheme: light)" srcset="marketing/logos/wordmark-light.svg">
|
|
6
|
+
<img src="marketing/logos/wordmark-dark.svg" alt="Claude Recall" width="400">
|
|
7
|
+
</picture>
|
|
8
|
+
|
|
9
|
+
<br />
|
|
10
|
+
<br />
|
|
11
|
+
|
|
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>
|
|
28
|
+
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<br />
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
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">
|
|
53
|
+
|
|
54
|
+
### Cost Blindness
|
|
55
|
+
|
|
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?
|
|
57
|
+
|
|
58
|
+
You're guessing.
|
|
59
|
+
|
|
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
|
|
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:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# The moat: past session -> new conversation
|
|
87
|
+
recall context abc12345 | claude
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Claude picks up where you left off instead of asking you to explain it again.
|
|
91
|
+
|
|
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.
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
recall search "zod schema"
|
|
109
|
+
recall search "auth #auth-fix"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
</td>
|
|
113
|
+
<td width="50%" valign="top">
|
|
114
|
+
|
|
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.
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
recall context <id> | claude
|
|
120
|
+
recall context <id> --prelude "continue this" | claude
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
</td>
|
|
124
|
+
</tr>
|
|
125
|
+
<tr>
|
|
126
|
+
<td width="50%" valign="top">
|
|
127
|
+
|
|
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.
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
recall stats <id>
|
|
133
|
+
recall stats --project Tools
|
|
134
|
+
recall stats --days 7
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
</td>
|
|
138
|
+
<td width="50%" valign="top">
|
|
139
|
+
|
|
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.
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
recall correlate
|
|
145
|
+
recall blame <sha>
|
|
146
|
+
```
|
|
147
|
+
|
|
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
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
</td>
|
|
162
|
+
<td width="50%" valign="top">
|
|
163
|
+
|
|
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.
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
recall mcp
|
|
169
|
+
recall mcp --allow-writes
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
</td>
|
|
173
|
+
</tr>
|
|
174
|
+
<tr>
|
|
175
|
+
<td width="50%" valign="top">
|
|
176
|
+
|
|
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).
|
|
179
|
+
|
|
180
|
+
</td>
|
|
181
|
+
<td width="50%" valign="top">
|
|
182
|
+
|
|
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
|
|
226
|
+
|
|
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
|
|
241
|
+
```
|
|
242
|
+
|
|
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.
|
|
244
|
+
|
|
245
|
+
### Explore
|
|
246
|
+
|
|
247
|
+
```bash
|
|
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
|
+
```
|
|
254
|
+
|
|
255
|
+
### The Moat
|
|
256
|
+
|
|
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
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### MCP Server
|
|
269
|
+
|
|
270
|
+
Point any MCP client at Recall and the model calls it as native tools:
|
|
271
|
+
|
|
272
|
+
```json
|
|
273
|
+
{
|
|
274
|
+
"mcpServers": {
|
|
275
|
+
"recall": {
|
|
276
|
+
"command": "claude-recall-mcp"
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
<details>
|
|
283
|
+
<summary><strong>Available MCP tools</strong></summary>
|
|
284
|
+
|
|
285
|
+
<br />
|
|
286
|
+
|
|
287
|
+
**Read-only (always available):**
|
|
288
|
+
|
|
289
|
+
| Tool | Purpose |
|
|
290
|
+
|---|---|
|
|
291
|
+
| `list_projects` | Every indexed project |
|
|
292
|
+
| `list_sessions` | Recent sessions, filterable by project / tag / date |
|
|
293
|
+
| `list_tags` | Tag cloud with counts |
|
|
294
|
+
| `search` | Full-text search with `#tag` support |
|
|
295
|
+
| `get_session` | Full transcript (accepts 8+ char id prefix) |
|
|
296
|
+
| `context_for_session` | Condensed markdown export |
|
|
297
|
+
|
|
298
|
+
**Write tools (opt-in via `--allow-writes`):**
|
|
299
|
+
|
|
300
|
+
| Tool | Purpose |
|
|
301
|
+
|---|---|
|
|
302
|
+
| `add_tag` / `remove_tag` | Organize sessions from inside Claude |
|
|
303
|
+
| `set_alias` | Rename a session |
|
|
304
|
+
| `append_note` | Add to a session's markdown note |
|
|
305
|
+
| `create_collection` | Create a new collection |
|
|
306
|
+
| `add_session_to_collection` | Curate memberships |
|
|
307
|
+
|
|
308
|
+
All writes are rate-limited, zod-validated, and audited.
|
|
309
|
+
|
|
310
|
+
</details>
|
|
311
|
+
|
|
312
|
+
<br />
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
<br />
|
|
317
|
+
|
|
318
|
+
## How It Works
|
|
319
|
+
|
|
320
|
+
```
|
|
321
|
+
~/.claude/projects/**/*.jsonl <-- Claude Code's session files (read-only)
|
|
322
|
+
|
|
|
323
|
+
v chokidar file watcher
|
|
324
|
+
~/.recall/db.sqlite <-- indexed database (FTS5 full-text search)
|
|
325
|
+
|
|
|
326
|
+
+-----+-----+
|
|
327
|
+
| |
|
|
328
|
+
CLI HTTP server (Hono, 127.0.0.1 only)
|
|
329
|
+
| |
|
|
330
|
+
recall ... Web UI (React + Tailwind SPA)
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### Data stays local
|
|
334
|
+
|
|
335
|
+
| Path | What |
|
|
336
|
+
|---|---|
|
|
337
|
+
| `~/.recall/db.sqlite` | Indexed database (projects, sessions, messages, FTS5, aliases, notes, tags, collections, semantic summaries, commit links, usage rollups, audit logs) |
|
|
338
|
+
| `~/.recall/aliases.json` | Plain-text mirror of every alias with full edit history |
|
|
339
|
+
| `~/.recall/notes/<session>.md` | One markdown file per session note |
|
|
340
|
+
| `~/.recall/tags.json` | Current tag state + append-only event log |
|
|
341
|
+
| `~/.recall/collections.json` | Current tree state + append-only event log |
|
|
342
|
+
|
|
343
|
+
<br />
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
<br />
|
|
348
|
+
|
|
349
|
+
## Privacy & Security
|
|
350
|
+
|
|
351
|
+
Claude Recall is **local-first by design**, not as an afterthought.
|
|
352
|
+
|
|
353
|
+
- The daemon binds to **`127.0.0.1` only**. Never `0.0.0.0`, never a public interface.
|
|
354
|
+
- **No telemetry.** No analytics. No outbound network calls. The only exception is a one-time license check when you activate a Pro key.
|
|
355
|
+
- **No cloud. No account.** Your data lives at `~/.recall/` and nowhere else.
|
|
356
|
+
- **Source sessions are never modified.** Claude Code's JSONL files at `~/.claude/projects/` are strictly read-only to Recall.
|
|
357
|
+
- **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.
|
|
358
|
+
|
|
359
|
+
<br />
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
<br />
|
|
364
|
+
|
|
365
|
+
## Full CLI Reference
|
|
366
|
+
|
|
367
|
+
<details>
|
|
368
|
+
<summary><strong>Click to expand</strong></summary>
|
|
369
|
+
|
|
370
|
+
<br />
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
# Lifecycle
|
|
374
|
+
recall start # start daemon (watcher + local HTTP)
|
|
375
|
+
recall stop # stop daemon
|
|
376
|
+
recall open # open web UI (starts daemon if needed)
|
|
377
|
+
recall status # db + daemon health
|
|
378
|
+
|
|
379
|
+
# Indexing
|
|
380
|
+
recall index # scan for new/changed session files
|
|
381
|
+
recall index --force # reindex everything
|
|
382
|
+
|
|
383
|
+
# Explore
|
|
384
|
+
recall projects # list projects with session counts
|
|
385
|
+
recall list # 30 most-recent sessions
|
|
386
|
+
recall list -p Tools # filter by project substring
|
|
387
|
+
recall list -n 100 # higher limit
|
|
388
|
+
|
|
389
|
+
# Read
|
|
390
|
+
recall show <id> # pretty transcript, auto-paged
|
|
391
|
+
recall show <id> --raw # raw JSONL
|
|
392
|
+
recall show <id> --no-pager
|
|
393
|
+
|
|
394
|
+
# Search
|
|
395
|
+
recall search "zod schema"
|
|
396
|
+
recall search "auth" -p Pest-Control
|
|
397
|
+
recall search bug -n 50
|
|
398
|
+
|
|
399
|
+
# Context re-injection
|
|
400
|
+
recall context <id> # condensed markdown
|
|
401
|
+
recall context <id> | pbcopy # to clipboard (macOS)
|
|
402
|
+
recall context <id> | claude # into new Claude session
|
|
403
|
+
recall context <id> --full # full transcript
|
|
404
|
+
recall context <id> --since 2h # last 2 hours only
|
|
405
|
+
recall context <id> --prelude "continue this" # prepend instruction
|
|
406
|
+
recall context <id> --subagents # include subagent messages
|
|
407
|
+
|
|
408
|
+
# Stats
|
|
409
|
+
recall stats <id> # tokens + dollars for one session
|
|
410
|
+
recall stats --project Tools # per-project rollup
|
|
411
|
+
recall stats --days 7 # 7-day overview
|
|
412
|
+
recall stats --backfill # one-shot usage backfill
|
|
413
|
+
|
|
414
|
+
# Git correlation
|
|
415
|
+
recall correlate # link sessions to commits
|
|
416
|
+
recall blame <sha> # commit -> session reverse lookup
|
|
417
|
+
|
|
418
|
+
# Semantic search
|
|
419
|
+
recall semantic on # enable conceptual search
|
|
420
|
+
recall semantic status # backfill progress
|
|
421
|
+
recall semantic backfill # run now
|
|
422
|
+
|
|
423
|
+
# MCP server
|
|
424
|
+
recall mcp # stdio, read-only
|
|
425
|
+
recall mcp --allow-writes # opt-in write tools
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
</details>
|
|
429
|
+
|
|
430
|
+
<br />
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
|
|
434
|
+
<br />
|
|
435
|
+
|
|
436
|
+
## Tech Stack
|
|
437
|
+
|
|
438
|
+
| Layer | Technology |
|
|
439
|
+
|---|---|
|
|
440
|
+
| CLI + daemon | TypeScript 5 (strict), Node 22+, ESM |
|
|
441
|
+
| HTTP server | Hono + @hono/node-server |
|
|
442
|
+
| Database | better-sqlite3 with FTS5 full-text search |
|
|
443
|
+
| File watcher | chokidar |
|
|
444
|
+
| CLI parsing | commander |
|
|
445
|
+
| MCP server | @modelcontextprotocol/sdk (stdio) |
|
|
446
|
+
| Validation | zod |
|
|
447
|
+
| Web UI | Vite 8 + React 19 + Tailwind CSS |
|
|
448
|
+
| Data fetching | @tanstack/react-query |
|
|
449
|
+
| Virtualization | @tanstack/react-virtual |
|
|
450
|
+
| Markdown | marked + highlight.js + DOMPurify |
|
|
451
|
+
|
|
452
|
+
<br />
|
|
453
|
+
|
|
454
|
+
---
|
|
455
|
+
|
|
456
|
+
<br />
|
|
457
|
+
|
|
458
|
+
## Pricing
|
|
459
|
+
|
|
460
|
+
| | Free | Pro |
|
|
461
|
+
|---|---|---|
|
|
462
|
+
| **Search** | Unlimited | Unlimited |
|
|
463
|
+
| **Context re-injection** | Unlimited | Unlimited |
|
|
464
|
+
| **Sessions indexed** | Unlimited | Unlimited |
|
|
465
|
+
| **Cost analytics** | Unlimited | Unlimited |
|
|
466
|
+
| **Git correlation** | Unlimited | Unlimited |
|
|
467
|
+
| **MCP server** | Read-only | Read + Write |
|
|
468
|
+
| **Semantic search** | -- | Included |
|
|
469
|
+
| **Auto-tagging** | -- | Included |
|
|
470
|
+
| **Price** | $0 | **$29.69 one-time** |
|
|
471
|
+
|
|
472
|
+
No subscriptions. No recurring fees. Pay once, own it forever.
|
|
473
|
+
|
|
474
|
+
<br />
|
|
475
|
+
|
|
476
|
+
---
|
|
477
|
+
|
|
478
|
+
<br />
|
|
479
|
+
|
|
480
|
+
## Roadmap
|
|
481
|
+
|
|
482
|
+
- [x] CLI, daemon, web UI, full-text search
|
|
483
|
+
- [x] Context re-injection (the moat)
|
|
484
|
+
- [x] Aliases, notes, tags, pins
|
|
485
|
+
- [x] Cross-session diff
|
|
486
|
+
- [x] VS Code / Cursor / Windsurf extension
|
|
487
|
+
- [x] MCP server (read-only)
|
|
488
|
+
- [x] Collections (hierarchical, cross-project)
|
|
489
|
+
- [x] Auto-tagging
|
|
490
|
+
- [x] Cost / token analytics
|
|
491
|
+
- [x] Git correlation
|
|
492
|
+
- [x] Semantic search
|
|
493
|
+
- [x] Cmd+K command palette
|
|
494
|
+
- [x] Bidirectional MCP write tools
|
|
495
|
+
- [x] First-run onboarding
|
|
496
|
+
- [ ] Public launch at clauderecall.com
|
|
497
|
+
- [ ] Team features
|
|
498
|
+
|
|
499
|
+
<br />
|
|
500
|
+
|
|
501
|
+
---
|
|
502
|
+
|
|
503
|
+
<br />
|
|
504
|
+
|
|
505
|
+
<div align="center">
|
|
506
|
+
|
|
507
|
+
<picture>
|
|
508
|
+
<source media="(prefers-color-scheme: dark)" srcset="marketing/logos/mark-scrollback-dark.svg">
|
|
509
|
+
<img src="marketing/logos/mark-scrollback-dark.svg" alt="Claude Recall" width="48">
|
|
510
|
+
</picture>
|
|
511
|
+
|
|
512
|
+
<br />
|
|
513
|
+
<br />
|
|
514
|
+
|
|
515
|
+
**Claude Recall** -- the memory layer for the agent you're steering.
|
|
516
|
+
|
|
517
|
+
[Website](https://clauderecall.com) · [Install](https://www.npmjs.com/package/@clauderecallhq/cli) · [Issues](https://github.com/citizencapet/claude-recall/issues)
|
|
518
|
+
|
|
519
|
+
<br />
|
|
520
|
+
|
|
521
|
+
<sub>Built by <a href="https://github.com/citizencapet">@citizencapet</a></sub>
|
|
522
|
+
|
|
523
|
+
</div>
|