claude-chrome-parallel 2.3.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 +296 -180
- package/dist/cdp/client.d.ts +27 -3
- package/dist/cdp/client.d.ts.map +1 -1
- package/dist/cdp/client.js +67 -3
- package/dist/cdp/client.js.map +1 -1
- package/dist/cdp/connection-pool.d.ts +5 -1
- package/dist/cdp/connection-pool.d.ts.map +1 -1
- package/dist/cdp/connection-pool.js +7 -1
- package/dist/cdp/connection-pool.js.map +1 -1
- package/dist/chrome/launcher.d.ts.map +1 -1
- package/dist/chrome/launcher.js +6 -0
- package/dist/chrome/launcher.js.map +1 -1
- package/dist/orchestration/state-manager.d.ts +117 -0
- package/dist/orchestration/state-manager.d.ts.map +1 -0
- package/dist/orchestration/state-manager.js +435 -0
- package/dist/orchestration/state-manager.js.map +1 -0
- package/dist/orchestration/workflow-engine.d.ts +96 -0
- package/dist/orchestration/workflow-engine.d.ts.map +1 -0
- package/dist/orchestration/workflow-engine.js +326 -0
- package/dist/orchestration/workflow-engine.js.map +1 -0
- package/dist/session-manager.d.ts +62 -18
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-manager.js +274 -100
- package/dist/session-manager.js.map +1 -1
- package/dist/tools/computer.d.ts.map +1 -1
- package/dist/tools/computer.js +49 -3
- package/dist/tools/computer.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +13 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/navigate.d.ts.map +1 -1
- package/dist/tools/navigate.js +91 -8
- package/dist/tools/navigate.js.map +1 -1
- package/dist/tools/orchestration.d.ts +6 -0
- package/dist/tools/orchestration.d.ts.map +1 -0
- package/dist/tools/orchestration.js +436 -0
- package/dist/tools/orchestration.js.map +1 -0
- package/dist/tools/tabs-context.d.ts.map +1 -1
- package/dist/tools/tabs-context.js +42 -23
- package/dist/tools/tabs-context.js.map +1 -1
- package/dist/tools/tabs-create.d.ts +1 -1
- package/dist/tools/tabs-create.d.ts.map +1 -1
- package/dist/tools/tabs-create.js +30 -6
- package/dist/tools/tabs-create.js.map +1 -1
- package/dist/tools/worker-create.d.ts +7 -0
- package/dist/tools/worker-create.d.ts.map +1 -0
- package/dist/tools/worker-create.js +62 -0
- package/dist/tools/worker-create.js.map +1 -0
- package/dist/tools/worker-delete.d.ts +6 -0
- package/dist/tools/worker-delete.d.ts.map +1 -0
- package/dist/tools/worker-delete.js +80 -0
- package/dist/tools/worker-delete.js.map +1 -0
- package/dist/tools/worker-list.d.ts +6 -0
- package/dist/tools/worker-list.d.ts.map +1 -0
- package/dist/tools/worker-list.js +67 -0
- package/dist/tools/worker-list.js.map +1 -0
- package/dist/types/session.d.ts +35 -2
- package/dist/types/session.d.ts.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,289 +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
|
-
|
|
8
|
+
```
|
|
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
|
+
└─────────────────────────────────────────────────────────────────────────────┘
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Core Features
|
|
30
|
+
|
|
31
|
+
<table>
|
|
32
|
+
<tr>
|
|
33
|
+
<td width="33%" valign="top">
|
|
34
|
+
|
|
35
|
+
### 🔀 Worker Isolation
|
|
9
36
|
|
|
10
|
-
|
|
37
|
+
Each Worker has a **completely isolated browser context**.
|
|
38
|
+
|
|
39
|
+
- Separate cookies/sessions
|
|
40
|
+
- Separate localStorage
|
|
41
|
+
- Separate login states
|
|
42
|
+
|
|
43
|
+
**Log into multiple accounts on the same site simultaneously!**
|
|
44
|
+
|
|
45
|
+
</td>
|
|
46
|
+
<td width="33%" valign="top">
|
|
47
|
+
|
|
48
|
+
### ⚡ Parallel Execution
|
|
49
|
+
|
|
50
|
+
Run tasks across multiple tabs/Workers **at the same time**.
|
|
11
51
|
|
|
12
52
|
```
|
|
13
|
-
|
|
53
|
+
Sequential: 1500ms
|
|
54
|
+
Tab1 ████░░░░ 500ms
|
|
55
|
+
Tab2 ████░░░░ 500ms
|
|
56
|
+
Tab3 ████░░░░ 500ms
|
|
57
|
+
|
|
58
|
+
Parallel: 500ms
|
|
59
|
+
Tab1 ████░░░░
|
|
60
|
+
Tab2 ████░░░░
|
|
61
|
+
Tab3 ████░░░░
|
|
14
62
|
```
|
|
15
63
|
|
|
16
|
-
|
|
64
|
+
</td>
|
|
65
|
+
<td width="33%" valign="top">
|
|
66
|
+
|
|
67
|
+
### 🔄 Workflow Orchestration
|
|
17
68
|
|
|
18
|
-
**
|
|
69
|
+
**Automatically distribute** complex multi-site tasks.
|
|
19
70
|
|
|
20
71
|
```
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
|
24
81
|
```
|
|
25
82
|
|
|
26
|
-
|
|
83
|
+
</td>
|
|
84
|
+
</tr>
|
|
85
|
+
</table>
|
|
27
86
|
|
|
28
87
|
---
|
|
29
88
|
|
|
30
|
-
##
|
|
89
|
+
## Comparison
|
|
90
|
+
|
|
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** | ❌ | ✅ |
|
|
31
100
|
|
|
32
|
-
|
|
101
|
+
---
|
|
33
102
|
|
|
34
|
-
|
|
103
|
+
## Why It Matters
|
|
35
104
|
|
|
36
|
-
|
|
37
|
-
# Terminal 1: Test user login flow
|
|
38
|
-
claude -p "Test the login flow on https://myapp.com/login"
|
|
105
|
+
### The Problem
|
|
39
106
|
|
|
40
|
-
|
|
41
|
-
claude -p "Test the checkout flow on https://myapp.com/cart"
|
|
107
|
+
The official Chrome extension has a fatal flaw: **shared internal state**.
|
|
42
108
|
|
|
43
|
-
|
|
44
|
-
|
|
109
|
+
```
|
|
110
|
+
Claude Code 1 ─┐
|
|
111
|
+
├─► Chrome Extension (shared state) ─► "Detached" error!
|
|
112
|
+
Claude Code 2 ─┘
|
|
45
113
|
```
|
|
46
114
|
|
|
47
|
-
|
|
115
|
+
When Session A takes a screenshot, Session B's connection breaks. You can only run **one session at a time**.
|
|
48
116
|
|
|
49
|
-
|
|
117
|
+
### The Solution
|
|
118
|
+
|
|
119
|
+
Claude Chrome Parallel creates **independent CDP connections** per session:
|
|
50
120
|
|
|
51
|
-
```bash
|
|
52
|
-
# Debug as different users
|
|
53
|
-
Terminal 1: "Log in as admin and check permissions on /settings"
|
|
54
|
-
Terminal 2: "Log in as regular user and verify they can't access /settings"
|
|
55
121
|
```
|
|
122
|
+
Claude Code 1 ─► CDP Connection 1 ─┐
|
|
123
|
+
├─► Chrome (port 9222)
|
|
124
|
+
Claude Code 2 ─► CDP Connection 2 ─┘
|
|
56
125
|
|
|
57
|
-
|
|
126
|
+
No shared state = No conflicts = 20+ concurrent sessions
|
|
127
|
+
```
|
|
58
128
|
|
|
59
|
-
|
|
129
|
+
### The Real Power: Authenticated Sessions
|
|
60
130
|
|
|
61
|
-
|
|
62
|
-
# Run 5 parallel test sessions
|
|
63
|
-
for i in {1..5}; do
|
|
64
|
-
claude -p "Run test suite $i on https://staging.myapp.com" &
|
|
65
|
-
done
|
|
66
|
-
```
|
|
131
|
+
Unlike headless automation, this runs in **your actual browser** with all your logins active:
|
|
67
132
|
|
|
68
|
-
|
|
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)
|
|
69
137
|
|
|
70
|
-
|
|
71
|
-
|----------|-------------|
|
|
72
|
-
| 5 | 100% |
|
|
73
|
-
| 10 | 100% |
|
|
74
|
-
| 15 | 100% |
|
|
75
|
-
| 20 | 100% |
|
|
138
|
+
**This isn't just for developers.** Any web task requiring authentication—previously impossible to automate—is now possible with natural language.
|
|
76
139
|
|
|
77
140
|
---
|
|
78
141
|
|
|
79
|
-
##
|
|
142
|
+
## Quick Start (2 minutes)
|
|
143
|
+
|
|
144
|
+
### 1. Install
|
|
80
145
|
|
|
81
146
|
```bash
|
|
82
|
-
# From npm
|
|
83
147
|
npm install -g claude-chrome-parallel
|
|
84
|
-
|
|
85
|
-
# Or from GitHub
|
|
86
|
-
npm install -g github:shaun0927/claude-chrome-parallel
|
|
87
148
|
```
|
|
88
149
|
|
|
89
|
-
### Configure Claude Code
|
|
150
|
+
### 2. Configure Claude Code
|
|
90
151
|
|
|
91
|
-
Add to
|
|
152
|
+
Add to `~/.claude.json`:
|
|
92
153
|
|
|
93
154
|
```json
|
|
94
155
|
{
|
|
95
156
|
"mcpServers": {
|
|
96
157
|
"chrome-parallel": {
|
|
97
|
-
"command": "
|
|
158
|
+
"command": "ccp",
|
|
98
159
|
"args": ["serve"]
|
|
99
160
|
}
|
|
100
161
|
}
|
|
101
162
|
}
|
|
102
163
|
```
|
|
103
164
|
|
|
104
|
-
Restart Claude Code
|
|
165
|
+
### 3. Restart Claude Code and use
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
You: Take a screenshot of https://github.com
|
|
169
|
+
|
|
170
|
+
Claude: [Auto-launches browser, captures screenshot]
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
> **Tip:** `ccp` is a shorthand for `claude-chrome-parallel`.
|
|
105
174
|
|
|
106
175
|
---
|
|
107
176
|
|
|
108
|
-
## Usage
|
|
177
|
+
## Usage Examples
|
|
109
178
|
|
|
110
|
-
###
|
|
179
|
+
### Multiple Accounts Simultaneously
|
|
111
180
|
|
|
112
|
-
|
|
181
|
+
```
|
|
182
|
+
You: Create "google-personal" and "google-work" Workers,
|
|
183
|
+
then check the inbox of each Gmail account
|
|
113
184
|
|
|
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
|
|
114
188
|
```
|
|
115
|
-
You: Take a screenshot of https://github.com
|
|
116
189
|
|
|
117
|
-
|
|
190
|
+
### Price Comparison (Parallel)
|
|
191
|
+
|
|
118
192
|
```
|
|
193
|
+
You: Search for "iPhone 15" lowest price on Amazon, eBay, and Walmart simultaneously
|
|
119
194
|
|
|
120
|
-
|
|
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)
|
|
200
|
+
```
|
|
121
201
|
|
|
122
|
-
|
|
202
|
+
### Parallel QA Testing
|
|
123
203
|
|
|
124
204
|
```bash
|
|
125
205
|
# Terminal 1
|
|
126
|
-
claude
|
|
127
|
-
> Navigate to myapp.com/dashboard and take a screenshot
|
|
206
|
+
claude -p "Test myapp.com/login"
|
|
128
207
|
|
|
129
208
|
# Terminal 2 (at the same time!)
|
|
130
|
-
claude
|
|
131
|
-
> Fill out the form on myapp.com/contact and submit
|
|
209
|
+
claude -p "Test myapp.com/checkout"
|
|
132
210
|
|
|
133
|
-
# Terminal 3 (
|
|
134
|
-
claude
|
|
135
|
-
> Monitor network requests on myapp.com/api
|
|
211
|
+
# Terminal 3 (at the same time!)
|
|
212
|
+
claude -p "Monitor myapp.com/admin"
|
|
136
213
|
```
|
|
137
214
|
|
|
138
|
-
|
|
215
|
+
---
|
|
139
216
|
|
|
140
|
-
|
|
217
|
+
## Chrome-Sisyphus: Orchestration Skill
|
|
141
218
|
|
|
142
|
-
|
|
143
|
-
|------|-------------|
|
|
144
|
-
| `navigate` | Navigate to URL or use history |
|
|
145
|
-
| `computer` | Screenshots, mouse clicks, keyboard input, scrolling |
|
|
146
|
-
| `read_page` | Read page content via accessibility tree |
|
|
147
|
-
| `find` | Find elements by description |
|
|
148
|
-
| `form_input` | Fill form fields |
|
|
149
|
-
| `javascript_tool` | Execute JavaScript |
|
|
150
|
-
| `tabs_context_mcp` | Get available tabs |
|
|
151
|
-
| `tabs_create_mcp` | Create new tab |
|
|
152
|
-
| `network` | Simulate network conditions (3G, 4G, offline, custom) |
|
|
219
|
+
For complex multi-site workflows, use the built-in **Chrome-Sisyphus** skill system.
|
|
153
220
|
|
|
154
|
-
|
|
221
|
+
```
|
|
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
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
246
|
+
```
|
|
155
247
|
|
|
156
|
-
|
|
248
|
+
### Why This Matters: Context Isolation
|
|
157
249
|
|
|
250
|
+
**Without isolation** (traditional approach):
|
|
158
251
|
```
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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) ─┘
|
|
162
258
|
```
|
|
163
259
|
|
|
164
|
-
|
|
260
|
+
**With Chrome-Sisyphus**:
|
|
261
|
+
```
|
|
262
|
+
Main Session: ~500 tokens (stays light)
|
|
263
|
+
├── Task plan
|
|
264
|
+
├── Worker IDs
|
|
265
|
+
└── Status summary only
|
|
266
|
+
|
|
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
|
|
271
|
+
|
|
272
|
+
Scratchpad Files: (persistent state)
|
|
273
|
+
└── .agent/chrome-sisyphus/*.md
|
|
274
|
+
```
|
|
165
275
|
|
|
166
|
-
|
|
276
|
+
### Usage
|
|
167
277
|
|
|
168
|
-
|
|
278
|
+
Copy the `.claude/` folder to your project:
|
|
169
279
|
|
|
170
|
-
|
|
280
|
+
```bash
|
|
281
|
+
cp -r node_modules/claude-chrome-parallel/.claude ~/.claude/
|
|
282
|
+
# Or copy to your project root
|
|
283
|
+
```
|
|
171
284
|
|
|
172
|
-
|
|
285
|
+
Then use in Claude Code:
|
|
173
286
|
|
|
174
287
|
```
|
|
175
|
-
|
|
176
|
-
├─► Chrome Extension (shared state) ─► Chrome
|
|
177
|
-
Claude Code 2 ─┘
|
|
178
|
-
↑
|
|
179
|
-
State conflicts here!
|
|
288
|
+
/chrome-sisyphus Compare laptop prices on Amazon, BestBuy, and Newegg
|
|
180
289
|
```
|
|
181
290
|
|
|
182
|
-
###
|
|
183
|
-
|
|
184
|
-
Chrome's DevTools Protocol natively supports multiple simultaneous connections:
|
|
291
|
+
### Skill Files
|
|
185
292
|
|
|
186
293
|
```
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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
|
|
192
305
|
```
|
|
193
306
|
|
|
194
|
-
Each Claude Code session spawns its own MCP server process with a dedicated CDP connection.
|
|
195
|
-
|
|
196
307
|
---
|
|
197
308
|
|
|
198
|
-
##
|
|
199
|
-
|
|
200
|
-
```bash
|
|
201
|
-
# Start MCP server (used by Claude Code automatically)
|
|
202
|
-
claude-chrome-parallel serve
|
|
309
|
+
## MCP Tools
|
|
203
310
|
|
|
204
|
-
|
|
205
|
-
claude-chrome-parallel check
|
|
311
|
+
### Browser Automation
|
|
206
312
|
|
|
207
|
-
|
|
208
|
-
|
|
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 |
|
|
209
322
|
|
|
210
|
-
|
|
211
|
-
claude-chrome-parallel doctor
|
|
323
|
+
### Worker & Tab Management
|
|
212
324
|
|
|
213
|
-
|
|
214
|
-
|
|
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 |
|
|
215
332
|
|
|
216
|
-
|
|
217
|
-
claude-chrome-parallel status --json
|
|
333
|
+
### Workflow Orchestration
|
|
218
334
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
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 |
|
|
222
341
|
|
|
223
342
|
---
|
|
224
343
|
|
|
225
|
-
##
|
|
226
|
-
|
|
227
|
-
By default, connects to Chrome on port 9222.
|
|
228
|
-
|
|
229
|
-
**Auto-launch**: If Chrome isn't running with debugging enabled, the package will start it automatically.
|
|
230
|
-
|
|
231
|
-
**Manual start** (if needed):
|
|
344
|
+
## CLI Commands
|
|
232
345
|
|
|
233
346
|
```bash
|
|
234
|
-
#
|
|
235
|
-
|
|
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
|
|
354
|
+
```
|
|
236
355
|
|
|
237
|
-
|
|
238
|
-
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
|
|
356
|
+
---
|
|
239
357
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
358
|
+
## Performance
|
|
359
|
+
|
|
360
|
+
| Concurrent Sessions | Success Rate |
|
|
361
|
+
|:---:|:---:|
|
|
362
|
+
| 5 | 100% |
|
|
363
|
+
| 10 | 100% |
|
|
364
|
+
| 15 | 100% |
|
|
365
|
+
| 20 | 100% |
|
|
243
366
|
|
|
244
367
|
---
|
|
245
368
|
|
|
246
369
|
## Additional Features
|
|
247
370
|
|
|
248
|
-
###
|
|
249
|
-
|
|
250
|
-
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
|
|
251
372
|
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
claude-chrome-parallel launch
|
|
373
|
+
```
|
|
374
|
+
You: Test myapp.com loading time on 3G network
|
|
255
375
|
|
|
256
|
-
|
|
257
|
-
claude-chrome-parallel launch --dangerously-skip-permissions
|
|
258
|
-
claude-chrome-parallel launch -p "Your prompt"
|
|
376
|
+
Claude: [Applies 3G throttling: 1.5Mbps, 100ms latency]
|
|
259
377
|
```
|
|
260
378
|
|
|
261
|
-
|
|
379
|
+
Presets: `offline`, `slow-2g`, `2g`, `3g`, `4g`, `fast-wifi`, `custom`
|
|
262
380
|
|
|
263
|
-
|
|
381
|
+
### Config Recovery
|
|
264
382
|
|
|
265
383
|
```bash
|
|
266
|
-
# Auto-recover corrupted
|
|
267
|
-
|
|
384
|
+
# Auto-recover corrupted .claude.json
|
|
385
|
+
ccp recover
|
|
268
386
|
|
|
269
|
-
# List
|
|
270
|
-
|
|
387
|
+
# List backups
|
|
388
|
+
ccp recover --list-backups
|
|
271
389
|
```
|
|
272
390
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
## Comparison
|
|
391
|
+
### Session Isolation
|
|
276
392
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
| Max concurrent sessions | 1 | 20+ tested |
|
|
283
|
-
| Auto Chrome launch | ❌ | ✅ |
|
|
284
|
-
| Network simulation | ❌ | ✅ 3G/4G/offline presets |
|
|
285
|
-
| Session auto-cleanup | ❌ | ✅ TTL-based |
|
|
286
|
-
| Connection pooling | ❌ | ✅ Pre-warmed pages |
|
|
393
|
+
```bash
|
|
394
|
+
# Run Claude with isolated config (prevents race conditions)
|
|
395
|
+
ccp launch
|
|
396
|
+
ccp launch -p "Your prompt"
|
|
397
|
+
```
|
|
287
398
|
|
|
288
399
|
---
|
|
289
400
|
|
|
@@ -292,51 +403,56 @@ claude-chrome-parallel recover --list-backups
|
|
|
292
403
|
### Chrome not connecting
|
|
293
404
|
|
|
294
405
|
```bash
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
# Manually start Chrome with debugging
|
|
406
|
+
ccp check
|
|
407
|
+
# Or manually start Chrome
|
|
299
408
|
chrome --remote-debugging-port=9222
|
|
300
409
|
```
|
|
301
410
|
|
|
302
411
|
### Tools not appearing in Claude Code
|
|
303
412
|
|
|
304
|
-
1. Check
|
|
413
|
+
1. Check `~/.claude.json` configuration
|
|
305
414
|
2. Restart Claude Code
|
|
306
415
|
3. Run `/mcp` to verify `chrome-parallel` is listed
|
|
307
416
|
|
|
308
417
|
---
|
|
309
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
|
+
|
|
310
430
|
## Development
|
|
311
431
|
|
|
312
432
|
```bash
|
|
313
433
|
git clone https://github.com/shaun0927/claude-chrome-parallel.git
|
|
314
434
|
cd claude-chrome-parallel
|
|
315
|
-
|
|
316
435
|
npm install
|
|
317
436
|
npm run build
|
|
318
|
-
|
|
319
|
-
# Test locally
|
|
320
|
-
npm install -g .
|
|
437
|
+
npm test
|
|
321
438
|
```
|
|
322
439
|
|
|
323
440
|
---
|
|
324
441
|
|
|
325
442
|
## License
|
|
326
443
|
|
|
327
|
-
MIT License -
|
|
444
|
+
MIT License - [LICENSE](LICENSE)
|
|
445
|
+
|
|
446
|
+
---
|
|
328
447
|
|
|
329
448
|
## Disclaimer
|
|
330
449
|
|
|
331
|
-
> **This is an unofficial
|
|
332
|
-
> Not affiliated with
|
|
450
|
+
> **This is an unofficial community project.**
|
|
451
|
+
> Not affiliated with Anthropic.
|
|
333
452
|
>
|
|
334
|
-
> "Claude" is a trademark of Anthropic.
|
|
335
|
-
> tooling to enhance the Claude Code experience but is not
|
|
336
|
-
> an official Anthropic product.
|
|
453
|
+
> "Claude" is a trademark of Anthropic.
|
|
337
454
|
|
|
338
455
|
## Acknowledgments
|
|
339
456
|
|
|
340
|
-
- [Anthropic](https://anthropic.com)
|
|
341
|
-
- [
|
|
342
|
-
- [Puppeteer](https://pptr.dev/) for browser automation
|
|
457
|
+
- [Anthropic](https://anthropic.com) - Claude and MCP protocol
|
|
458
|
+
- [Puppeteer](https://pptr.dev/) - Browser automation
|