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/README.md CHANGED
@@ -2,52 +2,95 @@
2
2
 
3
3
  # memoir
4
4
 
5
- **AI tools forget you. memoir doesn't.**
5
+ **Persistent memory for AI coding tools.**
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/memoir-cli.svg?style=flat-square&color=7c6ef0)](https://npmjs.org/package/memoir-cli)
8
8
  [![npm downloads](https://img.shields.io/npm/dm/memoir-cli.svg?style=flat-square&color=7c6ef0)](https://npmjs.org/package/memoir-cli)
9
9
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
10
10
  [![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen?style=flat-square)](https://nodejs.org)
11
11
 
12
- Sync memory across 11 AI tools. Search it all from your editor via MCP. One CLI, every device.
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 spend weeks teaching Claude how you code. Your projects are dialed in. Your AI knows your stack, your decisions, your preferences.
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
- Then you switch machines. **Everything is gone.** Your AI has amnesia. Your projects aren't there. You start from zero.
28
+ Next session? **Gone.** New machine? **Gone.** Switch tools? **Gone.**
25
29
 
26
- ## The Fix
30
+ ## How memoir fixes it
27
31
 
28
- ```bash
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
- # On any other machine
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
- # Done. Everything's back:
37
- # ✔ AI memory restored (Claude, Gemini, Cursor, 11 tools)
38
- # ✔ 44 projects cloned & unpacked
39
- # ✔ Uncommitted changes applied
40
- # Session context injected AI picks up mid-conversation
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
- One command to save. One command to restore. That's it.
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
- Your AI tool configs, preferences, and project knowledge across 11 tools.
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 (NEW in v3.1)
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
- ### Workspace sync
146
- ```bash
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
- ### Session handoff
139
+ ### Cross-machine sync
163
140
  ```bash
164
- # Capture your session (automatic on push, or manual)
165
- memoir snapshot
141
+ # On your main machine
142
+ memoir push
166
143
 
167
- # Pick up on another machine
168
- memoir resume --inject --to claude
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. Even if your storage is compromised, your data is safe. Secret scanning auto-redacts API keys, tokens, and passwords.
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
- Each profile has its own repo and tool filters. Work configs never mix with personal.
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
- ```bash
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 mcp` | Start MCP server for editor integration |
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 translation | **Yes** | No | No | No |
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
- ### New machine setup
250
- ```bash
251
- # Old machine
252
- memoir push
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
- # New machine one command, everything's back
255
- npm install -g memoir-cli && memoir init && memoir restore -y
226
+ # Thursdaynew 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
- ### Daily sync between machines
232
+ ### New machine setup
259
233
  ```bash
260
- memoir push # end of day on laptop
261
- memoir restore # next morning on desktop — AI knows what you were doing
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 migration improvements.
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 &amp; 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>