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.
Files changed (2) hide show
  1. package/README.md +268 -459
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,596 +1,400 @@
1
1
  # Claude Chrome Parallel
2
2
 
3
- > **Run multiple Claude Code browser sessions in parallel - no more "Detached" errors.**
3
+ > **Run 20+ Claude Code browser sessions simultaneously, without conflicts.**
4
4
 
5
5
  [![npm version](https://badge.fury.io/js/claude-chrome-parallel.svg)](https://www.npmjs.com/package/claude-chrome-parallel)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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
- Error: Detached while handling command
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
- ## Use Cases
29
+ ## Core Features
44
30
 
45
- ### Beyond Development: Real-World Automation
31
+ <table>
32
+ <tr>
33
+ <td width="33%" valign="top">
46
34
 
47
- The combination of **authenticated sessions** + **natural language control** + **parallel execution** enables automation scenarios that were previously impractical:
35
+ ### 🔀 Worker Isolation
48
36
 
49
- ---
37
+ Each Worker has a **completely isolated browser context**.
50
38
 
51
- ### 1. Business Process Automation
39
+ - Separate cookies/sessions
40
+ - Separate localStorage
41
+ - Separate login states
52
42
 
53
- #### ERP/SaaS Dashboard Data Collection
54
- Extract reports from login-required services (Salesforce, HubSpot, Zendesk):
43
+ **Log into multiple accounts on the same site simultaneously!**
55
44
 
56
- ```
57
- You: Navigate to our Salesforce dashboard and extract this month's sales pipeline data
45
+ </td>
46
+ <td width="33%" valign="top">
58
47
 
59
- Claude: [Navigates to authenticated Salesforce, parses tables, extracts structured data]
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
- #### Repetitive Admin Tasks
72
- Process approvals, submit forms, update records:
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
- Claude: [Uses your LinkedIn Premium session to search and extract profile data]
91
- ```
64
+ </td>
65
+ <td width="33%" valign="top">
92
66
 
93
- #### Academic Database Research
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
- #### Financial & Real Estate Data
103
- Access member-only pricing and transaction data:
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
- Claude: [Navigates authenticated brokerage account, extracts and analyzes positions]
109
- ```
83
+ </td>
84
+ </tr>
85
+ </table>
110
86
 
111
87
  ---
112
88
 
113
- ### 3. Social Media Management
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
- Claude: [Accesses Twitter Analytics dashboard, extracts metrics, provides summary]
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
- ### 4. E-Commerce Automation
103
+ ## Why It Matters
145
104
 
146
- #### Member Price Monitoring
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
- #### Inventory & Order Management
156
- Manage seller accounts across marketplaces:
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
- Claude: [Navigates seller dashboard, extracts order and inventory data]
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
- #### Review Management
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
- Claude: [Searches Gmail, selects matching emails, applies labels]
184
- ```
129
+ ### The Real Power: Authenticated Sessions
185
130
 
186
- #### Calendar Management
187
- Bulk calendar operations:
131
+ Unlike headless automation, this runs in **your actual browser** with all your logins active:
188
132
 
189
- ```
190
- You: Add these 5 meetings to my Google Calendar with the details from this spreadsheet
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
- Claude: [Creates each calendar event with proper dates, times, and descriptions]
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
- ### 6. QA & Testing
142
+ ## Quick Start (2 minutes)
207
143
 
208
- #### Multi-Session QA Testing
209
- Run parallel test scenarios against production:
144
+ ### 1. Install
210
145
 
211
146
  ```bash
212
- # Terminal 1: Test user login flow
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
- #### Network Condition Testing
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
- Claude: [Applies network throttling, measures load time, reports results]
154
+ ```json
155
+ {
156
+ "mcpServers": {
157
+ "chrome-parallel": {
158
+ "command": "ccp",
159
+ "args": ["serve"]
160
+ }
161
+ }
162
+ }
229
163
  ```
230
164
 
231
- #### Accessibility Auditing
232
- Analyze page accessibility via the accessibility tree:
165
+ ### 3. Restart Claude Code and use
233
166
 
234
167
  ```
235
- You: Check the accessibility tree of our signup form and identify any missing labels
168
+ You: Take a screenshot of https://github.com
236
169
 
237
- Claude: [Parses full accessibility tree, identifies WCAG compliance issues]
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
- ### 7. Security & Compliance
177
+ ## Usage Examples
243
178
 
244
- #### Personal Data Audit
245
- Check what data services have stored:
179
+ ### Multiple Accounts Simultaneously
246
180
 
247
181
  ```
248
- You: Navigate to my Google Account privacy settings and list all third-party apps with access
182
+ You: Create "google-personal" and "google-work" Workers,
183
+ then check the inbox of each Gmail account
249
184
 
250
- Claude: [Navigates account settings, extracts connected app list]
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
- #### Session Verification
254
- Verify active sessions across services:
190
+ ### Price Comparison (Parallel)
255
191
 
256
192
  ```
257
- You: Check my GitHub security settings and list all active sessions
193
+ You: Search for "iPhone 15" lowest price on Amazon, eBay, and Walmart simultaneously
258
194
 
259
- Claude: [Navigates GitHub settings, extracts session information]
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
- You: Create a worker named "google-shopping"
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
- You: In google-shopping worker, search for laptops
208
+ # Terminal 2 (at the same time!)
209
+ claude -p "Test myapp.com/checkout"
282
210
 
283
- Claude: [Opens tab in google-shopping worker context]
284
- Any login, preferences, or state is isolated to this worker
211
+ # Terminal 3 (at the same time!)
212
+ claude -p "Monitor myapp.com/admin"
285
213
  ```
286
214
 
287
- **Why This Matters:**
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
- ### Automatic Task Distribution
217
+ ## Chrome-Sisyphus: Orchestration Skill
293
218
 
294
- When you have multiple tabs open, operations are automatically distributed:
219
+ For complex multi-site workflows, use the built-in **Chrome-Sisyphus** skill system.
295
220
 
296
221
  ```
297
- You: Take screenshots of all open tabs
298
-
299
- Claude: [Parallel execution across all tabs]
300
- Tab 1: Screenshot taken (500ms)
301
- Tab 2: Screenshot taken (480ms)
302
- Tab 3: Screenshot taken (520ms)
303
- Total: ~500ms (parallel) vs ~1500ms (sequential)
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
- ### Workflow Orchestration
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
- // Each worker executes in parallel with isolated contexts
322
- // Results are collected via workflow_collect
250
+ **Without isolation** (traditional approach):
323
251
  ```
324
-
325
- ---
326
-
327
- ## Available MCP Tools
328
-
329
- ### Browser Automation Tools
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
- ### Configure Claude Code
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
- > **Note:** `ccp` is a shorthand alias. You can also use the full name `claude-chrome-parallel`.
401
-
402
- Restart Claude Code for changes to take effect.
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
- Claude: [Uses chrome-parallel tools automatically]
416
- ```
276
+ ### Usage
417
277
 
418
- ### Multiple Parallel Sessions
419
-
420
- Run multiple Claude Code terminals simultaneously:
278
+ Copy the `.claude/` folder to your project:
421
279
 
422
280
  ```bash
423
- # Terminal 1
424
- claude
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
- All sessions work without conflicts!
285
+ Then use in Claude Code:
437
286
 
438
- ### Network Simulation
287
+ ```
288
+ /chrome-sisyphus Compare laptop prices on Amazon, BestBuy, and Newegg
289
+ ```
439
290
 
440
- Test how your app behaves under different network conditions:
291
+ ### Skill Files
441
292
 
442
293
  ```
443
- You: Simulate 3G network and navigate to myapp.com
444
-
445
- Claude: [Applies 3G throttling: 1.5Mbps down, 750Kbps up, 100ms latency]
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
- ## How It Works
309
+ ## MCP Tools
453
310
 
454
- ### The Problem: Shared Extension State
311
+ ### Browser Automation
455
312
 
456
- The official Chrome extension maintains a single shared state:
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
- Chrome's DevTools Protocol natively supports multiple simultaneous connections:
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
- Each Claude Code session spawns its own MCP server process with a dedicated CDP connection.
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 (used by Claude Code automatically)
488
- ccp serve
489
-
490
- # Check Chrome connection status
491
- ccp check
492
-
493
- # Use custom Chrome debugging port
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
- ## Chrome Configuration
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
- ```bash
520
- # Windows
521
- chrome.exe --remote-debugging-port=9222
522
-
523
- # macOS
524
- /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
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
- ### Session Isolation (Bonus)
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
- ```bash
539
- # Run Claude Code with isolated config directory
540
- ccp launch
373
+ ```
374
+ You: Test myapp.com loading time on 3G network
541
375
 
542
- # Pass any claude flags
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
- ### Config Recovery
379
+ Presets: `offline`, `slow-2g`, `2g`, `3g`, `4g`, `fast-wifi`, `custom`
548
380
 
549
- If your `.claude.json` gets corrupted:
381
+ ### Config Recovery
550
382
 
551
383
  ```bash
552
- # Auto-recover corrupted config
384
+ # Auto-recover corrupted .claude.json
553
385
  ccp recover
554
386
 
555
- # List available backups
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
- ## Considerations
577
-
578
- ### Strengths
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 MCP config in `~/.claude.json`
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 - see [LICENSE](LICENSE) for details.
444
+ MIT License - [LICENSE](LICENSE)
445
+
446
+ ---
635
447
 
636
448
  ## Disclaimer
637
449
 
638
- > **This is an unofficial, community-maintained project.**
639
- > Not affiliated with or endorsed by Anthropic.
450
+ > **This is an unofficial community project.**
451
+ > Not affiliated with Anthropic.
640
452
  >
641
- > "Claude" is a trademark of Anthropic. This project provides
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) for Claude and the MCP protocol
648
- - [Claude Code](https://github.com/anthropics/claude-code) for the CLI
649
- - [Puppeteer](https://pptr.dev/) for browser automation
457
+ - [Anthropic](https://anthropic.com) - Claude and MCP protocol
458
+ - [Puppeteer](https://pptr.dev/) - Browser automation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-chrome-parallel",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "MCP server for parallel Claude Code browser sessions - no more 'Detached' errors",
5
5
  "main": "dist/index.js",
6
6
  "bin": {