claude-chrome-parallel 3.0.2 → 3.0.4
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 +109 -206
- package/assets/demo.svg +91 -105
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,16 +1,58 @@
|
|
|
1
1
|
# Claude Chrome Parallel
|
|
2
2
|
|
|
3
|
-
> **
|
|
3
|
+
> **Automate your actual browser—with all your logins active.**
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/claude-chrome-parallel)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
|
|
8
|
+
No more "Detached" errors. Run **20+ Claude Code sessions in parallel**.
|
|
9
|
+
|
|
10
|
+
- ✅ **Authenticated access**: Gmail, Salesforce, LinkedIn—already logged in
|
|
11
|
+
- ✅ **True parallelism**: 5 sites at once, 5x faster
|
|
12
|
+
- ✅ **Multi-account**: Same site, different accounts, isolated sessions
|
|
13
|
+
- ✅ **No bot detection**: Real browser profile, not headless
|
|
14
|
+
|
|
15
|
+
**This isn't just for developers.** Any web task requiring authentication—previously impossible to automate—is now possible with natural language.
|
|
16
|
+
|
|
8
17
|
<p align="center">
|
|
9
|
-
<img src="https://raw.githubusercontent.com/shaun0927/claude-chrome-parallel/main/assets/demo.svg" alt="Chrome Extension vs Claude Chrome Parallel - Animated comparison showing
|
|
18
|
+
<img src="https://raw.githubusercontent.com/shaun0927/claude-chrome-parallel/main/assets/demo.svg" alt="Chrome Extension vs Claude Chrome Parallel - Animated comparison showing parallel execution" width="100%">
|
|
10
19
|
</p>
|
|
11
20
|
|
|
12
21
|
---
|
|
13
22
|
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install -g claude-chrome-parallel
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Add to `~/.claude.json`:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"mcpServers": {
|
|
34
|
+
"chrome-parallel": {
|
|
35
|
+
"command": "ccp",
|
|
36
|
+
"args": ["serve"]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Restart Claude Code. Done.
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
You: Take a screenshot of https://github.com
|
|
46
|
+
|
|
47
|
+
Claude: [Auto-launches browser, captures screenshot]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## How It Works
|
|
53
|
+
|
|
54
|
+
The official Chrome extension crashes when running multiple Claude sessions ("Detached" error). We fixed that.
|
|
55
|
+
|
|
14
56
|
```
|
|
15
57
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
16
58
|
│ │
|
|
@@ -18,7 +60,7 @@
|
|
|
18
60
|
│ (Google account) │ │
|
|
19
61
|
│ │ │
|
|
20
62
|
│ Claude Code 2 ─► Worker B ─► [Tab3] [Tab4] ─┼─► Chrome (single instance) │
|
|
21
|
-
│ (
|
|
63
|
+
│ (LinkedIn account) │ Port 9222 │
|
|
22
64
|
│ │ │
|
|
23
65
|
│ Claude Code 3 ─► Worker C ─► [Tab5] [Tab6] ─┘ │
|
|
24
66
|
│ (Amazon account) │
|
|
@@ -30,6 +72,48 @@
|
|
|
30
72
|
└─────────────────────────────────────────────────────────────────────────────┘
|
|
31
73
|
```
|
|
32
74
|
|
|
75
|
+
**Independent CDP connections** per session = No shared state = No conflicts.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Usage Examples
|
|
80
|
+
|
|
81
|
+
### Multiple Accounts Simultaneously
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
You: Create "google-personal" and "google-work" Workers,
|
|
85
|
+
then check the inbox of each Gmail account
|
|
86
|
+
|
|
87
|
+
Claude: [Creates 2 Workers → Each accesses Gmail with isolated sessions]
|
|
88
|
+
google-personal: Personal account - 3 new emails
|
|
89
|
+
google-work: Work account - 7 new emails
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Price Comparison (Parallel)
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
You: Search for "iPhone 15" lowest price on Amazon, eBay, and Walmart simultaneously
|
|
96
|
+
|
|
97
|
+
Claude: [3 sites run in parallel]
|
|
98
|
+
Amazon: $999 (1.2s)
|
|
99
|
+
eBay: $945 (1.1s)
|
|
100
|
+
Walmart: $979 (1.3s)
|
|
101
|
+
Total time: 1.3s (vs 3.6s sequential)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Parallel QA Testing
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# Terminal 1
|
|
108
|
+
claude -p "Test myapp.com/login"
|
|
109
|
+
|
|
110
|
+
# Terminal 2 (at the same time!)
|
|
111
|
+
claude -p "Test myapp.com/checkout"
|
|
112
|
+
|
|
113
|
+
# Terminal 3 (at the same time!)
|
|
114
|
+
claude -p "Monitor myapp.com/admin"
|
|
115
|
+
```
|
|
116
|
+
|
|
33
117
|
---
|
|
34
118
|
|
|
35
119
|
## Core Features
|
|
@@ -92,134 +176,6 @@ workflow_init({
|
|
|
92
176
|
|
|
93
177
|
---
|
|
94
178
|
|
|
95
|
-
## Comparison
|
|
96
|
-
|
|
97
|
-
| | Chrome Extension | Claude Chrome Parallel |
|
|
98
|
-
|---|:---:|:---:|
|
|
99
|
-
| **Concurrent Sessions** | ❌ 1 (Detached error) | ✅ **20+** |
|
|
100
|
-
| **Worker Isolation** | ❌ | ✅ Isolated cookies/sessions |
|
|
101
|
-
| **Multi-account Login** | ❌ | ✅ |
|
|
102
|
-
| **Parallel Execution** | ❌ | ✅ |
|
|
103
|
-
| **Network Simulation** | ❌ | ✅ 3G/4G/offline |
|
|
104
|
-
| **Workflow Orchestration** | ❌ | ✅ |
|
|
105
|
-
| **Auto Chrome Launch** | ❌ | ✅ |
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## Why It Matters
|
|
110
|
-
|
|
111
|
-
### The Problem
|
|
112
|
-
|
|
113
|
-
The official Chrome extension has a fatal flaw: **shared internal state**.
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
Claude Code 1 ─┐
|
|
117
|
-
├─► Chrome Extension (shared state) ─► "Detached" error!
|
|
118
|
-
Claude Code 2 ─┘
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
When Session A takes a screenshot, Session B's connection breaks. You can only run **one session at a time**.
|
|
122
|
-
|
|
123
|
-
### The Solution
|
|
124
|
-
|
|
125
|
-
Claude Chrome Parallel creates **independent CDP connections** per session:
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
Claude Code 1 ─► CDP Connection 1 ─┐
|
|
129
|
-
├─► Chrome (port 9222)
|
|
130
|
-
Claude Code 2 ─► CDP Connection 2 ─┘
|
|
131
|
-
|
|
132
|
-
No shared state = No conflicts = 20+ concurrent sessions
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### The Real Power: Authenticated Sessions
|
|
136
|
-
|
|
137
|
-
Unlike headless automation, this runs in **your actual browser** with all your logins active:
|
|
138
|
-
|
|
139
|
-
- ✅ Access Gmail, Salesforce, LinkedIn while logged in
|
|
140
|
-
- ✅ No credential management or auth flows needed
|
|
141
|
-
- ✅ Bypass bot detection (real browser profile)
|
|
142
|
-
- ✅ Multiple accounts simultaneously (Worker isolation)
|
|
143
|
-
|
|
144
|
-
**This isn't just for developers.** Any web task requiring authentication—previously impossible to automate—is now possible with natural language.
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Quick Start (2 minutes)
|
|
149
|
-
|
|
150
|
-
### 1. Install
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
npm install -g claude-chrome-parallel
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### 2. Configure Claude Code
|
|
157
|
-
|
|
158
|
-
Add to `~/.claude.json`:
|
|
159
|
-
|
|
160
|
-
```json
|
|
161
|
-
{
|
|
162
|
-
"mcpServers": {
|
|
163
|
-
"chrome-parallel": {
|
|
164
|
-
"command": "ccp",
|
|
165
|
-
"args": ["serve"]
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### 3. Restart Claude Code and use
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
You: Take a screenshot of https://github.com
|
|
175
|
-
|
|
176
|
-
Claude: [Auto-launches browser, captures screenshot]
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
> **Tip:** `ccp` is a shorthand for `claude-chrome-parallel`.
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
## Usage Examples
|
|
184
|
-
|
|
185
|
-
### Multiple Accounts Simultaneously
|
|
186
|
-
|
|
187
|
-
```
|
|
188
|
-
You: Create "google-personal" and "google-work" Workers,
|
|
189
|
-
then check the inbox of each Gmail account
|
|
190
|
-
|
|
191
|
-
Claude: [Creates 2 Workers → Each accesses Gmail with isolated sessions]
|
|
192
|
-
google-personal: Personal account - 3 new emails
|
|
193
|
-
google-work: Work account - 7 new emails
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### Price Comparison (Parallel)
|
|
197
|
-
|
|
198
|
-
```
|
|
199
|
-
You: Search for "iPhone 15" lowest price on Amazon, eBay, and Walmart simultaneously
|
|
200
|
-
|
|
201
|
-
Claude: [3 sites run in parallel]
|
|
202
|
-
Amazon: $999 (1.2s)
|
|
203
|
-
eBay: $945 (1.1s)
|
|
204
|
-
Walmart: $979 (1.3s)
|
|
205
|
-
Total time: 1.3s (vs 3.6s sequential)
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
### Parallel QA Testing
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
# Terminal 1
|
|
212
|
-
claude -p "Test myapp.com/login"
|
|
213
|
-
|
|
214
|
-
# Terminal 2 (at the same time!)
|
|
215
|
-
claude -p "Test myapp.com/checkout"
|
|
216
|
-
|
|
217
|
-
# Terminal 3 (at the same time!)
|
|
218
|
-
claude -p "Monitor myapp.com/admin"
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
179
|
## Chrome-Sisyphus: Orchestration Skill
|
|
224
180
|
|
|
225
181
|
For complex multi-site workflows, use the built-in **Chrome-Sisyphus** skill system.
|
|
@@ -251,7 +207,7 @@ For complex multi-site workflows, use the built-in **Chrome-Sisyphus** skill sys
|
|
|
251
207
|
└─────────────────────────────────────────────────────────────────┘
|
|
252
208
|
```
|
|
253
209
|
|
|
254
|
-
###
|
|
210
|
+
### Context Isolation
|
|
255
211
|
|
|
256
212
|
**Without isolation** (traditional approach):
|
|
257
213
|
```
|
|
@@ -274,41 +230,33 @@ Background Tasks: (isolated, don't pollute main)
|
|
|
274
230
|
├── Worker 1: own context, own screenshots
|
|
275
231
|
├── Worker 2: own context, own screenshots
|
|
276
232
|
└── Worker 3: own context, own screenshots
|
|
277
|
-
|
|
278
|
-
Scratchpad Files: (persistent state)
|
|
279
|
-
└── .agent/chrome-sisyphus/*.md
|
|
280
233
|
```
|
|
281
234
|
|
|
282
|
-
###
|
|
283
|
-
|
|
284
|
-
Copy the `.claude/` folder to your project:
|
|
235
|
+
### Setup
|
|
285
236
|
|
|
286
237
|
```bash
|
|
287
238
|
cp -r node_modules/claude-chrome-parallel/.claude ~/.claude/
|
|
288
|
-
# Or copy to your project root
|
|
289
239
|
```
|
|
290
240
|
|
|
291
|
-
Then use
|
|
241
|
+
Then use:
|
|
292
242
|
|
|
293
243
|
```
|
|
294
244
|
/chrome-sisyphus Compare laptop prices on Amazon, BestBuy, and Newegg
|
|
295
245
|
```
|
|
296
246
|
|
|
297
|
-
|
|
247
|
+
---
|
|
298
248
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
└── coordinator.md # Result integration
|
|
311
|
-
```
|
|
249
|
+
## Comparison
|
|
250
|
+
|
|
251
|
+
| | Chrome Extension | Claude Chrome Parallel |
|
|
252
|
+
|---|:---:|:---:|
|
|
253
|
+
| **Concurrent Sessions** | ❌ 1 (Detached error) | ✅ **20+** |
|
|
254
|
+
| **Worker Isolation** | ❌ | ✅ Isolated cookies/sessions |
|
|
255
|
+
| **Multi-account Login** | ❌ | ✅ |
|
|
256
|
+
| **Parallel Execution** | ❌ | ✅ |
|
|
257
|
+
| **Network Simulation** | ❌ | ✅ 3G/4G/offline |
|
|
258
|
+
| **Workflow Orchestration** | ❌ | ✅ |
|
|
259
|
+
| **Auto Chrome Launch** | ❌ | ✅ |
|
|
312
260
|
|
|
313
261
|
---
|
|
314
262
|
|
|
@@ -353,54 +301,20 @@ Then use in Claude Code:
|
|
|
353
301
|
ccp serve # Start MCP server (auto-run by Claude Code)
|
|
354
302
|
ccp check # Check Chrome connection
|
|
355
303
|
ccp status # View session status
|
|
356
|
-
ccp status --json # JSON output
|
|
357
304
|
ccp doctor # Diagnose installation
|
|
358
305
|
ccp cleanup # Clean up old sessions
|
|
359
|
-
ccp serve --port 9223 # Use custom port
|
|
360
306
|
```
|
|
361
307
|
|
|
362
308
|
---
|
|
363
309
|
|
|
364
|
-
##
|
|
365
|
-
|
|
366
|
-
| Concurrent Sessions | Success Rate |
|
|
367
|
-
|:---:|:---:|
|
|
368
|
-
| 5 | 100% |
|
|
369
|
-
| 10 | 100% |
|
|
370
|
-
| 15 | 100% |
|
|
371
|
-
| 20 | 100% |
|
|
372
|
-
|
|
373
|
-
---
|
|
374
|
-
|
|
375
|
-
## Additional Features
|
|
376
|
-
|
|
377
|
-
### Network Simulation
|
|
378
|
-
|
|
379
|
-
```
|
|
380
|
-
You: Test myapp.com loading time on 3G network
|
|
381
|
-
|
|
382
|
-
Claude: [Applies 3G throttling: 1.5Mbps, 100ms latency]
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
Presets: `offline`, `slow-2g`, `2g`, `3g`, `4g`, `fast-wifi`, `custom`
|
|
386
|
-
|
|
387
|
-
### Config Recovery
|
|
388
|
-
|
|
389
|
-
```bash
|
|
390
|
-
# Auto-recover corrupted .claude.json
|
|
391
|
-
ccp recover
|
|
392
|
-
|
|
393
|
-
# List backups
|
|
394
|
-
ccp recover --list-backups
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
### Session Isolation
|
|
310
|
+
## Use Cases
|
|
398
311
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
312
|
+
- **Business**: ERP/SaaS data extraction, invoice downloads, repetitive task automation
|
|
313
|
+
- **Research**: Login-required platform data collection, academic DB searches
|
|
314
|
+
- **Social Media**: Multi-account posting, message management, analytics
|
|
315
|
+
- **E-commerce**: Member price monitoring, inventory management, review responses
|
|
316
|
+
- **QA Testing**: Parallel scenario testing, network condition testing
|
|
317
|
+
- **Productivity**: Email organization, calendar management, bookmark management
|
|
404
318
|
|
|
405
319
|
---
|
|
406
320
|
|
|
@@ -422,17 +336,6 @@ chrome --remote-debugging-port=9222
|
|
|
422
336
|
|
|
423
337
|
---
|
|
424
338
|
|
|
425
|
-
## Use Cases
|
|
426
|
-
|
|
427
|
-
- **Business**: ERP/SaaS data extraction, invoice downloads, repetitive task automation
|
|
428
|
-
- **Research**: Login-required platform data collection, academic DB searches
|
|
429
|
-
- **Social Media**: Multi-account posting, message management, analytics
|
|
430
|
-
- **E-commerce**: Member price monitoring, inventory management, review responses
|
|
431
|
-
- **QA Testing**: Parallel scenario testing, network condition testing
|
|
432
|
-
- **Productivity**: Email organization, calendar management, bookmark management
|
|
433
|
-
|
|
434
|
-
---
|
|
435
|
-
|
|
436
339
|
## Development
|
|
437
340
|
|
|
438
341
|
```bash
|
package/assets/demo.svg
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 360">
|
|
2
2
|
<defs>
|
|
3
3
|
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
4
|
<stop offset="0%" style="stop-color:#1a1a2e"/>
|
|
@@ -8,176 +8,162 @@
|
|
|
8
8
|
<stop offset="0%" style="stop-color:#00b894"/>
|
|
9
9
|
<stop offset="100%" style="stop-color:#00cec9"/>
|
|
10
10
|
</linearGradient>
|
|
11
|
-
<linearGradient id="errorGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
12
|
-
<stop offset="0%" style="stop-color:#e74c3c"/>
|
|
13
|
-
<stop offset="100%" style="stop-color:#c0392b"/>
|
|
14
|
-
</linearGradient>
|
|
15
|
-
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
16
|
-
<stop offset="0%" style="stop-color:#6c5ce7"/>
|
|
17
|
-
<stop offset="100%" style="stop-color:#a29bfe"/>
|
|
18
|
-
</linearGradient>
|
|
19
11
|
</defs>
|
|
20
12
|
|
|
21
13
|
<!-- Background -->
|
|
22
|
-
<rect width="800" height="
|
|
14
|
+
<rect width="800" height="360" fill="url(#bgGrad)"/>
|
|
23
15
|
|
|
24
16
|
<!-- Title -->
|
|
25
|
-
<text x="400" y="
|
|
17
|
+
<text x="400" y="28" text-anchor="middle" fill="#fff" font-family="system-ui, -apple-system, sans-serif" font-size="15" font-weight="bold">
|
|
26
18
|
Chrome Extension vs Claude Chrome Parallel
|
|
27
19
|
</text>
|
|
28
20
|
|
|
29
21
|
<!-- LEFT SIDE: Chrome Extension (Failing) -->
|
|
30
|
-
<g transform="translate(
|
|
22
|
+
<g transform="translate(25, 45)">
|
|
31
23
|
<!-- Header -->
|
|
32
|
-
<rect x="0" y="0" width="
|
|
33
|
-
<circle cx="
|
|
34
|
-
<circle cx="
|
|
35
|
-
<circle cx="
|
|
36
|
-
<text x="
|
|
24
|
+
<rect x="0" y="0" width="360" height="26" rx="6" ry="6" fill="#2d3436"/>
|
|
25
|
+
<circle cx="14" cy="13" r="4" fill="#e74c3c"/>
|
|
26
|
+
<circle cx="28" cy="13" r="4" fill="#f39c12"/>
|
|
27
|
+
<circle cx="42" cy="13" r="4" fill="#27ae60"/>
|
|
28
|
+
<text x="180" y="17" text-anchor="middle" fill="#b2bec3" font-family="monospace" font-size="11">Chrome Extension</text>
|
|
37
29
|
|
|
38
30
|
<!-- Terminal body -->
|
|
39
|
-
<rect x="0" y="
|
|
40
|
-
<rect x="0" y="
|
|
31
|
+
<rect x="0" y="26" width="360" height="260" fill="#0d1117"/>
|
|
32
|
+
<rect x="0" y="276" width="360" height="10" rx="0" ry="0" fill="#2d3436"/>
|
|
41
33
|
|
|
42
|
-
<!-- Session 1 -
|
|
43
|
-
<text x="10" y="
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<
|
|
47
|
-
<
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
<
|
|
52
|
-
<animate attributeName="opacity" values="0;0;1;1" dur="4s" repeatCount="indefinite"/>
|
|
34
|
+
<!-- Session 1 - Starts, completes -->
|
|
35
|
+
<text x="10" y="48" fill="#6c5ce7" font-family="monospace" font-size="11">$ claude "Screenshot github.com"</text>
|
|
36
|
+
|
|
37
|
+
<!-- Session 1 progress bar -->
|
|
38
|
+
<rect x="10" y="56" width="0" height="12" rx="2" fill="url(#successGrad)">
|
|
39
|
+
<animate attributeName="width" values="0;0;50;100;140;140;140;140;140;140;140" dur="10s" repeatCount="indefinite"/>
|
|
40
|
+
</rect>
|
|
41
|
+
<text x="10" y="82" fill="#00b894" font-family="monospace" font-size="11">
|
|
42
|
+
<tspan>✓ Session 1 completed</tspan>
|
|
43
|
+
<animate attributeName="opacity" values="0;0;0;0;1;1;1;1;1;1;1" dur="10s" repeatCount="indefinite"/>
|
|
53
44
|
</text>
|
|
54
45
|
|
|
55
|
-
<!-- Session 2 -
|
|
56
|
-
<text x="10" y="
|
|
46
|
+
<!-- Session 2 - Tries to start, gets error -->
|
|
47
|
+
<text x="10" y="110" fill="#6c5ce7" font-family="monospace" font-size="11">
|
|
57
48
|
<tspan>$ claude "Screenshot google.com"</tspan>
|
|
58
|
-
<animate attributeName="opacity" values="0;0;0;1;1" dur="
|
|
49
|
+
<animate attributeName="opacity" values="0;0;0;0;0;1;1;1;1;1;1" dur="10s" repeatCount="indefinite"/>
|
|
59
50
|
</text>
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
51
|
+
|
|
52
|
+
<!-- Session 2 attempting -->
|
|
53
|
+
<text x="10" y="130" fill="#fdcb6e" font-family="monospace" font-size="11">
|
|
54
|
+
<tspan>Connecting to browser...</tspan>
|
|
55
|
+
<animate attributeName="opacity" values="0;0;0;0;0;0;1;0;0;0;0" dur="10s" repeatCount="indefinite"/>
|
|
63
56
|
</text>
|
|
64
57
|
|
|
65
|
-
<!-- Error
|
|
58
|
+
<!-- Error box -->
|
|
66
59
|
<g>
|
|
67
|
-
<animate attributeName="opacity" values="0;0;0;0;0;1;1" dur="
|
|
68
|
-
<rect x="
|
|
69
|
-
<text x="
|
|
60
|
+
<animate attributeName="opacity" values="0;0;0;0;0;0;0;1;1;1;1" dur="10s" repeatCount="indefinite"/>
|
|
61
|
+
<rect x="10" y="140" width="340" height="50" rx="4" fill="#2d1b1b"/>
|
|
62
|
+
<text x="20" y="160" fill="#e74c3c" font-family="monospace" font-size="11" font-weight="bold">
|
|
70
63
|
✗ Error: Session Detached
|
|
71
64
|
</text>
|
|
72
|
-
<text x="
|
|
65
|
+
<text x="20" y="178" fill="#e17055" font-family="monospace" font-size="10">
|
|
73
66
|
Target closed. Another session took control.
|
|
74
67
|
</text>
|
|
75
68
|
</g>
|
|
76
69
|
|
|
77
70
|
<!-- Blinking cursor -->
|
|
78
|
-
<rect x="10" y="
|
|
71
|
+
<rect x="10" y="205" width="8" height="14" fill="#fff">
|
|
79
72
|
<animate attributeName="opacity" values="1;0;1" dur="1s" repeatCount="indefinite"/>
|
|
80
73
|
</rect>
|
|
81
74
|
|
|
82
|
-
<!-- Status
|
|
83
|
-
<text x="
|
|
75
|
+
<!-- Status -->
|
|
76
|
+
<text x="180" y="255" text-anchor="middle" fill="#e74c3c" font-family="system-ui" font-size="13" font-weight="bold">
|
|
84
77
|
❌ Only 1 session at a time
|
|
85
78
|
</text>
|
|
86
79
|
</g>
|
|
87
80
|
|
|
88
81
|
<!-- VS Divider -->
|
|
89
|
-
<text x="400" y="
|
|
82
|
+
<text x="400" y="190" text-anchor="middle" fill="#636e72" font-family="system-ui" font-size="20" font-weight="bold">VS</text>
|
|
90
83
|
|
|
91
84
|
<!-- RIGHT SIDE: Claude Chrome Parallel (Success) -->
|
|
92
|
-
<g transform="translate(
|
|
85
|
+
<g transform="translate(415, 45)">
|
|
93
86
|
<!-- Header -->
|
|
94
|
-
<rect x="0" y="0" width="
|
|
95
|
-
<circle cx="
|
|
96
|
-
<circle cx="
|
|
97
|
-
<circle cx="
|
|
98
|
-
<text x="
|
|
87
|
+
<rect x="0" y="0" width="360" height="26" rx="6" ry="6" fill="#2d3436"/>
|
|
88
|
+
<circle cx="14" cy="13" r="4" fill="#e74c3c"/>
|
|
89
|
+
<circle cx="28" cy="13" r="4" fill="#f39c12"/>
|
|
90
|
+
<circle cx="42" cy="13" r="4" fill="#27ae60"/>
|
|
91
|
+
<text x="180" y="17" text-anchor="middle" fill="#00b894" font-family="monospace" font-size="11" font-weight="bold">Claude Chrome Parallel</text>
|
|
99
92
|
|
|
100
93
|
<!-- Terminal body -->
|
|
101
|
-
<rect x="0" y="
|
|
102
|
-
<rect x="0" y="
|
|
94
|
+
<rect x="0" y="26" width="360" height="260" fill="#0d1117"/>
|
|
95
|
+
<rect x="0" y="276" width="360" height="10" rx="0" ry="0" fill="#2d3436"/>
|
|
96
|
+
|
|
97
|
+
<!-- ALL 5 SESSIONS START AT THE SAME TIME -->
|
|
103
98
|
|
|
104
|
-
<!-- Multiple sessions all succeeding -->
|
|
105
99
|
<!-- Session 1 -->
|
|
106
|
-
<text x="10" y="
|
|
107
|
-
<rect x="150" y="
|
|
108
|
-
<animate attributeName="width" values="0;
|
|
100
|
+
<text x="10" y="48" fill="#a29bfe" font-family="monospace" font-size="11">Session 1: github.com</text>
|
|
101
|
+
<rect x="150" y="38" width="0" height="12" rx="2" fill="url(#successGrad)">
|
|
102
|
+
<animate attributeName="width" values="0;0;30;60;90;120;120;120;120;120;120" dur="10s" repeatCount="indefinite"/>
|
|
109
103
|
</rect>
|
|
110
|
-
<text x="
|
|
111
|
-
<tspan
|
|
112
|
-
<animate attributeName="opacity" values="0;0;1;1" dur="
|
|
104
|
+
<text x="280" y="48" fill="#00b894" font-family="monospace" font-size="11">
|
|
105
|
+
<tspan>✓</tspan>
|
|
106
|
+
<animate attributeName="opacity" values="0;0;0;0;0;1;1;1;1;1;1" dur="10s" repeatCount="indefinite"/>
|
|
113
107
|
</text>
|
|
114
108
|
|
|
115
|
-
<!-- Session 2 -->
|
|
116
|
-
<text x="10" y="
|
|
117
|
-
<rect x="150" y="
|
|
118
|
-
<animate attributeName="width" values="0;0;
|
|
109
|
+
<!-- Session 2 - starts same time -->
|
|
110
|
+
<text x="10" y="70" fill="#a29bfe" font-family="monospace" font-size="11">Session 2: google.com</text>
|
|
111
|
+
<rect x="150" y="60" width="0" height="12" rx="2" fill="url(#successGrad)">
|
|
112
|
+
<animate attributeName="width" values="0;0;25;55;85;110;110;110;110;110;110" dur="10s" repeatCount="indefinite"/>
|
|
119
113
|
</rect>
|
|
120
|
-
<text x="
|
|
121
|
-
<tspan
|
|
122
|
-
<animate attributeName="opacity" values="0;0;0;1;1" dur="
|
|
114
|
+
<text x="270" y="70" fill="#00b894" font-family="monospace" font-size="11">
|
|
115
|
+
<tspan>✓</tspan>
|
|
116
|
+
<animate attributeName="opacity" values="0;0;0;0;0;1;1;1;1;1;1" dur="10s" repeatCount="indefinite"/>
|
|
123
117
|
</text>
|
|
124
118
|
|
|
125
|
-
<!-- Session 3 -->
|
|
126
|
-
<text x="10" y="
|
|
127
|
-
<rect x="150" y="
|
|
128
|
-
<animate attributeName="width" values="0;0;
|
|
119
|
+
<!-- Session 3 - starts same time -->
|
|
120
|
+
<text x="10" y="92" fill="#a29bfe" font-family="monospace" font-size="11">Session 3: amazon.com</text>
|
|
121
|
+
<rect x="150" y="82" width="0" height="12" rx="2" fill="url(#successGrad)">
|
|
122
|
+
<animate attributeName="width" values="0;0;35;70;100;130;130;130;130;130;130" dur="10s" repeatCount="indefinite"/>
|
|
129
123
|
</rect>
|
|
130
|
-
<text x="
|
|
131
|
-
<tspan
|
|
132
|
-
<animate attributeName="opacity" values="0;0;0;0;1;1" dur="
|
|
124
|
+
<text x="290" y="92" fill="#00b894" font-family="monospace" font-size="11">
|
|
125
|
+
<tspan>✓</tspan>
|
|
126
|
+
<animate attributeName="opacity" values="0;0;0;0;0;1;1;1;1;1;1" dur="10s" repeatCount="indefinite"/>
|
|
133
127
|
</text>
|
|
134
128
|
|
|
135
|
-
<!-- Session 4 -->
|
|
136
|
-
<text x="10" y="
|
|
137
|
-
<rect x="150" y="
|
|
138
|
-
<animate attributeName="width" values="0;0;
|
|
129
|
+
<!-- Session 4 - starts same time (replaced naver with linkedin) -->
|
|
130
|
+
<text x="10" y="114" fill="#a29bfe" font-family="monospace" font-size="11">Session 4: linkedin.com</text>
|
|
131
|
+
<rect x="150" y="104" width="0" height="12" rx="2" fill="url(#successGrad)">
|
|
132
|
+
<animate attributeName="width" values="0;0;20;50;80;105;105;105;105;105;105" dur="10s" repeatCount="indefinite"/>
|
|
139
133
|
</rect>
|
|
140
|
-
<text x="
|
|
141
|
-
<tspan
|
|
142
|
-
<animate attributeName="opacity" values="0;0;0;0;0;1;1" dur="
|
|
134
|
+
<text x="265" y="114" fill="#00b894" font-family="monospace" font-size="11">
|
|
135
|
+
<tspan>✓</tspan>
|
|
136
|
+
<animate attributeName="opacity" values="0;0;0;0;0;1;1;1;1;1;1" dur="10s" repeatCount="indefinite"/>
|
|
143
137
|
</text>
|
|
144
138
|
|
|
145
|
-
<!-- Session 5 -->
|
|
146
|
-
<text x="10" y="
|
|
147
|
-
<rect x="150" y="
|
|
148
|
-
<animate attributeName="width" values="0;0;
|
|
139
|
+
<!-- Session 5 - starts same time -->
|
|
140
|
+
<text x="10" y="136" fill="#a29bfe" font-family="monospace" font-size="11">Session 5: twitter.com</text>
|
|
141
|
+
<rect x="150" y="126" width="0" height="12" rx="2" fill="url(#successGrad)">
|
|
142
|
+
<animate attributeName="width" values="0;0;28;58;88;115;115;115;115;115;115" dur="10s" repeatCount="indefinite"/>
|
|
149
143
|
</rect>
|
|
150
|
-
<text x="
|
|
151
|
-
<tspan
|
|
152
|
-
<animate attributeName="opacity" values="0;0;0;0;0;
|
|
144
|
+
<text x="275" y="136" fill="#00b894" font-family="monospace" font-size="11">
|
|
145
|
+
<tspan>✓</tspan>
|
|
146
|
+
<animate attributeName="opacity" values="0;0;0;0;0;1;1;1;1;1;1" dur="10s" repeatCount="indefinite"/>
|
|
153
147
|
</text>
|
|
154
148
|
|
|
155
|
-
<!--
|
|
149
|
+
<!-- Result summary box -->
|
|
156
150
|
<g>
|
|
157
|
-
<animate attributeName="opacity" values="0;0;0;0;0;0;1" dur="
|
|
158
|
-
<rect x="10" y="
|
|
159
|
-
<text x="
|
|
151
|
+
<animate attributeName="opacity" values="0;0;0;0;0;0;1;1;1;1;1" dur="10s" repeatCount="indefinite"/>
|
|
152
|
+
<rect x="10" y="155" width="340" height="65" rx="6" fill="#1a3a1a"/>
|
|
153
|
+
<text x="180" y="178" text-anchor="middle" fill="#00b894" font-family="system-ui" font-size="12" font-weight="bold">
|
|
160
154
|
All 5 sessions completed in parallel!
|
|
161
155
|
</text>
|
|
162
|
-
<text x="
|
|
163
|
-
Total
|
|
156
|
+
<text x="180" y="198" text-anchor="middle" fill="#55efc4" font-family="monospace" font-size="11">
|
|
157
|
+
Total: 1.4s (Sequential would take 7.0s)
|
|
164
158
|
</text>
|
|
165
|
-
<text x="
|
|
159
|
+
<text x="180" y="214" text-anchor="middle" fill="#81ecec" font-family="system-ui" font-size="11">
|
|
166
160
|
⚡ 5x faster
|
|
167
161
|
</text>
|
|
168
162
|
</g>
|
|
169
163
|
|
|
170
|
-
<!-- Status
|
|
171
|
-
<text x="
|
|
164
|
+
<!-- Status -->
|
|
165
|
+
<text x="180" y="255" text-anchor="middle" fill="#00b894" font-family="system-ui" font-size="13" font-weight="bold">
|
|
172
166
|
✅ 20+ concurrent sessions
|
|
173
167
|
</text>
|
|
174
168
|
</g>
|
|
175
|
-
|
|
176
|
-
<!-- Bottom CTA -->
|
|
177
|
-
<g>
|
|
178
|
-
<rect x="250" y="365" width="300" height="28" rx="14" fill="url(#purpleGrad)"/>
|
|
179
|
-
<text x="400" y="384" text-anchor="middle" fill="#fff" font-family="system-ui" font-size="12" font-weight="bold">
|
|
180
|
-
npm install -g claude-chrome-parallel
|
|
181
|
-
</text>
|
|
182
|
-
</g>
|
|
183
169
|
</svg>
|