claude-chrome-parallel 3.0.0 → 3.0.1
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 +268 -459
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,596 +1,400 @@
|
|
|
1
1
|
# Claude Chrome Parallel
|
|
2
2
|
|
|
3
|
-
> **Run
|
|
3
|
+
> **Run 20+ Claude Code browser sessions simultaneously, without conflicts.**
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/claude-chrome-parallel)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
|
|
8
|
-
## The Power of Authenticated Browser Sessions
|
|
9
|
-
|
|
10
|
-
Unlike traditional web scraping or automation tools, Claude Chrome Parallel operates within **your already logged-in Chrome browser**. This means:
|
|
11
|
-
|
|
12
|
-
- **Access authenticated services** - Gmail, Salesforce, LinkedIn, banking portals, admin dashboards
|
|
13
|
-
- **No credential management** - Session cookies and OAuth tokens are already active
|
|
14
|
-
- **Bypass bot detection** - Uses your real browser profile, not headless automation
|
|
15
|
-
- **Access personalized data** - Dashboards, account settings, member-only content
|
|
16
|
-
|
|
17
|
-
**This is not just a development tool.** While the parallel session feature solves a technical problem for developers, the real power lies in automating *any* web task that requires authentication - tasks that were previously impossible to automate without building complex auth flows.
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Why This Exists
|
|
22
|
-
|
|
23
|
-
[Claude Chrome](https://claude.ai/chrome) lets you debug **production environments while logged in**. But when you try to run multiple Claude Code sessions with browser automation simultaneously:
|
|
24
|
-
|
|
25
8
|
```
|
|
26
|
-
|
|
9
|
+
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
10
|
+
│ │
|
|
11
|
+
│ Claude Code 1 ─► Worker A ─► [Tab1] [Tab2] ─┐ │
|
|
12
|
+
│ (Google account) │ │
|
|
13
|
+
│ │ │
|
|
14
|
+
│ Claude Code 2 ─► Worker B ─► [Tab3] [Tab4] ─┼─► Chrome (single instance) │
|
|
15
|
+
│ (Naver account) │ Port 9222 │
|
|
16
|
+
│ │ │
|
|
17
|
+
│ Claude Code 3 ─► Worker C ─► [Tab5] [Tab6] ─┘ │
|
|
18
|
+
│ (Amazon account) │
|
|
19
|
+
│ │
|
|
20
|
+
│ ✓ Each Worker has isolated cookies/session/storage │
|
|
21
|
+
│ ✓ No more "Detached" errors with concurrent sessions │
|
|
22
|
+
│ ✓ Multiple account logins on same site simultaneously │
|
|
23
|
+
│ │
|
|
24
|
+
└─────────────────────────────────────────────────────────────────────────────┘
|
|
27
25
|
```
|
|
28
26
|
|
|
29
|
-
This happens because the Chrome extension uses **shared internal state**. When Session A takes a screenshot, Session B's connection gets "detached."
|
|
30
|
-
|
|
31
|
-
**Claude Chrome Parallel** solves this by creating **independent CDP connections** for each session:
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
Claude Code 1 ──► Process 1 ──► CDP Connection 1 ──┐
|
|
35
|
-
├──► Chrome (port 9222)
|
|
36
|
-
Claude Code 2 ──► Process 2 ──► CDP Connection 2 ──┘
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
Each session gets isolated browser control. No shared state = No conflicts.
|
|
40
|
-
|
|
41
27
|
---
|
|
42
28
|
|
|
43
|
-
##
|
|
29
|
+
## Core Features
|
|
44
30
|
|
|
45
|
-
|
|
31
|
+
<table>
|
|
32
|
+
<tr>
|
|
33
|
+
<td width="33%" valign="top">
|
|
46
34
|
|
|
47
|
-
|
|
35
|
+
### 🔀 Worker Isolation
|
|
48
36
|
|
|
49
|
-
|
|
37
|
+
Each Worker has a **completely isolated browser context**.
|
|
50
38
|
|
|
51
|
-
|
|
39
|
+
- Separate cookies/sessions
|
|
40
|
+
- Separate localStorage
|
|
41
|
+
- Separate login states
|
|
52
42
|
|
|
53
|
-
|
|
54
|
-
Extract reports from login-required services (Salesforce, HubSpot, Zendesk):
|
|
43
|
+
**Log into multiple accounts on the same site simultaneously!**
|
|
55
44
|
|
|
56
|
-
|
|
57
|
-
|
|
45
|
+
</td>
|
|
46
|
+
<td width="33%" valign="top">
|
|
58
47
|
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
#### Invoice & Receipt Collection
|
|
63
|
-
Automatically download monthly invoices from multiple services:
|
|
48
|
+
### ⚡ Parallel Execution
|
|
64
49
|
|
|
65
|
-
|
|
66
|
-
You: Go to AWS billing console and download last month's invoice PDF
|
|
50
|
+
Run tasks across multiple tabs/Workers **at the same time**.
|
|
67
51
|
|
|
68
|
-
Claude: [Navigates to authenticated AWS console, finds invoice, triggers download]
|
|
69
52
|
```
|
|
53
|
+
Sequential: 1500ms
|
|
54
|
+
Tab1 ████░░░░ 500ms
|
|
55
|
+
Tab2 ████░░░░ 500ms
|
|
56
|
+
Tab3 ████░░░░ 500ms
|
|
70
57
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
You: Go to our HR portal and approve all pending time-off requests from my team
|
|
76
|
-
|
|
77
|
-
Claude: [Navigates to HR system, finds pending items, processes each approval]
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
### 2. Research & Data Collection
|
|
83
|
-
|
|
84
|
-
#### Competitive Analysis (Login-Required Platforms)
|
|
85
|
-
Gather intelligence from premium platforms:
|
|
86
|
-
|
|
58
|
+
Parallel: 500ms
|
|
59
|
+
Tab1 ████░░░░
|
|
60
|
+
Tab2 ████░░░░
|
|
61
|
+
Tab3 ████░░░░
|
|
87
62
|
```
|
|
88
|
-
You: Search LinkedIn Sales Navigator for CTOs at fintech startups in NYC and list their profiles
|
|
89
63
|
|
|
90
|
-
|
|
91
|
-
|
|
64
|
+
</td>
|
|
65
|
+
<td width="33%" valign="top">
|
|
92
66
|
|
|
93
|
-
|
|
94
|
-
Access institutional databases that require authentication:
|
|
67
|
+
### 🔄 Workflow Orchestration
|
|
95
68
|
|
|
96
|
-
|
|
97
|
-
You: Search IEEE Xplore for papers on "transformer architecture" from 2023 and list titles with citations
|
|
69
|
+
**Automatically distribute** complex multi-site tasks.
|
|
98
70
|
|
|
99
|
-
Claude: [Uses your university library login to search and extract paper metadata]
|
|
100
71
|
```
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
72
|
+
workflow_init({
|
|
73
|
+
workers: [
|
|
74
|
+
{name: "amazon", ...},
|
|
75
|
+
{name: "ebay", ...},
|
|
76
|
+
{name: "walmart", ...}
|
|
77
|
+
]
|
|
78
|
+
})
|
|
79
|
+
→ 3 sites run in parallel
|
|
80
|
+
→ Results auto-collected
|
|
105
81
|
```
|
|
106
|
-
You: Check my Schwab portfolio and summarize today's gains/losses by sector
|
|
107
82
|
|
|
108
|
-
|
|
109
|
-
|
|
83
|
+
</td>
|
|
84
|
+
</tr>
|
|
85
|
+
</table>
|
|
110
86
|
|
|
111
87
|
---
|
|
112
88
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
#### Multi-Account Content Publishing
|
|
116
|
-
Post content across platforms:
|
|
117
|
-
|
|
118
|
-
```
|
|
119
|
-
You: Post this announcement to our company LinkedIn, Twitter, and Facebook pages
|
|
120
|
-
|
|
121
|
-
Claude: [Navigates to each platform with saved sessions, composes and publishes posts]
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
#### Message & Inquiry Management
|
|
125
|
-
Handle customer messages with templates:
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
You: Check our Instagram business inbox and reply to product inquiries with our standard response
|
|
129
|
-
|
|
130
|
-
Claude: [Reads DMs, identifies product questions, sends templated responses]
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
#### Analytics Collection
|
|
134
|
-
Gather engagement metrics across platforms:
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
You: Get our Twitter analytics for the past week and summarize engagement trends
|
|
89
|
+
## Comparison
|
|
138
90
|
|
|
139
|
-
|
|
140
|
-
|
|
91
|
+
| | Chrome Extension | Claude Chrome Parallel |
|
|
92
|
+
|---|:---:|:---:|
|
|
93
|
+
| **Concurrent Sessions** | ❌ 1 (Detached error) | ✅ **20+** |
|
|
94
|
+
| **Worker Isolation** | ❌ | ✅ Isolated cookies/sessions |
|
|
95
|
+
| **Multi-account Login** | ❌ | ✅ |
|
|
96
|
+
| **Parallel Execution** | ❌ | ✅ |
|
|
97
|
+
| **Network Simulation** | ❌ | ✅ 3G/4G/offline |
|
|
98
|
+
| **Workflow Orchestration** | ❌ | ✅ |
|
|
99
|
+
| **Auto Chrome Launch** | ❌ | ✅ |
|
|
141
100
|
|
|
142
101
|
---
|
|
143
102
|
|
|
144
|
-
|
|
103
|
+
## Why It Matters
|
|
145
104
|
|
|
146
|
-
|
|
147
|
-
Track prices that require membership login:
|
|
105
|
+
### The Problem
|
|
148
106
|
|
|
149
|
-
|
|
150
|
-
You: Check the member price for this Costco item and compare with last week
|
|
107
|
+
The official Chrome extension has a fatal flaw: **shared internal state**.
|
|
151
108
|
|
|
152
|
-
Claude: [Logs into Costco account, finds item, extracts member-only pricing]
|
|
153
109
|
```
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
110
|
+
Claude Code 1 ─┐
|
|
111
|
+
├─► Chrome Extension (shared state) ─► "Detached" error!
|
|
112
|
+
Claude Code 2 ─┘
|
|
158
113
|
```
|
|
159
|
-
You: Check our Amazon Seller Central for any new orders and list items running low on inventory
|
|
160
114
|
|
|
161
|
-
|
|
162
|
-
```
|
|
115
|
+
When Session A takes a screenshot, Session B's connection breaks. You can only run **one session at a time**.
|
|
163
116
|
|
|
164
|
-
|
|
165
|
-
Respond to customer reviews at scale:
|
|
117
|
+
### The Solution
|
|
166
118
|
|
|
167
|
-
|
|
168
|
-
You: Find all unanswered 4-star reviews on our Shopify store and draft personalized thank-you responses
|
|
119
|
+
Claude Chrome Parallel creates **independent CDP connections** per session:
|
|
169
120
|
|
|
170
|
-
Claude: [Navigates store admin, identifies reviews, generates contextual responses]
|
|
171
121
|
```
|
|
122
|
+
Claude Code 1 ─► CDP Connection 1 ─┐
|
|
123
|
+
├─► Chrome (port 9222)
|
|
124
|
+
Claude Code 2 ─► CDP Connection 2 ─┘
|
|
172
125
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
### 5. Personal Productivity
|
|
176
|
-
|
|
177
|
-
#### Email Organization
|
|
178
|
-
Manage your inbox intelligently:
|
|
179
|
-
|
|
126
|
+
No shared state = No conflicts = 20+ concurrent sessions
|
|
180
127
|
```
|
|
181
|
-
You: In Gmail, find all newsletters from the past month and add the "Newsletters" label
|
|
182
128
|
|
|
183
|
-
|
|
184
|
-
```
|
|
129
|
+
### The Real Power: Authenticated Sessions
|
|
185
130
|
|
|
186
|
-
|
|
187
|
-
Bulk calendar operations:
|
|
131
|
+
Unlike headless automation, this runs in **your actual browser** with all your logins active:
|
|
188
132
|
|
|
189
|
-
|
|
190
|
-
|
|
133
|
+
- ✅ Access Gmail, Salesforce, LinkedIn while logged in
|
|
134
|
+
- ✅ No credential management or auth flows needed
|
|
135
|
+
- ✅ Bypass bot detection (real browser profile)
|
|
136
|
+
- ✅ Multiple accounts simultaneously (Worker isolation)
|
|
191
137
|
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
#### Bookmark & Archive Management
|
|
196
|
-
Organize saved content:
|
|
197
|
-
|
|
198
|
-
```
|
|
199
|
-
You: Save this article to my Notion reading list with its title and summary
|
|
200
|
-
|
|
201
|
-
Claude: [Extracts metadata, navigates to Notion, creates database entry]
|
|
202
|
-
```
|
|
138
|
+
**This isn't just for developers.** Any web task requiring authentication—previously impossible to automate—is now possible with natural language.
|
|
203
139
|
|
|
204
140
|
---
|
|
205
141
|
|
|
206
|
-
|
|
142
|
+
## Quick Start (2 minutes)
|
|
207
143
|
|
|
208
|
-
|
|
209
|
-
Run parallel test scenarios against production:
|
|
144
|
+
### 1. Install
|
|
210
145
|
|
|
211
146
|
```bash
|
|
212
|
-
|
|
213
|
-
claude -p "Test the login flow on https://myapp.com/login"
|
|
214
|
-
|
|
215
|
-
# Terminal 2: Test checkout process (simultaneously!)
|
|
216
|
-
claude -p "Test the checkout flow on https://myapp.com/cart"
|
|
217
|
-
|
|
218
|
-
# Terminal 3: Monitor admin dashboard
|
|
219
|
-
claude -p "Take screenshots of https://myapp.com/admin every 30 seconds"
|
|
147
|
+
npm install -g claude-chrome-parallel
|
|
220
148
|
```
|
|
221
149
|
|
|
222
|
-
|
|
223
|
-
Test performance under various network conditions:
|
|
150
|
+
### 2. Configure Claude Code
|
|
224
151
|
|
|
225
|
-
|
|
226
|
-
You: Simulate 3G network and test if our checkout page loads within 5 seconds
|
|
152
|
+
Add to `~/.claude.json`:
|
|
227
153
|
|
|
228
|
-
|
|
154
|
+
```json
|
|
155
|
+
{
|
|
156
|
+
"mcpServers": {
|
|
157
|
+
"chrome-parallel": {
|
|
158
|
+
"command": "ccp",
|
|
159
|
+
"args": ["serve"]
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
229
163
|
```
|
|
230
164
|
|
|
231
|
-
|
|
232
|
-
Analyze page accessibility via the accessibility tree:
|
|
165
|
+
### 3. Restart Claude Code and use
|
|
233
166
|
|
|
234
167
|
```
|
|
235
|
-
You:
|
|
168
|
+
You: Take a screenshot of https://github.com
|
|
236
169
|
|
|
237
|
-
Claude: [
|
|
170
|
+
Claude: [Auto-launches browser, captures screenshot]
|
|
238
171
|
```
|
|
239
172
|
|
|
173
|
+
> **Tip:** `ccp` is a shorthand for `claude-chrome-parallel`.
|
|
174
|
+
|
|
240
175
|
---
|
|
241
176
|
|
|
242
|
-
|
|
177
|
+
## Usage Examples
|
|
243
178
|
|
|
244
|
-
|
|
245
|
-
Check what data services have stored:
|
|
179
|
+
### Multiple Accounts Simultaneously
|
|
246
180
|
|
|
247
181
|
```
|
|
248
|
-
You:
|
|
182
|
+
You: Create "google-personal" and "google-work" Workers,
|
|
183
|
+
then check the inbox of each Gmail account
|
|
249
184
|
|
|
250
|
-
Claude: [
|
|
185
|
+
Claude: [Creates 2 Workers → Each accesses Gmail with isolated sessions]
|
|
186
|
+
google-personal: Personal account - 3 new emails
|
|
187
|
+
google-work: Work account - 7 new emails
|
|
251
188
|
```
|
|
252
189
|
|
|
253
|
-
|
|
254
|
-
Verify active sessions across services:
|
|
190
|
+
### Price Comparison (Parallel)
|
|
255
191
|
|
|
256
192
|
```
|
|
257
|
-
You:
|
|
193
|
+
You: Search for "iPhone 15" lowest price on Amazon, eBay, and Walmart simultaneously
|
|
258
194
|
|
|
259
|
-
Claude: [
|
|
195
|
+
Claude: [3 sites run in parallel]
|
|
196
|
+
Amazon: $999 (1.2s)
|
|
197
|
+
eBay: $945 (1.1s)
|
|
198
|
+
Walmart: $979 (1.3s)
|
|
199
|
+
Total time: 1.3s (vs 3.6s sequential)
|
|
260
200
|
```
|
|
261
201
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
## Core Features
|
|
265
|
-
|
|
266
|
-
### Isolated Workers (Parallel Browser Contexts)
|
|
267
|
-
|
|
268
|
-
The killer feature of Claude Chrome Parallel is **worker isolation**. Each worker has:
|
|
269
|
-
|
|
270
|
-
- **Separate browser context** with its own cookies, localStorage, and sessionStorage
|
|
271
|
-
- **Independent tab management** - tabs are scoped to their worker
|
|
272
|
-
- **Complete state isolation** - one worker's login doesn't affect another
|
|
202
|
+
### Parallel QA Testing
|
|
273
203
|
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
Claude: [Creates isolated browser context]
|
|
278
|
-
Worker: google-shopping
|
|
279
|
-
Context: Isolated (separate cookies/storage)
|
|
204
|
+
```bash
|
|
205
|
+
# Terminal 1
|
|
206
|
+
claude -p "Test myapp.com/login"
|
|
280
207
|
|
|
281
|
-
|
|
208
|
+
# Terminal 2 (at the same time!)
|
|
209
|
+
claude -p "Test myapp.com/checkout"
|
|
282
210
|
|
|
283
|
-
|
|
284
|
-
|
|
211
|
+
# Terminal 3 (at the same time!)
|
|
212
|
+
claude -p "Monitor myapp.com/admin"
|
|
285
213
|
```
|
|
286
214
|
|
|
287
|
-
|
|
288
|
-
- Log into different accounts simultaneously (e.g., multiple Gmail accounts)
|
|
289
|
-
- Run parallel price comparisons without cookie conflicts
|
|
290
|
-
- Test multi-user scenarios with complete isolation
|
|
215
|
+
---
|
|
291
216
|
|
|
292
|
-
|
|
217
|
+
## Chrome-Sisyphus: Orchestration Skill
|
|
293
218
|
|
|
294
|
-
|
|
219
|
+
For complex multi-site workflows, use the built-in **Chrome-Sisyphus** skill system.
|
|
295
220
|
|
|
296
221
|
```
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
222
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
223
|
+
│ /chrome-sisyphus "Compare iPhone prices on Amazon, eBay, Walmart"
|
|
224
|
+
│ ↓
|
|
225
|
+
│ ┌──────────────────────────────────────────────────────────┐
|
|
226
|
+
│ │ ORCHESTRATOR (Main Session) │
|
|
227
|
+
│ │ • Decompose task → 3 workers │
|
|
228
|
+
│ │ • Allocate sites → Amazon, eBay, Walmart │
|
|
229
|
+
│ │ • Context usage: ~500 tokens (lightweight!) │
|
|
230
|
+
│ └──────────────────────────────────────────────────────────┘
|
|
231
|
+
│ ↓
|
|
232
|
+
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
233
|
+
│ │ Worker 1 │ │ Worker 2 │ │ Worker 3 │
|
|
234
|
+
│ │ (Amazon) │ │ (eBay) │ │ (Walmart) │
|
|
235
|
+
│ │ Background │ │ Background │ │ Background │
|
|
236
|
+
│ │ Task │ │ Task │ │ Task │
|
|
237
|
+
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘
|
|
238
|
+
│ ↓ ↓ ↓
|
|
239
|
+
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
240
|
+
│ │ Scratchpad │ │ Scratchpad │ │ Scratchpad │
|
|
241
|
+
│ │ worker-1.md │ │ worker-2.md │ │ worker-3.md │
|
|
242
|
+
│ └─────────────┘ └─────────────┘ └─────────────┘
|
|
243
|
+
│ ↓
|
|
244
|
+
│ Results collected → Unified report to user
|
|
245
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
304
246
|
```
|
|
305
247
|
|
|
306
|
-
###
|
|
307
|
-
|
|
308
|
-
For complex multi-site operations, use the orchestration tools:
|
|
309
|
-
|
|
310
|
-
```typescript
|
|
311
|
-
// Initialize a parallel workflow
|
|
312
|
-
workflow_init({
|
|
313
|
-
name: "Price Comparison",
|
|
314
|
-
workers: [
|
|
315
|
-
{ name: "amazon", url: "https://amazon.com", task: "Search iPhone 15 price" },
|
|
316
|
-
{ name: "ebay", url: "https://ebay.com", task: "Search iPhone 15 price" },
|
|
317
|
-
{ name: "walmart", url: "https://walmart.com", task: "Search iPhone 15 price" }
|
|
318
|
-
]
|
|
319
|
-
})
|
|
248
|
+
### Why This Matters: Context Isolation
|
|
320
249
|
|
|
321
|
-
|
|
322
|
-
// Results are collected via workflow_collect
|
|
250
|
+
**Without isolation** (traditional approach):
|
|
323
251
|
```
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
| Tool | Description | Key Use Cases |
|
|
332
|
-
|------|-------------|---------------|
|
|
333
|
-
| `navigate` | Navigate to URL, back/forward history | Multi-page workflows |
|
|
334
|
-
| `computer` | Screenshots, mouse clicks, keyboard, scrolling | Non-standard UI interaction |
|
|
335
|
-
| `read_page` | Parse page via accessibility tree | Dynamic content extraction |
|
|
336
|
-
| `find` | Find elements by natural language | "search box", "submit button" |
|
|
337
|
-
| `form_input` | Set form values directly | Fast data entry |
|
|
338
|
-
| `javascript_tool` | Execute arbitrary JavaScript | Complex DOM operations |
|
|
339
|
-
| `network` | Simulate network conditions | Performance testing |
|
|
340
|
-
|
|
341
|
-
### Tab & Worker Management Tools
|
|
342
|
-
|
|
343
|
-
| Tool | Description | Key Use Cases |
|
|
344
|
-
|------|-------------|---------------|
|
|
345
|
-
| `tabs_context_mcp` | Get available tabs by worker | Session overview |
|
|
346
|
-
| `tabs_create_mcp` | Create new tab in worker | Parallel tab operations |
|
|
347
|
-
| `worker_create` | Create isolated browser context | Multi-account scenarios |
|
|
348
|
-
| `worker_list` | List all workers and their tabs | Session management |
|
|
349
|
-
| `worker_delete` | Delete worker and close its tabs | Cleanup |
|
|
350
|
-
|
|
351
|
-
### Orchestration Tools
|
|
352
|
-
|
|
353
|
-
| Tool | Description | Key Use Cases |
|
|
354
|
-
|------|-------------|---------------|
|
|
355
|
-
| `workflow_init` | Initialize multi-worker workflow | Parallel site operations |
|
|
356
|
-
| `workflow_status` | Get orchestration progress | Monitoring |
|
|
357
|
-
| `workflow_collect` | Collect results from workers | Data aggregation |
|
|
358
|
-
| `workflow_cleanup` | Clean up workflow resources | Session cleanup |
|
|
359
|
-
| `worker_update` | Update worker progress | Progress tracking |
|
|
360
|
-
| `worker_complete` | Mark worker as complete | Workflow completion |
|
|
361
|
-
|
|
362
|
-
---
|
|
363
|
-
|
|
364
|
-
## Tested Concurrency
|
|
365
|
-
|
|
366
|
-
| Sessions | Success Rate |
|
|
367
|
-
|----------|-------------|
|
|
368
|
-
| 5 | 100% |
|
|
369
|
-
| 10 | 100% |
|
|
370
|
-
| 15 | 100% |
|
|
371
|
-
| 20 | 100% |
|
|
372
|
-
|
|
373
|
-
---
|
|
374
|
-
|
|
375
|
-
## Installation
|
|
376
|
-
|
|
377
|
-
```bash
|
|
378
|
-
# From npm
|
|
379
|
-
npm install -g claude-chrome-parallel
|
|
380
|
-
|
|
381
|
-
# Or from GitHub
|
|
382
|
-
npm install -g github:shaun0927/claude-chrome-parallel
|
|
252
|
+
Main Session Context:
|
|
253
|
+
├── Worker 1 screenshot (500KB) ─┐
|
|
254
|
+
├── Worker 1 DOM tree (large) │
|
|
255
|
+
├── Worker 2 screenshot (500KB) ├─► Context explosion!
|
|
256
|
+
├── Worker 2 DOM tree (large) │
|
|
257
|
+
└── Worker 3 ... (keeps growing) ─┘
|
|
383
258
|
```
|
|
384
259
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
Add to your Claude Code MCP settings (`~/.claude.json`):
|
|
388
|
-
|
|
389
|
-
```json
|
|
390
|
-
{
|
|
391
|
-
"mcpServers": {
|
|
392
|
-
"chrome-parallel": {
|
|
393
|
-
"command": "ccp",
|
|
394
|
-
"args": ["serve"]
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
}
|
|
260
|
+
**With Chrome-Sisyphus**:
|
|
398
261
|
```
|
|
262
|
+
Main Session: ~500 tokens (stays light)
|
|
263
|
+
├── Task plan
|
|
264
|
+
├── Worker IDs
|
|
265
|
+
└── Status summary only
|
|
399
266
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
---
|
|
405
|
-
|
|
406
|
-
## Usage
|
|
407
|
-
|
|
408
|
-
### Basic Usage
|
|
409
|
-
|
|
410
|
-
Once configured, browser automation works in any Claude Code session:
|
|
267
|
+
Background Tasks: (isolated, don't pollute main)
|
|
268
|
+
├── Worker 1: own context, own screenshots
|
|
269
|
+
├── Worker 2: own context, own screenshots
|
|
270
|
+
└── Worker 3: own context, own screenshots
|
|
411
271
|
|
|
272
|
+
Scratchpad Files: (persistent state)
|
|
273
|
+
└── .agent/chrome-sisyphus/*.md
|
|
412
274
|
```
|
|
413
|
-
You: Take a screenshot of https://github.com
|
|
414
275
|
|
|
415
|
-
|
|
416
|
-
```
|
|
276
|
+
### Usage
|
|
417
277
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
Run multiple Claude Code terminals simultaneously:
|
|
278
|
+
Copy the `.claude/` folder to your project:
|
|
421
279
|
|
|
422
280
|
```bash
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
> Navigate to myapp.com/dashboard and take a screenshot
|
|
426
|
-
|
|
427
|
-
# Terminal 2 (at the same time!)
|
|
428
|
-
claude
|
|
429
|
-
> Fill out the form on myapp.com/contact and submit
|
|
430
|
-
|
|
431
|
-
# Terminal 3 (also at the same time!)
|
|
432
|
-
claude
|
|
433
|
-
> Monitor network requests on myapp.com/api
|
|
281
|
+
cp -r node_modules/claude-chrome-parallel/.claude ~/.claude/
|
|
282
|
+
# Or copy to your project root
|
|
434
283
|
```
|
|
435
284
|
|
|
436
|
-
|
|
285
|
+
Then use in Claude Code:
|
|
437
286
|
|
|
438
|
-
|
|
287
|
+
```
|
|
288
|
+
/chrome-sisyphus Compare laptop prices on Amazon, BestBuy, and Newegg
|
|
289
|
+
```
|
|
439
290
|
|
|
440
|
-
|
|
291
|
+
### Skill Files
|
|
441
292
|
|
|
442
293
|
```
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
294
|
+
.claude/
|
|
295
|
+
├── commands/
|
|
296
|
+
│ └── chrome-sisyphus.md # /chrome-sisyphus command
|
|
297
|
+
└── skills/
|
|
298
|
+
└── chrome-sisyphus/
|
|
299
|
+
├── SKILL.md # Skill overview
|
|
300
|
+
├── AGENTS.md # Agent specifications
|
|
301
|
+
└── agents/
|
|
302
|
+
├── decomposer.md # Task decomposition
|
|
303
|
+
├── worker-agent.md # Worker execution (Ralph Loop)
|
|
304
|
+
└── coordinator.md # Result integration
|
|
446
305
|
```
|
|
447
306
|
|
|
448
|
-
Available presets: `offline`, `slow-2g`, `2g`, `3g`, `4g`, `fast-wifi`, `custom`, `clear`
|
|
449
|
-
|
|
450
307
|
---
|
|
451
308
|
|
|
452
|
-
##
|
|
309
|
+
## MCP Tools
|
|
453
310
|
|
|
454
|
-
###
|
|
311
|
+
### Browser Automation
|
|
455
312
|
|
|
456
|
-
|
|
313
|
+
| Tool | Description |
|
|
314
|
+
|------|-------------|
|
|
315
|
+
| `navigate` | Go to URL, back/forward |
|
|
316
|
+
| `computer` | Screenshot, click, keyboard, scroll |
|
|
317
|
+
| `read_page` | Parse page structure (accessibility tree) |
|
|
318
|
+
| `find` | Find elements by natural language |
|
|
319
|
+
| `form_input` | Set form values directly |
|
|
320
|
+
| `javascript_tool` | Execute JavaScript |
|
|
321
|
+
| `network` | Simulate network conditions |
|
|
457
322
|
|
|
458
|
-
|
|
459
|
-
Claude Code 1 ─┐
|
|
460
|
-
├─► Chrome Extension (shared state) ─► Chrome
|
|
461
|
-
Claude Code 2 ─┘
|
|
462
|
-
↑
|
|
463
|
-
State conflicts here!
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
### The Solution: Independent CDP Connections
|
|
323
|
+
### Worker & Tab Management
|
|
467
324
|
|
|
468
|
-
|
|
325
|
+
| Tool | Description |
|
|
326
|
+
|------|-------------|
|
|
327
|
+
| `worker_create` | Create isolated browser context |
|
|
328
|
+
| `worker_list` | List Workers and their tabs |
|
|
329
|
+
| `worker_delete` | Delete Worker |
|
|
330
|
+
| `tabs_create_mcp` | Create new tab |
|
|
331
|
+
| `tabs_context_mcp` | Get tab info |
|
|
469
332
|
|
|
470
|
-
|
|
471
|
-
Claude Code 1 ─► Process 1 ─► CDP Connection 1 ─┐
|
|
472
|
-
├─► Chrome (port 9222)
|
|
473
|
-
Claude Code 2 ─► Process 2 ─► CDP Connection 2 ─┘
|
|
474
|
-
|
|
475
|
-
Independent connections, no shared state!
|
|
476
|
-
```
|
|
333
|
+
### Workflow Orchestration
|
|
477
334
|
|
|
478
|
-
|
|
335
|
+
| Tool | Description |
|
|
336
|
+
|------|-------------|
|
|
337
|
+
| `workflow_init` | Initialize parallel workflow |
|
|
338
|
+
| `workflow_status` | Check progress |
|
|
339
|
+
| `workflow_collect` | Collect results |
|
|
340
|
+
| `workflow_cleanup` | Clean up resources |
|
|
479
341
|
|
|
480
342
|
---
|
|
481
343
|
|
|
482
344
|
## CLI Commands
|
|
483
345
|
|
|
484
|
-
> **Tip:** Use `ccp` as a shorthand for `claude-chrome-parallel` in all commands below.
|
|
485
|
-
|
|
486
346
|
```bash
|
|
487
|
-
# Start MCP server (
|
|
488
|
-
ccp
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
ccp
|
|
492
|
-
|
|
493
|
-
# Use custom
|
|
494
|
-
ccp serve --port 9223
|
|
495
|
-
|
|
496
|
-
# Check installation health
|
|
497
|
-
ccp doctor
|
|
498
|
-
|
|
499
|
-
# View session status and statistics
|
|
500
|
-
ccp status
|
|
501
|
-
|
|
502
|
-
# View status as JSON (for automation)
|
|
503
|
-
ccp status --json
|
|
504
|
-
|
|
505
|
-
# Clean up stale sessions and old backups
|
|
506
|
-
ccp cleanup --max-age 24 --keep-backups 10
|
|
347
|
+
ccp serve # Start MCP server (auto-run by Claude Code)
|
|
348
|
+
ccp check # Check Chrome connection
|
|
349
|
+
ccp status # View session status
|
|
350
|
+
ccp status --json # JSON output
|
|
351
|
+
ccp doctor # Diagnose installation
|
|
352
|
+
ccp cleanup # Clean up old sessions
|
|
353
|
+
ccp serve --port 9223 # Use custom port
|
|
507
354
|
```
|
|
508
355
|
|
|
509
356
|
---
|
|
510
357
|
|
|
511
|
-
##
|
|
512
|
-
|
|
513
|
-
By default, connects to Chrome on port 9222.
|
|
514
|
-
|
|
515
|
-
**Auto-launch**: If Chrome isn't running with debugging enabled, the package will start it automatically.
|
|
516
|
-
|
|
517
|
-
**Manual start** (if needed):
|
|
358
|
+
## Performance
|
|
518
359
|
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
# Linux
|
|
527
|
-
google-chrome --remote-debugging-port=9222
|
|
528
|
-
```
|
|
360
|
+
| Concurrent Sessions | Success Rate |
|
|
361
|
+
|:---:|:---:|
|
|
362
|
+
| 5 | 100% |
|
|
363
|
+
| 10 | 100% |
|
|
364
|
+
| 15 | 100% |
|
|
365
|
+
| 20 | 100% |
|
|
529
366
|
|
|
530
367
|
---
|
|
531
368
|
|
|
532
369
|
## Additional Features
|
|
533
370
|
|
|
534
|
-
###
|
|
535
|
-
|
|
536
|
-
When running multiple Claude Code instances, they can corrupt `~/.claude.json` due to race conditions. Use the `launch` command to run Claude with isolated config:
|
|
371
|
+
### Network Simulation
|
|
537
372
|
|
|
538
|
-
```
|
|
539
|
-
|
|
540
|
-
ccp launch
|
|
373
|
+
```
|
|
374
|
+
You: Test myapp.com loading time on 3G network
|
|
541
375
|
|
|
542
|
-
|
|
543
|
-
ccp launch --dangerously-skip-permissions
|
|
544
|
-
ccp launch -p "Your prompt"
|
|
376
|
+
Claude: [Applies 3G throttling: 1.5Mbps, 100ms latency]
|
|
545
377
|
```
|
|
546
378
|
|
|
547
|
-
|
|
379
|
+
Presets: `offline`, `slow-2g`, `2g`, `3g`, `4g`, `fast-wifi`, `custom`
|
|
548
380
|
|
|
549
|
-
|
|
381
|
+
### Config Recovery
|
|
550
382
|
|
|
551
383
|
```bash
|
|
552
|
-
# Auto-recover corrupted
|
|
384
|
+
# Auto-recover corrupted .claude.json
|
|
553
385
|
ccp recover
|
|
554
386
|
|
|
555
|
-
# List
|
|
387
|
+
# List backups
|
|
556
388
|
ccp recover --list-backups
|
|
557
389
|
```
|
|
558
390
|
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
## Comparison
|
|
562
|
-
|
|
563
|
-
| Feature | Claude in Chrome (Extension) | Claude Chrome Parallel |
|
|
564
|
-
|---------|------------------------------|----------------------|
|
|
565
|
-
| Multiple sessions | ❌ Detached errors | ✅ Works perfectly |
|
|
566
|
-
| Parallel QA testing | ❌ | ✅ |
|
|
567
|
-
| Connection type | Shared extension state | Independent CDP |
|
|
568
|
-
| Max concurrent sessions | 1 | 20+ tested |
|
|
569
|
-
| Auto Chrome launch | ❌ | ✅ |
|
|
570
|
-
| Network simulation | ❌ | ✅ 3G/4G/offline presets |
|
|
571
|
-
| Session auto-cleanup | ❌ | ✅ TTL-based |
|
|
572
|
-
| Connection pooling | ❌ | ✅ Pre-warmed pages |
|
|
391
|
+
### Session Isolation
|
|
573
392
|
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
- **Authenticated access** - Automate any login-required service
|
|
580
|
-
- **Natural language element finding** - Resilient to DOM changes
|
|
581
|
-
- **JavaScript execution** - Handle complex SPAs
|
|
582
|
-
- **Visual verification** - Screenshots for evidence/debugging
|
|
583
|
-
|
|
584
|
-
### Limitations
|
|
585
|
-
- CAPTCHA/bot detection on some services
|
|
586
|
-
- 2FA re-authentication may require manual intervention
|
|
587
|
-
- For high-volume tasks, native APIs are more efficient when available
|
|
588
|
-
- Rate limiting applies to automated interactions
|
|
589
|
-
|
|
590
|
-
### Recommended Patterns
|
|
591
|
-
1. **Small/critical tasks** → Use this MCP
|
|
592
|
-
2. **High-volume tasks** → Prefer native APIs when available
|
|
593
|
-
3. **Services without APIs** → This MCP is often the only option
|
|
393
|
+
```bash
|
|
394
|
+
# Run Claude with isolated config (prevents race conditions)
|
|
395
|
+
ccp launch
|
|
396
|
+
ccp launch -p "Your prompt"
|
|
397
|
+
```
|
|
594
398
|
|
|
595
399
|
---
|
|
596
400
|
|
|
@@ -599,51 +403,56 @@ ccp recover --list-backups
|
|
|
599
403
|
### Chrome not connecting
|
|
600
404
|
|
|
601
405
|
```bash
|
|
602
|
-
# Check status
|
|
603
406
|
ccp check
|
|
604
|
-
|
|
605
|
-
# Manually start Chrome with debugging
|
|
407
|
+
# Or manually start Chrome
|
|
606
408
|
chrome --remote-debugging-port=9222
|
|
607
409
|
```
|
|
608
410
|
|
|
609
411
|
### Tools not appearing in Claude Code
|
|
610
412
|
|
|
611
|
-
1. Check
|
|
413
|
+
1. Check `~/.claude.json` configuration
|
|
612
414
|
2. Restart Claude Code
|
|
613
415
|
3. Run `/mcp` to verify `chrome-parallel` is listed
|
|
614
416
|
|
|
615
417
|
---
|
|
616
418
|
|
|
419
|
+
## Use Cases
|
|
420
|
+
|
|
421
|
+
- **Business**: ERP/SaaS data extraction, invoice downloads, repetitive task automation
|
|
422
|
+
- **Research**: Login-required platform data collection, academic DB searches
|
|
423
|
+
- **Social Media**: Multi-account posting, message management, analytics
|
|
424
|
+
- **E-commerce**: Member price monitoring, inventory management, review responses
|
|
425
|
+
- **QA Testing**: Parallel scenario testing, network condition testing
|
|
426
|
+
- **Productivity**: Email organization, calendar management, bookmark management
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
617
430
|
## Development
|
|
618
431
|
|
|
619
432
|
```bash
|
|
620
433
|
git clone https://github.com/shaun0927/claude-chrome-parallel.git
|
|
621
434
|
cd claude-chrome-parallel
|
|
622
|
-
|
|
623
435
|
npm install
|
|
624
436
|
npm run build
|
|
625
|
-
|
|
626
|
-
# Test locally
|
|
627
|
-
npm install -g .
|
|
437
|
+
npm test
|
|
628
438
|
```
|
|
629
439
|
|
|
630
440
|
---
|
|
631
441
|
|
|
632
442
|
## License
|
|
633
443
|
|
|
634
|
-
MIT License -
|
|
444
|
+
MIT License - [LICENSE](LICENSE)
|
|
445
|
+
|
|
446
|
+
---
|
|
635
447
|
|
|
636
448
|
## Disclaimer
|
|
637
449
|
|
|
638
|
-
> **This is an unofficial
|
|
639
|
-
> Not affiliated with
|
|
450
|
+
> **This is an unofficial community project.**
|
|
451
|
+
> Not affiliated with Anthropic.
|
|
640
452
|
>
|
|
641
|
-
> "Claude" is a trademark of Anthropic.
|
|
642
|
-
> tooling to enhance the Claude Code experience but is not
|
|
643
|
-
> an official Anthropic product.
|
|
453
|
+
> "Claude" is a trademark of Anthropic.
|
|
644
454
|
|
|
645
455
|
## Acknowledgments
|
|
646
456
|
|
|
647
|
-
- [Anthropic](https://anthropic.com)
|
|
648
|
-
- [
|
|
649
|
-
- [Puppeteer](https://pptr.dev/) for browser automation
|
|
457
|
+
- [Anthropic](https://anthropic.com) - Claude and MCP protocol
|
|
458
|
+
- [Puppeteer](https://pptr.dev/) - Browser automation
|