memoir-cli 3.2.0 → 3.2.2
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/LAUNCH_POSTS.md +247 -0
- package/MARKETING.md +143 -0
- package/POSTS-READY-TO-GO.md +215 -0
- package/README.md +95 -120
- package/demo.svg +201 -0
- package/landing-page-v2.html +690 -0
- package/mcp-publisher +0 -0
- package/package.json +24 -24
- package/server.json +20 -0
package/README.md
CHANGED
|
@@ -2,52 +2,95 @@
|
|
|
2
2
|
|
|
3
3
|
# memoir
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**Persistent memory for AI coding tools.**
|
|
6
6
|
|
|
7
7
|
[](https://npmjs.org/package/memoir-cli)
|
|
8
8
|
[](https://npmjs.org/package/memoir-cli)
|
|
9
9
|
[](https://opensource.org/licenses/MIT)
|
|
10
10
|
[](https://nodejs.org)
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Your AI forgets everything between sessions. memoir gives it long-term memory via MCP.
|
|
13
|
+
|
|
14
|
+
Works with Claude Code, Cursor, Windsurf, Gemini, and 7 more tools.
|
|
13
15
|
|
|
14
16
|
[Website](https://memoir.sh) • [npm](https://npmjs.org/package/memoir-cli) • [Blog](https://memoir.sh/blog)
|
|
15
17
|
|
|
16
18
|
<br />
|
|
17
19
|
|
|
20
|
+
<img src="demo.svg" alt="memoir demo — push, restore, and sync AI memory" width="700" />
|
|
21
|
+
|
|
18
22
|
</div>
|
|
19
23
|
|
|
20
24
|
## The Problem
|
|
21
25
|
|
|
22
|
-
You
|
|
26
|
+
You told Claude your project uses Zustand, not Redux. You explained your auth middleware to Cursor. You spent weeks building up context across your AI tools.
|
|
23
27
|
|
|
24
|
-
|
|
28
|
+
Next session? **Gone.** New machine? **Gone.** Switch tools? **Gone.**
|
|
25
29
|
|
|
26
|
-
##
|
|
30
|
+
## How memoir fixes it
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
# On your main machine
|
|
30
|
-
memoir push
|
|
32
|
+
memoir is a **persistent memory layer** that runs via [MCP](https://modelcontextprotocol.io) inside your AI tools. Your AI can search, read, and save memories automatically — across sessions, tools, and machines.
|
|
31
33
|
|
|
32
|
-
|
|
34
|
+
```
|
|
35
|
+
you: how does auth work in this project?
|
|
36
|
+
|
|
37
|
+
memoir_recall("auth setup architecture")
|
|
38
|
+
Found 3 memories matching "auth"
|
|
39
|
+
|
|
40
|
+
claude: Based on your previous sessions: this project uses JWT auth
|
|
41
|
+
with refresh tokens, the middleware is in src/middleware/auth.ts,
|
|
42
|
+
and you chose Zustand over Redux for auth state (decided March 12).
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
No re-explaining. memoir remembered.
|
|
46
|
+
|
|
47
|
+
## Quick Start
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Install
|
|
33
51
|
npm install -g memoir-cli
|
|
34
|
-
memoir restore -y
|
|
35
52
|
|
|
36
|
-
#
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
53
|
+
# Setup
|
|
54
|
+
memoir init
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Add MCP to your AI tools
|
|
58
|
+
|
|
59
|
+
**Claude Code** — add to `~/.mcp.json`:
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"mcpServers": {
|
|
63
|
+
"memoir": { "command": "memoir-mcp" }
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Cursor** — add to `.cursor/mcp.json`:
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"mcpServers": {
|
|
72
|
+
"memoir": { "command": "memoir-mcp" }
|
|
73
|
+
}
|
|
74
|
+
}
|
|
41
75
|
```
|
|
42
76
|
|
|
43
|
-
|
|
77
|
+
That's it. Your AI tools now have 6 memory abilities:
|
|
78
|
+
|
|
79
|
+
| MCP Tool | What it does |
|
|
80
|
+
|----------|-------------|
|
|
81
|
+
| `memoir_recall` | Search across all your AI memories |
|
|
82
|
+
| `memoir_remember` | Save context for future sessions |
|
|
83
|
+
| `memoir_list` | Browse all memory files by tool |
|
|
84
|
+
| `memoir_read` | Read a specific memory in full |
|
|
85
|
+
| `memoir_status` | See which AI tools are detected |
|
|
86
|
+
| `memoir_profiles` | Switch between work/personal |
|
|
44
87
|
|
|
45
88
|
## What Gets Synced
|
|
46
89
|
|
|
47
90
|
memoir syncs three layers that no other tool connects:
|
|
48
91
|
|
|
49
|
-
### Layer 1: AI Memory
|
|
50
|
-
|
|
92
|
+
### Layer 1: AI Memory (via MCP + CLI)
|
|
93
|
+
Configs, instructions, and project knowledge across 11 tools — searchable and writable from inside any AI conversation.
|
|
51
94
|
|
|
52
95
|
| Tool | What gets synced |
|
|
53
96
|
|------|-----------------|
|
|
@@ -71,7 +114,7 @@ What you were **doing** — not just what your AI knows, but the active context.
|
|
|
71
114
|
- Injected into your AI on restore so it picks up mid-conversation
|
|
72
115
|
- Secrets auto-redacted (API keys, tokens, passwords stripped before sync)
|
|
73
116
|
|
|
74
|
-
### Layer 3: Workspace
|
|
117
|
+
### Layer 3: Workspace
|
|
75
118
|
Your actual projects — code, files, everything.
|
|
76
119
|
|
|
77
120
|
- **Git projects:** Remote URLs saved, auto-cloned on restore
|
|
@@ -79,76 +122,10 @@ Your actual projects — code, files, everything.
|
|
|
79
122
|
- **Uncommitted work:** Saved as patches, applied after clone
|
|
80
123
|
- **Zero git commands needed** — memoir handles it all
|
|
81
124
|
|
|
82
|
-
```
|
|
83
|
-
memoir push on Mac:
|
|
84
|
-
✔ AI memory backed up
|
|
85
|
-
✔ Session context captured
|
|
86
|
-
✔ Workspace: 44 projects (17 git, 23 bundled)
|
|
87
|
-
🔒 E2E encrypted
|
|
88
|
-
|
|
89
|
-
memoir restore on Windows:
|
|
90
|
-
✔ AI memory restored
|
|
91
|
-
✔ stock-market-book → C:\Users\You\stock-market-book (cloned)
|
|
92
|
-
✔ socialslink → C:\Users\You\socialslink (cloned)
|
|
93
|
-
✔ btc-trader → C:\Users\You\btc-trader (unpacked)
|
|
94
|
-
✔ 41 more projects restored
|
|
95
|
-
📋 Session context injected — Claude picks up where you left off
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## Quick Start
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
# Install
|
|
102
|
-
npm install -g memoir-cli
|
|
103
|
-
|
|
104
|
-
# First-time setup
|
|
105
|
-
memoir init
|
|
106
|
-
|
|
107
|
-
# Back up everything
|
|
108
|
-
memoir push
|
|
109
|
-
|
|
110
|
-
# Restore on any machine
|
|
111
|
-
memoir restore
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## MCP Server (NEW in v3.2)
|
|
115
|
-
|
|
116
|
-
memoir ships an MCP server so your AI tools can search, read, and save memories without leaving the conversation.
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
# Start the server
|
|
120
|
-
memoir mcp
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
**Claude Code** — add to `~/.mcp.json`:
|
|
124
|
-
```json
|
|
125
|
-
{
|
|
126
|
-
"mcpServers": {
|
|
127
|
-
"memoir": { "command": "memoir-mcp" }
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
**Cursor** — add to `.cursor/mcp.json`:
|
|
133
|
-
```json
|
|
134
|
-
{
|
|
135
|
-
"mcpServers": {
|
|
136
|
-
"memoir": { "command": "memoir-mcp" }
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
Your editor gets 6 tools: `memoir_recall` (search all memories), `memoir_remember` (save context), `memoir_list`, `memoir_read`, `memoir_status`, and `memoir_profiles`. Zero cost — runs locally.
|
|
142
|
-
|
|
143
125
|
## Key Features
|
|
144
126
|
|
|
145
|
-
###
|
|
146
|
-
|
|
147
|
-
memoir push # scans all projects, saves git URLs + bundles non-git projects
|
|
148
|
-
memoir restore # auto-clones repos, unpacks bundles, applies uncommitted patches
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
No manual git commands. memoir detects your projects, tracks their remotes, and restores them anywhere.
|
|
127
|
+
### Cross-tool memory
|
|
128
|
+
Tell Claude something once. Cursor knows it too. memoir is the shared memory layer between all your AI tools.
|
|
152
129
|
|
|
153
130
|
### Translate between AI tools
|
|
154
131
|
```bash
|
|
@@ -159,13 +136,17 @@ memoir migrate --from chatgpt --to all
|
|
|
159
136
|
# Translate to every tool at once
|
|
160
137
|
```
|
|
161
138
|
|
|
162
|
-
###
|
|
139
|
+
### Cross-machine sync
|
|
163
140
|
```bash
|
|
164
|
-
#
|
|
165
|
-
memoir
|
|
141
|
+
# On your main machine
|
|
142
|
+
memoir push
|
|
166
143
|
|
|
167
|
-
#
|
|
168
|
-
memoir
|
|
144
|
+
# On any other machine
|
|
145
|
+
memoir restore -y
|
|
146
|
+
# ✔ AI memory restored (Claude, Gemini, Cursor, 11 tools)
|
|
147
|
+
# ✔ 44 projects cloned & unpacked
|
|
148
|
+
# ✔ Uncommitted changes applied
|
|
149
|
+
# ✔ Session context injected — AI picks up mid-conversation
|
|
169
150
|
```
|
|
170
151
|
|
|
171
152
|
### E2E Encryption
|
|
@@ -174,7 +155,7 @@ memoir encrypt # toggle encryption on/off
|
|
|
174
155
|
memoir push # prompted for passphrase, AES-256-GCM encrypted
|
|
175
156
|
```
|
|
176
157
|
|
|
177
|
-
Your backup is encrypted before it leaves your machine.
|
|
158
|
+
Your backup is encrypted before it leaves your machine. Secret scanning auto-redacts API keys, tokens, and passwords.
|
|
178
159
|
|
|
179
160
|
### Profiles (personal / work)
|
|
180
161
|
```bash
|
|
@@ -183,26 +164,15 @@ memoir push --profile work
|
|
|
183
164
|
memoir profile switch personal
|
|
184
165
|
```
|
|
185
166
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
### Cloud sync (Pro)
|
|
167
|
+
### Cloud sync
|
|
189
168
|
```bash
|
|
190
169
|
memoir login
|
|
191
170
|
memoir cloud push # encrypted cloud backup
|
|
192
171
|
memoir cloud restore # restore from any version
|
|
193
|
-
memoir history # view all backup versions
|
|
194
172
|
```
|
|
195
173
|
|
|
196
174
|
### Cross-platform (Mac / Windows / Linux)
|
|
197
|
-
|
|
198
|
-
# Push from Mac
|
|
199
|
-
memoir push
|
|
200
|
-
|
|
201
|
-
# Restore on Windows — paths remap automatically
|
|
202
|
-
memoir restore
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
Claude's memory paths are automatically remapped between platforms. Projects are cloned to the right locations. It just works.
|
|
175
|
+
Paths remap automatically between platforms. Push from Mac, restore on Windows. It just works.
|
|
206
176
|
|
|
207
177
|
## All Commands
|
|
208
178
|
|
|
@@ -211,6 +181,7 @@ Claude's memory paths are automatically remapped between platforms. Projects are
|
|
|
211
181
|
| `memoir init` | Setup wizard — GitHub or local storage |
|
|
212
182
|
| `memoir push` | Back up AI memory + workspace + session |
|
|
213
183
|
| `memoir restore` | Restore everything on a new machine |
|
|
184
|
+
| `memoir mcp` | Start MCP server for editor integration |
|
|
214
185
|
| `memoir status` | Show detected AI tools |
|
|
215
186
|
| `memoir doctor` | Diagnose issues, scan for secrets |
|
|
216
187
|
| `memoir view` | Preview what's in your backup |
|
|
@@ -224,41 +195,44 @@ Claude's memory paths are automatically remapped between platforms. Projects are
|
|
|
224
195
|
| `memoir cloud restore` | Restore from memoir cloud |
|
|
225
196
|
| `memoir history` | View cloud backup versions |
|
|
226
197
|
| `memoir login` | Sign in to memoir cloud |
|
|
227
|
-
| `memoir
|
|
198
|
+
| `memoir share` | Create encrypted shareable link |
|
|
199
|
+
| `memoir upgrade` | View plans and upgrade |
|
|
228
200
|
| `memoir update` | Self-update to latest version |
|
|
229
201
|
|
|
230
202
|
## How memoir compares
|
|
231
203
|
|
|
232
204
|
| Feature | memoir | dotfiles managers | ai-rulez | memories.sh |
|
|
233
205
|
|---------|--------|-------------------|----------|-------------|
|
|
206
|
+
| MCP memory layer | **6 tools** | No | No | No |
|
|
234
207
|
| AI memory sync | **11 tools** | No | 18 tools | 3 tools |
|
|
208
|
+
| Cross-tool recall | **Yes** | No | No | No |
|
|
235
209
|
| Workspace sync | **Yes** | No | No | No |
|
|
236
210
|
| Session handoff | **Yes** | No | No | No |
|
|
237
|
-
| AI-powered
|
|
211
|
+
| AI-powered migration | **Yes** | No | No | No |
|
|
238
212
|
| E2E encryption | **Yes** | No | No | No |
|
|
239
213
|
| Secret scanning | **Yes** | Some | No | No |
|
|
240
214
|
| Cross-platform remap | **Yes** | Some | No | No |
|
|
241
|
-
| Uncommitted work patches | **Yes** | No | No | No |
|
|
242
215
|
| Cloud backup | **Yes** | No | No | Yes ($15/mo) |
|
|
243
216
|
| Profiles | **Yes** | No | No | No |
|
|
244
|
-
| MCP server | **Yes** | No | No | No |
|
|
245
217
|
| Free & open source | **Yes** | Yes | Yes | No |
|
|
246
218
|
|
|
247
219
|
## Common Workflows
|
|
248
220
|
|
|
249
|
-
###
|
|
250
|
-
```
|
|
251
|
-
#
|
|
252
|
-
|
|
221
|
+
### Your AI remembers across sessions
|
|
222
|
+
```
|
|
223
|
+
# Monday — you explain your auth setup to Claude
|
|
224
|
+
# ...Claude calls memoir_remember to save the decision
|
|
253
225
|
|
|
254
|
-
#
|
|
255
|
-
|
|
226
|
+
# Thursday — new conversation
|
|
227
|
+
you: "add a protected route"
|
|
228
|
+
# Claude calls memoir_recall, finds your auth architecture
|
|
229
|
+
# No re-explaining needed
|
|
256
230
|
```
|
|
257
231
|
|
|
258
|
-
###
|
|
232
|
+
### New machine setup
|
|
259
233
|
```bash
|
|
260
|
-
memoir
|
|
261
|
-
|
|
234
|
+
npm install -g memoir-cli && memoir init && memoir restore -y
|
|
235
|
+
# Done. Everything's back.
|
|
262
236
|
```
|
|
263
237
|
|
|
264
238
|
### Switching AI tools
|
|
@@ -284,6 +258,7 @@ memoir restore --profile team
|
|
|
284
258
|
- **Auto-redaction** — secrets stripped from session handoffs before sync
|
|
285
259
|
- **No credentials synced** — .env files, auth tokens, and API keys are never included
|
|
286
260
|
- **Passphrase verified** — wrong passphrase caught before decrypt attempt
|
|
261
|
+
- **Local MCP server** — runs on your machine, no data sent to external services
|
|
287
262
|
|
|
288
263
|
## Requirements
|
|
289
264
|
|
|
@@ -293,7 +268,7 @@ memoir restore --profile team
|
|
|
293
268
|
|
|
294
269
|
## Contributing
|
|
295
270
|
|
|
296
|
-
Contributions welcome — especially new tool adapters and
|
|
271
|
+
Contributions welcome — especially new tool adapters and MCP improvements.
|
|
297
272
|
|
|
298
273
|
1. Fork the repo
|
|
299
274
|
2. Create your branch (`git checkout -b feature/my-feature`)
|
package/demo.svg
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
<svg viewBox="0 0 700 1260" xmlns="http://www.w3.org/2000/svg" width="700" preserveAspectRatio="xMidYMid meet">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
@keyframes fadeIn {
|
|
5
|
+
0% { opacity: 0; }
|
|
6
|
+
5% { opacity: 1; }
|
|
7
|
+
100% { opacity: 1; }
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@keyframes blink {
|
|
11
|
+
0%, 49%, 100% { opacity: 1; }
|
|
12
|
+
50%, 99% { opacity: 0; }
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.terminal-bg { fill: #1e1e2e; }
|
|
16
|
+
|
|
17
|
+
.chrome-bar { fill: #2d2d44; }
|
|
18
|
+
.chrome-dot-red { fill: #ff5f56; }
|
|
19
|
+
.chrome-dot-yellow { fill: #ffbd2e; }
|
|
20
|
+
.chrome-dot-green { fill: #27c93f; }
|
|
21
|
+
|
|
22
|
+
.title { font-size: 24px; font-weight: bold; fill: #22d3ee; font-family: 'JetBrains Mono', monospace; }
|
|
23
|
+
.subtitle { font-size: 14px; fill: #71717a; font-family: 'JetBrains Mono', monospace; }
|
|
24
|
+
.command { font-size: 16px; fill: #e4e4e7; font-family: 'JetBrains Mono', monospace; }
|
|
25
|
+
.prompt { font-size: 16px; fill: #7c6ef0; font-family: 'JetBrains Mono', monospace; font-weight: bold; }
|
|
26
|
+
.success { font-size: 16px; fill: #4ade80; font-family: 'JetBrains Mono', monospace; }
|
|
27
|
+
.comment { font-size: 14px; fill: #eab308; font-family: 'JetBrains Mono', monospace; }
|
|
28
|
+
.dim { font-size: 14px; fill: #71717a; font-family: 'JetBrains Mono', monospace; }
|
|
29
|
+
.error { font-size: 16px; fill: #ef4444; font-family: 'JetBrains Mono', monospace; }
|
|
30
|
+
|
|
31
|
+
.line-1 { animation: fadeIn 0.3s ease-out 0.0s both; }
|
|
32
|
+
.line-2 { animation: fadeIn 0.3s ease-out 0.3s both; }
|
|
33
|
+
.line-3 { animation: fadeIn 0.3s ease-out 0.6s both; }
|
|
34
|
+
.line-4 { animation: fadeIn 0.3s ease-out 0.9s both; }
|
|
35
|
+
.line-5 { animation: fadeIn 0.3s ease-out 1.2s both; }
|
|
36
|
+
.line-6 { animation: fadeIn 0.3s ease-out 1.5s both; }
|
|
37
|
+
.line-7 { animation: fadeIn 0.3s ease-out 1.8s both; }
|
|
38
|
+
.line-8 { animation: fadeIn 0.3s ease-out 2.1s both; }
|
|
39
|
+
.line-9 { animation: fadeIn 0.3s ease-out 2.4s both; }
|
|
40
|
+
.line-10 { animation: fadeIn 0.3s ease-out 2.7s both; }
|
|
41
|
+
.line-11 { animation: fadeIn 0.3s ease-out 3.0s both; }
|
|
42
|
+
.line-12 { animation: fadeIn 0.3s ease-out 3.3s both; }
|
|
43
|
+
.line-13 { animation: fadeIn 0.3s ease-out 3.6s both; }
|
|
44
|
+
.line-14 { animation: fadeIn 0.3s ease-out 3.9s both; }
|
|
45
|
+
.line-15 { animation: fadeIn 0.3s ease-out 4.2s both; }
|
|
46
|
+
.line-16 { animation: fadeIn 0.3s ease-out 4.5s both; }
|
|
47
|
+
.line-17 { animation: fadeIn 0.3s ease-out 4.8s both; }
|
|
48
|
+
.line-18 { animation: fadeIn 0.3s ease-out 5.1s both; }
|
|
49
|
+
.line-19 { animation: fadeIn 0.3s ease-out 5.4s both; }
|
|
50
|
+
.line-20 { animation: fadeIn 0.3s ease-out 5.7s both; }
|
|
51
|
+
.line-21 { animation: fadeIn 0.3s ease-out 6.0s both; }
|
|
52
|
+
.line-22 { animation: fadeIn 0.3s ease-out 6.3s both; }
|
|
53
|
+
.line-23 { animation: fadeIn 0.3s ease-out 6.6s both; }
|
|
54
|
+
.line-24 { animation: fadeIn 0.3s ease-out 6.9s both; }
|
|
55
|
+
.line-25 { animation: fadeIn 0.3s ease-out 7.2s both; }
|
|
56
|
+
.line-26 { animation: fadeIn 0.3s ease-out 7.5s both; }
|
|
57
|
+
.line-27 { animation: fadeIn 0.3s ease-out 7.8s both; }
|
|
58
|
+
.line-28 { animation: fadeIn 0.3s ease-out 8.1s both; }
|
|
59
|
+
.line-29 { animation: fadeIn 0.3s ease-out 8.4s both; }
|
|
60
|
+
.line-30 { animation: fadeIn 0.3s ease-out 8.7s both; }
|
|
61
|
+
.line-31 { animation: fadeIn 0.3s ease-out 9.0s both; }
|
|
62
|
+
.line-32 { animation: fadeIn 0.3s ease-out 9.3s both; }
|
|
63
|
+
.line-33 { animation: fadeIn 0.3s ease-out 9.6s both; }
|
|
64
|
+
.line-34 { animation: fadeIn 0.3s ease-out 9.9s both; }
|
|
65
|
+
.line-35 { animation: fadeIn 0.3s ease-out 10.2s both; }
|
|
66
|
+
.line-36 { animation: fadeIn 0.3s ease-out 10.5s both; }
|
|
67
|
+
.line-37 { animation: fadeIn 0.3s ease-out 10.8s both; }
|
|
68
|
+
.line-38 { animation: fadeIn 0.3s ease-out 11.1s both; }
|
|
69
|
+
.line-39 { animation: fadeIn 0.3s ease-out 11.4s both; }
|
|
70
|
+
.line-40 { animation: fadeIn 0.3s ease-out 11.7s both; }
|
|
71
|
+
.line-41 { animation: fadeIn 0.3s ease-out 12.0s both; }
|
|
72
|
+
.line-42 { animation: fadeIn 0.3s ease-out 12.3s both; }
|
|
73
|
+
.line-43 { animation: fadeIn 0.3s ease-out 12.6s both; }
|
|
74
|
+
.line-44 { animation: fadeIn 0.3s ease-out 12.9s both; }
|
|
75
|
+
|
|
76
|
+
.cursor { animation: blink 0.8s infinite 13.5s; }
|
|
77
|
+
</style>
|
|
78
|
+
</defs>
|
|
79
|
+
|
|
80
|
+
<!-- Background -->
|
|
81
|
+
<rect class="terminal-bg" width="700" height="1260" rx="12" ry="12"/>
|
|
82
|
+
|
|
83
|
+
<!-- Chrome bar -->
|
|
84
|
+
<rect class="chrome-bar" width="700" height="30"/>
|
|
85
|
+
<circle class="chrome-dot-red" cx="20" cy="15" r="6"/>
|
|
86
|
+
<circle class="chrome-dot-yellow" cx="50" cy="15" r="6"/>
|
|
87
|
+
<circle class="chrome-dot-green" cx="80" cy="15" r="6"/>
|
|
88
|
+
|
|
89
|
+
<!-- Content -->
|
|
90
|
+
<g class="line-1">
|
|
91
|
+
<text class="title" x="20" y="80">memoir</text>
|
|
92
|
+
<text class="subtitle" x="180" y="80">— Your AI remembers everything.</text>
|
|
93
|
+
</g>
|
|
94
|
+
|
|
95
|
+
<text class="command line-2" x="20" y="120">npm install -g memoir-cli</text>
|
|
96
|
+
|
|
97
|
+
<text class="comment line-3" x="20" y="170"># See what AI tools are on this machine</text>
|
|
98
|
+
|
|
99
|
+
<g class="line-4">
|
|
100
|
+
<text class="prompt" x="20" y="210">❯ </text>
|
|
101
|
+
<text class="command" x="50" y="210">memoir status</text>
|
|
102
|
+
</g>
|
|
103
|
+
|
|
104
|
+
<text class="subtitle line-5" x="20" y="260">memoir v3.2.0</text>
|
|
105
|
+
|
|
106
|
+
<text class="subtitle line-6" x="20" y="300">Detected AI tools:</text>
|
|
107
|
+
|
|
108
|
+
<g class="line-7">
|
|
109
|
+
<text class="success" x="20" y="340">✔ </text>
|
|
110
|
+
<text class="command" x="50" y="340">Claude Code ~/.claude/ (settings, memory, CLAUDE.md)</text>
|
|
111
|
+
</g>
|
|
112
|
+
|
|
113
|
+
<g class="line-8">
|
|
114
|
+
<text class="success" x="20" y="375">✔ </text>
|
|
115
|
+
<text class="command" x="50" y="375">Gemini CLI ~/.gemini/ (config, GEMINI.md)</text>
|
|
116
|
+
</g>
|
|
117
|
+
|
|
118
|
+
<g class="line-9">
|
|
119
|
+
<text class="success" x="20" y="410">✔ </text>
|
|
120
|
+
<text class="command" x="50" y="410">Cursor .cursorrules (settings, keybindings)</text>
|
|
121
|
+
</g>
|
|
122
|
+
|
|
123
|
+
<g class="line-10">
|
|
124
|
+
<text class="success" x="20" y="445">✔ </text>
|
|
125
|
+
<text class="command" x="50" y="445">Codex ~/.codex/ (config, AGENTS.md)</text>
|
|
126
|
+
</g>
|
|
127
|
+
|
|
128
|
+
<g class="line-11">
|
|
129
|
+
<text class="success" x="20" y="480">✔ </text>
|
|
130
|
+
<text class="command" x="50" y="480">Aider ~/.aider.conf.yml</text>
|
|
131
|
+
</g>
|
|
132
|
+
|
|
133
|
+
<text class="subtitle line-12" x="20" y="520">5 tools found on this machine.</text>
|
|
134
|
+
|
|
135
|
+
<text class="comment line-13" x="20" y="570"># Back up everything in one command</text>
|
|
136
|
+
|
|
137
|
+
<g class="line-14">
|
|
138
|
+
<text class="prompt" x="20" y="610">❯ </text>
|
|
139
|
+
<text class="command" x="50" y="610">memoir push</text>
|
|
140
|
+
</g>
|
|
141
|
+
|
|
142
|
+
<g class="line-15">
|
|
143
|
+
<text class="success" x="20" y="655">✔ </text>
|
|
144
|
+
<text class="command" x="50" y="655">AI memory backed up (5 tools, 23 files)</text>
|
|
145
|
+
</g>
|
|
146
|
+
|
|
147
|
+
<g class="line-16">
|
|
148
|
+
<text class="success" x="20" y="690">✔ </text>
|
|
149
|
+
<text class="command" x="50" y="690">Session context captured</text>
|
|
150
|
+
</g>
|
|
151
|
+
|
|
152
|
+
<g class="line-17">
|
|
153
|
+
<text class="success" x="20" y="725">✔ </text>
|
|
154
|
+
<text class="command" x="50" y="725">Workspace: 44 projects (17 git, 23 bundled)</text>
|
|
155
|
+
</g>
|
|
156
|
+
|
|
157
|
+
<g class="line-18">
|
|
158
|
+
<text class="dim" x="20" y="765">🔒 E2E encrypted · pushed in 3.2s</text>
|
|
159
|
+
</g>
|
|
160
|
+
|
|
161
|
+
<text class="comment line-19" x="20" y="815"># Simulate switching machines...</text>
|
|
162
|
+
|
|
163
|
+
<g class="line-20">
|
|
164
|
+
<text class="error" x="20" y="855">[wiped all AI configs]</text>
|
|
165
|
+
</g>
|
|
166
|
+
|
|
167
|
+
<text class="comment line-21" x="20" y="905"># Restore on the new machine</text>
|
|
168
|
+
|
|
169
|
+
<g class="line-22">
|
|
170
|
+
<text class="prompt" x="20" y="945">❯ </text>
|
|
171
|
+
<text class="command" x="50" y="945">memoir restore --yes</text>
|
|
172
|
+
</g>
|
|
173
|
+
|
|
174
|
+
<g class="line-23">
|
|
175
|
+
<text class="success" x="20" y="990">✔ </text>
|
|
176
|
+
<text class="command" x="50" y="990">AI memory restored (Claude, Gemini, Cursor, Codex, Aider)</text>
|
|
177
|
+
</g>
|
|
178
|
+
|
|
179
|
+
<g class="line-24">
|
|
180
|
+
<text class="success" x="20" y="1025">✔ </text>
|
|
181
|
+
<text class="command" x="50" y="1025">44 projects cloned & unpacked</text>
|
|
182
|
+
</g>
|
|
183
|
+
|
|
184
|
+
<g class="line-25">
|
|
185
|
+
<text class="success" x="20" y="1060">✔ </text>
|
|
186
|
+
<text class="command" x="50" y="1060">Uncommitted changes applied</text>
|
|
187
|
+
</g>
|
|
188
|
+
|
|
189
|
+
<g class="line-26">
|
|
190
|
+
<text class="success" x="20" y="1095">✔ </text>
|
|
191
|
+
<text class="command" x="50" y="1095">Session context injected — AI picks up mid-conversation</text>
|
|
192
|
+
</g>
|
|
193
|
+
|
|
194
|
+
<text class="subtitle line-27" x="20" y="1140">Done. All AI memory restored in seconds.</text>
|
|
195
|
+
|
|
196
|
+
<text class="command line-28" x="20" y="1180">npm install -g memoir-cli</text>
|
|
197
|
+
|
|
198
|
+
<!-- Blinking cursor -->
|
|
199
|
+
<text class="command cursor" x="20" y="1220">_</text>
|
|
200
|
+
|
|
201
|
+
</svg>
|