@contextmirror/claude-memory 0.4.2 โ 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/dist/__tests__/codeSearch.test.d.ts +1 -0
- package/dist/__tests__/codeSearch.test.js +65 -0
- package/dist/__tests__/license.test.d.ts +1 -0
- package/dist/__tests__/license.test.js +28 -0
- package/dist/__tests__/stalenessDetector.test.d.ts +1 -0
- package/dist/__tests__/stalenessDetector.test.js +60 -0
- package/dist/__tests__/updateChecker.test.d.ts +1 -0
- package/dist/__tests__/updateChecker.test.js +43 -0
- package/dist/cli.js +9 -2
- package/dist/constants.d.ts +25 -0
- package/dist/constants.js +53 -0
- package/dist/license/index.d.ts +7 -3
- package/dist/license/index.js +73 -15
- package/dist/mcp/server.js +25 -18
- package/dist/utils/codeSearch.d.ts +32 -0
- package/dist/utils/codeSearch.js +187 -0
- package/package.json +20 -1
- package/landing/index.html +0 -764
package/landing/index.html
DELETED
|
@@ -1,764 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Claude Memory - Cross-project memory for Claude Code</title>
|
|
7
|
-
<meta name="description" content="Cross-project memory for Claude Code. Know about ALL your projects, not just the one you're in. No more cold starts.">
|
|
8
|
-
|
|
9
|
-
<style>
|
|
10
|
-
:root {
|
|
11
|
-
--bg: #09090b;
|
|
12
|
-
--text: #fafafa;
|
|
13
|
-
--text-secondary: #a1a1aa;
|
|
14
|
-
--accent: #8b5cf6;
|
|
15
|
-
--accent-light: #a78bfa;
|
|
16
|
-
--accent-glow: rgba(139, 92, 246, 0.15);
|
|
17
|
-
--muted: #71717a;
|
|
18
|
-
--card-bg: #18181b;
|
|
19
|
-
--border: #27272a;
|
|
20
|
-
--green: #22c55e;
|
|
21
|
-
--green-dim: #16a34a;
|
|
22
|
-
--red: #ef4444;
|
|
23
|
-
--yellow: #facc15;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
* {
|
|
27
|
-
margin: 0;
|
|
28
|
-
padding: 0;
|
|
29
|
-
box-sizing: border-box;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
body {
|
|
33
|
-
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
34
|
-
background: var(--bg);
|
|
35
|
-
color: var(--text);
|
|
36
|
-
line-height: 1.6;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.container {
|
|
40
|
-
max-width: 1000px;
|
|
41
|
-
margin: 0 auto;
|
|
42
|
-
padding: 0 24px;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/* Header */
|
|
46
|
-
header {
|
|
47
|
-
padding: 20px 0;
|
|
48
|
-
border-bottom: 1px solid var(--border);
|
|
49
|
-
background: rgba(9, 9, 11, 0.8);
|
|
50
|
-
backdrop-filter: blur(12px);
|
|
51
|
-
position: sticky;
|
|
52
|
-
top: 0;
|
|
53
|
-
z-index: 100;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.header-inner {
|
|
57
|
-
display: flex;
|
|
58
|
-
justify-content: space-between;
|
|
59
|
-
align-items: center;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.logo {
|
|
63
|
-
font-size: 18px;
|
|
64
|
-
font-weight: 600;
|
|
65
|
-
display: flex;
|
|
66
|
-
align-items: center;
|
|
67
|
-
gap: 10px;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.logo-icon {
|
|
71
|
-
font-size: 22px;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.header-cta {
|
|
75
|
-
background: var(--accent);
|
|
76
|
-
color: white;
|
|
77
|
-
padding: 8px 16px;
|
|
78
|
-
border-radius: 6px;
|
|
79
|
-
text-decoration: none;
|
|
80
|
-
font-size: 14px;
|
|
81
|
-
font-weight: 500;
|
|
82
|
-
transition: all 0.2s;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.header-cta:hover {
|
|
86
|
-
background: var(--accent-light);
|
|
87
|
-
transform: translateY(-1px);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/* Hero */
|
|
91
|
-
.hero {
|
|
92
|
-
padding: 100px 0 80px;
|
|
93
|
-
text-align: center;
|
|
94
|
-
position: relative;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.hero::before {
|
|
98
|
-
content: "";
|
|
99
|
-
position: absolute;
|
|
100
|
-
top: 0;
|
|
101
|
-
left: 50%;
|
|
102
|
-
transform: translateX(-50%);
|
|
103
|
-
width: 600px;
|
|
104
|
-
height: 400px;
|
|
105
|
-
background: radial-gradient(ellipse, var(--accent-glow) 0%, transparent 70%);
|
|
106
|
-
pointer-events: none;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.badge {
|
|
110
|
-
display: inline-block;
|
|
111
|
-
background: var(--accent-glow);
|
|
112
|
-
border: 1px solid var(--accent);
|
|
113
|
-
color: var(--accent-light);
|
|
114
|
-
padding: 6px 14px;
|
|
115
|
-
border-radius: 20px;
|
|
116
|
-
font-size: 13px;
|
|
117
|
-
font-weight: 500;
|
|
118
|
-
margin-bottom: 24px;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
.hero h1 {
|
|
122
|
-
font-size: 56px;
|
|
123
|
-
font-weight: 700;
|
|
124
|
-
margin-bottom: 20px;
|
|
125
|
-
letter-spacing: -0.02em;
|
|
126
|
-
background: linear-gradient(180deg, #fff 0%, #a1a1aa 100%);
|
|
127
|
-
-webkit-background-clip: text;
|
|
128
|
-
-webkit-text-fill-color: transparent;
|
|
129
|
-
background-clip: text;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
.hero .subtitle {
|
|
133
|
-
font-size: 20px;
|
|
134
|
-
color: var(--text-secondary);
|
|
135
|
-
margin-bottom: 48px;
|
|
136
|
-
max-width: 600px;
|
|
137
|
-
margin-left: auto;
|
|
138
|
-
margin-right: auto;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
.hero .highlight {
|
|
142
|
-
color: var(--accent-light);
|
|
143
|
-
font-weight: 500;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/* Visual Diagram - Simplified */
|
|
147
|
-
.sync-visual {
|
|
148
|
-
display: flex;
|
|
149
|
-
justify-content: center;
|
|
150
|
-
align-items: center;
|
|
151
|
-
gap: 20px;
|
|
152
|
-
margin-bottom: 48px;
|
|
153
|
-
flex-wrap: wrap;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.sync-node {
|
|
157
|
-
background: var(--card-bg);
|
|
158
|
-
border: 1px solid var(--border);
|
|
159
|
-
border-radius: 12px;
|
|
160
|
-
padding: 20px 28px;
|
|
161
|
-
text-align: center;
|
|
162
|
-
min-width: 140px;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
.sync-node .icon {
|
|
166
|
-
font-size: 28px;
|
|
167
|
-
margin-bottom: 8px;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
.sync-node .label {
|
|
171
|
-
font-weight: 600;
|
|
172
|
-
font-size: 14px;
|
|
173
|
-
margin-bottom: 4px;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
.sync-node .sublabel {
|
|
177
|
-
font-size: 12px;
|
|
178
|
-
color: var(--muted);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
.sync-arrow {
|
|
182
|
-
color: var(--green);
|
|
183
|
-
font-size: 24px;
|
|
184
|
-
font-weight: bold;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
.sync-center {
|
|
188
|
-
background: linear-gradient(135deg, var(--accent-glow), rgba(34, 197, 94, 0.1));
|
|
189
|
-
border: 1px solid var(--green);
|
|
190
|
-
padding: 16px 24px;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
.sync-center .icon {
|
|
194
|
-
color: var(--green);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
.sync-center .label {
|
|
198
|
-
color: var(--green);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/* Install box */
|
|
202
|
-
.install-box {
|
|
203
|
-
background: var(--card-bg);
|
|
204
|
-
border: 1px solid var(--border);
|
|
205
|
-
border-radius: 12px;
|
|
206
|
-
padding: 28px;
|
|
207
|
-
max-width: 480px;
|
|
208
|
-
margin: 0 auto;
|
|
209
|
-
text-align: center;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
.install-box code {
|
|
213
|
-
display: block;
|
|
214
|
-
font-family: 'JetBrains Mono', 'SF Mono', 'Fira Code', monospace;
|
|
215
|
-
font-size: 14px;
|
|
216
|
-
color: var(--accent-light);
|
|
217
|
-
background: var(--bg);
|
|
218
|
-
padding: 12px 16px;
|
|
219
|
-
border-radius: 8px;
|
|
220
|
-
margin-bottom: 12px;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
.install-box .note {
|
|
224
|
-
font-size: 13px;
|
|
225
|
-
color: var(--muted);
|
|
226
|
-
margin-top: 16px;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/* Problem/Solution */
|
|
230
|
-
.problem-solution {
|
|
231
|
-
display: grid;
|
|
232
|
-
grid-template-columns: 1fr 1fr;
|
|
233
|
-
gap: 24px;
|
|
234
|
-
padding: 80px 0;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
.comparison-card {
|
|
238
|
-
background: var(--card-bg);
|
|
239
|
-
border-radius: 16px;
|
|
240
|
-
padding: 28px;
|
|
241
|
-
border: 2px solid var(--border);
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
.comparison-card.problem {
|
|
245
|
-
border-color: rgba(239, 68, 68, 0.3);
|
|
246
|
-
background: linear-gradient(180deg, rgba(239, 68, 68, 0.05) 0%, var(--card-bg) 100%);
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
.comparison-card.solution {
|
|
250
|
-
border-color: rgba(34, 197, 94, 0.3);
|
|
251
|
-
background: linear-gradient(180deg, rgba(34, 197, 94, 0.05) 0%, var(--card-bg) 100%);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
.comparison-card h3 {
|
|
255
|
-
font-size: 18px;
|
|
256
|
-
margin-bottom: 20px;
|
|
257
|
-
display: flex;
|
|
258
|
-
align-items: center;
|
|
259
|
-
gap: 10px;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
.comparison-card.problem h3 {
|
|
263
|
-
color: var(--red);
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
.comparison-card.solution h3 {
|
|
267
|
-
color: var(--green);
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
.comparison-card ul {
|
|
271
|
-
list-style: none;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
.comparison-card li {
|
|
275
|
-
padding: 10px 0;
|
|
276
|
-
color: var(--text-secondary);
|
|
277
|
-
padding-left: 28px;
|
|
278
|
-
position: relative;
|
|
279
|
-
font-size: 15px;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
.comparison-card.problem li::before {
|
|
283
|
-
content: "โ";
|
|
284
|
-
position: absolute;
|
|
285
|
-
left: 0;
|
|
286
|
-
color: var(--red);
|
|
287
|
-
font-weight: bold;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
.comparison-card.solution li::before {
|
|
291
|
-
content: "โ";
|
|
292
|
-
position: absolute;
|
|
293
|
-
left: 0;
|
|
294
|
-
color: var(--green);
|
|
295
|
-
font-weight: bold;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
/* Features */
|
|
299
|
-
.features {
|
|
300
|
-
padding: 80px 0;
|
|
301
|
-
border-top: 1px solid var(--border);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
.section-header {
|
|
305
|
-
text-align: center;
|
|
306
|
-
margin-bottom: 56px;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
.section-header h2 {
|
|
310
|
-
font-size: 36px;
|
|
311
|
-
margin-bottom: 12px;
|
|
312
|
-
font-weight: 700;
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
.section-header p {
|
|
316
|
-
color: var(--text-secondary);
|
|
317
|
-
font-size: 18px;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
.feature-grid {
|
|
321
|
-
display: grid;
|
|
322
|
-
grid-template-columns: repeat(2, 1fr);
|
|
323
|
-
gap: 20px;
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
.feature-card {
|
|
327
|
-
background: var(--card-bg);
|
|
328
|
-
border: 1px solid var(--border);
|
|
329
|
-
border-radius: 12px;
|
|
330
|
-
padding: 28px;
|
|
331
|
-
transition: all 0.2s;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
.feature-card:hover {
|
|
335
|
-
border-color: var(--accent);
|
|
336
|
-
transform: translateY(-2px);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
.feature-card .icon {
|
|
340
|
-
font-size: 32px;
|
|
341
|
-
margin-bottom: 16px;
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
.feature-card h3 {
|
|
345
|
-
font-size: 18px;
|
|
346
|
-
margin-bottom: 10px;
|
|
347
|
-
font-weight: 600;
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
.feature-card p {
|
|
351
|
-
color: var(--text-secondary);
|
|
352
|
-
font-size: 14px;
|
|
353
|
-
line-height: 1.7;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
.feature-card.pro {
|
|
357
|
-
border-color: var(--accent);
|
|
358
|
-
background: linear-gradient(180deg, var(--accent-glow) 0%, var(--card-bg) 100%);
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
.feature-card .pro-badge {
|
|
362
|
-
display: inline-block;
|
|
363
|
-
background: var(--accent);
|
|
364
|
-
color: white;
|
|
365
|
-
font-size: 10px;
|
|
366
|
-
font-weight: 600;
|
|
367
|
-
padding: 3px 8px;
|
|
368
|
-
border-radius: 4px;
|
|
369
|
-
margin-left: 8px;
|
|
370
|
-
vertical-align: middle;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
/* Use Cases */
|
|
374
|
-
.use-cases {
|
|
375
|
-
padding: 80px 0;
|
|
376
|
-
border-top: 1px solid var(--border);
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
.use-case {
|
|
380
|
-
background: var(--card-bg);
|
|
381
|
-
border: 1px solid var(--border);
|
|
382
|
-
border-radius: 12px;
|
|
383
|
-
padding: 28px;
|
|
384
|
-
margin-bottom: 20px;
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
.use-case h3 {
|
|
388
|
-
font-size: 14px;
|
|
389
|
-
color: var(--accent-light);
|
|
390
|
-
margin-bottom: 16px;
|
|
391
|
-
text-transform: uppercase;
|
|
392
|
-
letter-spacing: 0.05em;
|
|
393
|
-
font-weight: 600;
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
.use-case .conversation {
|
|
397
|
-
font-size: 15px;
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
.use-case .user {
|
|
401
|
-
color: var(--text);
|
|
402
|
-
margin-bottom: 12px;
|
|
403
|
-
padding: 12px 16px;
|
|
404
|
-
background: var(--bg);
|
|
405
|
-
border-radius: 8px;
|
|
406
|
-
border-left: 3px solid var(--accent);
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
.use-case .claude {
|
|
410
|
-
color: var(--text-secondary);
|
|
411
|
-
padding: 12px 16px;
|
|
412
|
-
background: rgba(34, 197, 94, 0.05);
|
|
413
|
-
border-radius: 8px;
|
|
414
|
-
border-left: 3px solid var(--green);
|
|
415
|
-
font-style: italic;
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
/* Pricing */
|
|
419
|
-
.pricing {
|
|
420
|
-
padding: 80px 0;
|
|
421
|
-
border-top: 1px solid var(--border);
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
.pricing-grid {
|
|
425
|
-
display: grid;
|
|
426
|
-
grid-template-columns: repeat(2, 1fr);
|
|
427
|
-
gap: 24px;
|
|
428
|
-
max-width: 800px;
|
|
429
|
-
margin: 0 auto;
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
.pricing-card {
|
|
433
|
-
background: var(--card-bg);
|
|
434
|
-
border: 2px solid var(--border);
|
|
435
|
-
border-radius: 16px;
|
|
436
|
-
padding: 36px;
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
.pricing-card.featured {
|
|
440
|
-
border-color: var(--accent);
|
|
441
|
-
position: relative;
|
|
442
|
-
background: linear-gradient(180deg, var(--accent-glow) 0%, var(--card-bg) 50%);
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
.pricing-card.featured::before {
|
|
446
|
-
content: "COMING SOON";
|
|
447
|
-
position: absolute;
|
|
448
|
-
top: -14px;
|
|
449
|
-
left: 50%;
|
|
450
|
-
transform: translateX(-50%);
|
|
451
|
-
background: var(--accent);
|
|
452
|
-
color: white;
|
|
453
|
-
font-size: 11px;
|
|
454
|
-
font-weight: 700;
|
|
455
|
-
padding: 6px 14px;
|
|
456
|
-
border-radius: 20px;
|
|
457
|
-
letter-spacing: 0.05em;
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
.pricing-card h3 {
|
|
461
|
-
font-size: 22px;
|
|
462
|
-
margin-bottom: 8px;
|
|
463
|
-
font-weight: 600;
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
.pricing-card .price {
|
|
467
|
-
font-size: 48px;
|
|
468
|
-
font-weight: 700;
|
|
469
|
-
margin-bottom: 24px;
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
.pricing-card .price span {
|
|
473
|
-
font-size: 16px;
|
|
474
|
-
font-weight: 400;
|
|
475
|
-
color: var(--muted);
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
.pricing-card ul {
|
|
479
|
-
list-style: none;
|
|
480
|
-
margin-bottom: 28px;
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
.pricing-card li {
|
|
484
|
-
padding: 10px 0;
|
|
485
|
-
color: var(--text-secondary);
|
|
486
|
-
display: flex;
|
|
487
|
-
align-items: center;
|
|
488
|
-
gap: 10px;
|
|
489
|
-
font-size: 15px;
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
.pricing-card li::before {
|
|
493
|
-
content: "โ";
|
|
494
|
-
color: var(--green);
|
|
495
|
-
font-weight: bold;
|
|
496
|
-
}
|
|
497
|
-
|
|
498
|
-
.pricing-card li.coming::before {
|
|
499
|
-
content: "โฆ";
|
|
500
|
-
color: var(--yellow);
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
.btn {
|
|
504
|
-
display: inline-block;
|
|
505
|
-
background: var(--accent);
|
|
506
|
-
color: white;
|
|
507
|
-
padding: 14px 28px;
|
|
508
|
-
border-radius: 8px;
|
|
509
|
-
text-decoration: none;
|
|
510
|
-
font-weight: 600;
|
|
511
|
-
text-align: center;
|
|
512
|
-
width: 100%;
|
|
513
|
-
transition: all 0.2s;
|
|
514
|
-
font-size: 15px;
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
.btn:hover {
|
|
518
|
-
background: var(--accent-light);
|
|
519
|
-
transform: translateY(-1px);
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
.btn-outline {
|
|
523
|
-
background: transparent;
|
|
524
|
-
border: 2px solid var(--border);
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
.btn-outline:hover {
|
|
528
|
-
background: var(--card-bg);
|
|
529
|
-
border-color: var(--accent);
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
/* Footer */
|
|
533
|
-
footer {
|
|
534
|
-
padding: 48px 0;
|
|
535
|
-
border-top: 1px solid var(--border);
|
|
536
|
-
text-align: center;
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
footer p {
|
|
540
|
-
color: var(--muted);
|
|
541
|
-
font-size: 14px;
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
footer a {
|
|
545
|
-
color: var(--text-secondary);
|
|
546
|
-
text-decoration: none;
|
|
547
|
-
transition: color 0.2s;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
footer a:hover {
|
|
551
|
-
color: var(--accent-light);
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
footer .tagline {
|
|
555
|
-
margin-top: 12px;
|
|
556
|
-
font-size: 13px;
|
|
557
|
-
color: var(--muted);
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
@media (max-width: 768px) {
|
|
561
|
-
.hero h1 {
|
|
562
|
-
font-size: 36px;
|
|
563
|
-
}
|
|
564
|
-
.hero .subtitle {
|
|
565
|
-
font-size: 16px;
|
|
566
|
-
}
|
|
567
|
-
.problem-solution,
|
|
568
|
-
.feature-grid,
|
|
569
|
-
.pricing-grid {
|
|
570
|
-
grid-template-columns: 1fr;
|
|
571
|
-
}
|
|
572
|
-
.sync-visual {
|
|
573
|
-
flex-direction: column;
|
|
574
|
-
}
|
|
575
|
-
.sync-arrow {
|
|
576
|
-
transform: rotate(90deg);
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
</style>
|
|
580
|
-
</head>
|
|
581
|
-
<body>
|
|
582
|
-
<header>
|
|
583
|
-
<div class="container">
|
|
584
|
-
<div class="header-inner">
|
|
585
|
-
<div class="logo">
|
|
586
|
-
<span class="logo-icon">๐ง </span>
|
|
587
|
-
claude-memory
|
|
588
|
-
</div>
|
|
589
|
-
<a href="https://www.npmjs.com/package/@contextmirror/claude-memory" class="header-cta">Get Started</a>
|
|
590
|
-
</div>
|
|
591
|
-
</div>
|
|
592
|
-
</header>
|
|
593
|
-
|
|
594
|
-
<section class="hero">
|
|
595
|
-
<div class="container">
|
|
596
|
-
<div class="badge">Now available on npm</div>
|
|
597
|
-
<h1>Cross-project memory for Claude Code</h1>
|
|
598
|
-
<p class="subtitle">
|
|
599
|
-
Know about <span class="highlight">ALL your projects</span>, not just the one you're in. No more cold starts. No more re-explaining.
|
|
600
|
-
</p>
|
|
601
|
-
|
|
602
|
-
<div class="sync-visual">
|
|
603
|
-
<div class="sync-node">
|
|
604
|
-
<div class="icon">๐</div>
|
|
605
|
-
<div class="label">Project A</div>
|
|
606
|
-
<div class="sublabel">React App</div>
|
|
607
|
-
</div>
|
|
608
|
-
<div class="sync-arrow">โ</div>
|
|
609
|
-
<div class="sync-node sync-center">
|
|
610
|
-
<div class="icon">๐ง </div>
|
|
611
|
-
<div class="label">Claude Memory</div>
|
|
612
|
-
<div class="sublabel">MCP Server</div>
|
|
613
|
-
</div>
|
|
614
|
-
<div class="sync-arrow">โ</div>
|
|
615
|
-
<div class="sync-node">
|
|
616
|
-
<div class="icon">๐</div>
|
|
617
|
-
<div class="label">Project B</div>
|
|
618
|
-
<div class="sublabel">API Server</div>
|
|
619
|
-
</div>
|
|
620
|
-
</div>
|
|
621
|
-
|
|
622
|
-
<div class="install-box">
|
|
623
|
-
<code>npm install -g @contextmirror/claude-memory</code>
|
|
624
|
-
<code>claude-memory setup</code>
|
|
625
|
-
<p class="note">Works with your existing Claude subscription. No extra API costs.</p>
|
|
626
|
-
</div>
|
|
627
|
-
</div>
|
|
628
|
-
</section>
|
|
629
|
-
|
|
630
|
-
<section class="problem-solution">
|
|
631
|
-
<div class="container" style="display: contents;">
|
|
632
|
-
<div class="comparison-card problem">
|
|
633
|
-
<h3>Without Claude Memory</h3>
|
|
634
|
-
<ul>
|
|
635
|
-
<li>Every Claude session starts cold</li>
|
|
636
|
-
<li>Switch projects = re-explain everything</li>
|
|
637
|
-
<li>Claude doesn't know about your other projects</li>
|
|
638
|
-
<li>CLAUDE.md files are manual and outdated</li>
|
|
639
|
-
<li>No cross-project awareness</li>
|
|
640
|
-
</ul>
|
|
641
|
-
</div>
|
|
642
|
-
<div class="comparison-card solution">
|
|
643
|
-
<h3>With Claude Memory</h3>
|
|
644
|
-
<ul>
|
|
645
|
-
<li>Claude knows all your projects instantly</li>
|
|
646
|
-
<li>Auto-generated, always-current CLAUDE.md</li>
|
|
647
|
-
<li>Ask about any project from any directory</li>
|
|
648
|
-
<li>Cross-project pattern detection</li>
|
|
649
|
-
<li>Search across your entire codebase</li>
|
|
650
|
-
</ul>
|
|
651
|
-
</div>
|
|
652
|
-
</div>
|
|
653
|
-
</section>
|
|
654
|
-
|
|
655
|
-
<section class="features">
|
|
656
|
-
<div class="container">
|
|
657
|
-
<div class="section-header">
|
|
658
|
-
<h2>What you get</h2>
|
|
659
|
-
<p>Everything Claude needs to remember you</p>
|
|
660
|
-
</div>
|
|
661
|
-
<div class="feature-grid">
|
|
662
|
-
<div class="feature-card">
|
|
663
|
-
<div class="icon">๐</div>
|
|
664
|
-
<h3>Project Discovery</h3>
|
|
665
|
-
<p>Automatically scans your projects folder and detects all codebases - Node.js, Python, Rust, Go. Claude knows what you're working on before you tell it.</p>
|
|
666
|
-
</div>
|
|
667
|
-
<div class="feature-card">
|
|
668
|
-
<div class="icon">๐</div>
|
|
669
|
-
<h3>Auto CLAUDE.md</h3>
|
|
670
|
-
<p>Generates comprehensive context files automatically. Project structure, patterns, dependencies, entry points - all analyzed and documented for you.</p>
|
|
671
|
-
</div>
|
|
672
|
-
<div class="feature-card">
|
|
673
|
-
<div class="icon">๐</div>
|
|
674
|
-
<h3>MCP Integration</h3>
|
|
675
|
-
<p>Native Model Context Protocol support. Claude Code queries your project memory in real-time. Ask "what projects do I have?" and get instant answers.</p>
|
|
676
|
-
</div>
|
|
677
|
-
<div class="feature-card pro">
|
|
678
|
-
<div class="icon">๐</div>
|
|
679
|
-
<h3>Cross-Project Search <span class="pro-badge">PRO</span></h3>
|
|
680
|
-
<p>Search across all your projects at once. Find patterns, discover how you solved similar problems before, and get insights across your entire codebase.</p>
|
|
681
|
-
</div>
|
|
682
|
-
</div>
|
|
683
|
-
</div>
|
|
684
|
-
</section>
|
|
685
|
-
|
|
686
|
-
<section class="use-cases">
|
|
687
|
-
<div class="container">
|
|
688
|
-
<div class="section-header">
|
|
689
|
-
<h2>How it works in practice</h2>
|
|
690
|
-
<p>Real scenarios, real productivity gains</p>
|
|
691
|
-
</div>
|
|
692
|
-
|
|
693
|
-
<div class="use-case">
|
|
694
|
-
<h3>Cross-Project Awareness</h3>
|
|
695
|
-
<div class="conversation">
|
|
696
|
-
<div class="user">You: "What other projects do I have that use React?"</div>
|
|
697
|
-
<div class="claude">Claude: "You have 3 React projects: dashboard-app (Next.js), component-library (Storybook), and landing-site (Vite)."</div>
|
|
698
|
-
</div>
|
|
699
|
-
</div>
|
|
700
|
-
|
|
701
|
-
<div class="use-case">
|
|
702
|
-
<h3>Pattern Discovery</h3>
|
|
703
|
-
<div class="conversation">
|
|
704
|
-
<div class="user">You: "How do I handle authentication in my other projects?"</div>
|
|
705
|
-
<div class="claude">Claude: "Your api-server uses JWT with refresh tokens, and your dashboard-app uses the same pattern with HttpOnly cookies."</div>
|
|
706
|
-
</div>
|
|
707
|
-
</div>
|
|
708
|
-
|
|
709
|
-
<div class="use-case">
|
|
710
|
-
<h3>Instant Context</h3>
|
|
711
|
-
<div class="conversation">
|
|
712
|
-
<div class="user">You: "Tell me about the component-library project"</div>
|
|
713
|
-
<div class="claude">Claude: "It's a Storybook-based React component library with 24 components, TypeScript, and CSS modules. Last commit was 3 days ago."</div>
|
|
714
|
-
</div>
|
|
715
|
-
</div>
|
|
716
|
-
</div>
|
|
717
|
-
</section>
|
|
718
|
-
|
|
719
|
-
<section class="pricing">
|
|
720
|
-
<div class="container">
|
|
721
|
-
<div class="section-header">
|
|
722
|
-
<h2>Pricing</h2>
|
|
723
|
-
<p>Start free, upgrade when you need more</p>
|
|
724
|
-
</div>
|
|
725
|
-
<div class="pricing-grid">
|
|
726
|
-
<div class="pricing-card">
|
|
727
|
-
<h3>Free</h3>
|
|
728
|
-
<div class="price">$0</div>
|
|
729
|
-
<ul>
|
|
730
|
-
<li>Unlimited project scanning</li>
|
|
731
|
-
<li>Auto CLAUDE.md generation</li>
|
|
732
|
-
<li>MCP server for Claude Code</li>
|
|
733
|
-
<li>New project auto-detection</li>
|
|
734
|
-
</ul>
|
|
735
|
-
<a href="https://www.npmjs.com/package/@contextmirror/claude-memory" class="btn btn-outline">Install Free</a>
|
|
736
|
-
</div>
|
|
737
|
-
<div class="pricing-card featured">
|
|
738
|
-
<h3>Pro</h3>
|
|
739
|
-
<div class="price">$8 <span>/month</span></div>
|
|
740
|
-
<ul>
|
|
741
|
-
<li>Everything in Free</li>
|
|
742
|
-
<li>Cross-project code search</li>
|
|
743
|
-
<li class="coming">Semantic search</li>
|
|
744
|
-
<li class="coming">Custom CLAUDE.md templates</li>
|
|
745
|
-
<li class="coming">Priority support</li>
|
|
746
|
-
</ul>
|
|
747
|
-
<a href="#" class="btn">Join Waitlist</a>
|
|
748
|
-
</div>
|
|
749
|
-
</div>
|
|
750
|
-
</div>
|
|
751
|
-
</section>
|
|
752
|
-
|
|
753
|
-
<footer>
|
|
754
|
-
<div class="container">
|
|
755
|
-
<p>
|
|
756
|
-
Built by <a href="https://github.com/contextmirror">@contextmirror</a> ยท
|
|
757
|
-
<a href="https://www.npmjs.com/package/@contextmirror/claude-memory">npm</a> ยท
|
|
758
|
-
<a href="https://github.com/contextmirror/claude-memory">GitHub</a>
|
|
759
|
-
</p>
|
|
760
|
-
<p class="tagline">Making Claude better at its job, one memory at a time.</p>
|
|
761
|
-
</div>
|
|
762
|
-
</footer>
|
|
763
|
-
</body>
|
|
764
|
-
</html>
|