claude-chrome-parallel 3.0.3 → 3.4.0
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/LICENSE +21 -21
- package/README.md +398 -464
- package/assets/demo.svg +278 -173
- package/dist/cdp/client.d.ts +60 -2
- package/dist/cdp/client.d.ts.map +1 -1
- package/dist/cdp/client.js +344 -5
- package/dist/cdp/client.js.map +1 -1
- package/dist/cdp/connection-pool.d.ts.map +1 -1
- package/dist/cdp/connection-pool.js +20 -4
- package/dist/cdp/connection-pool.js.map +1 -1
- package/dist/chrome/launcher.d.ts +11 -0
- package/dist/chrome/launcher.d.ts.map +1 -1
- package/dist/chrome/launcher.js +124 -10
- package/dist/chrome/launcher.js.map +1 -1
- package/dist/chrome/pool.d.ts +54 -0
- package/dist/chrome/pool.d.ts.map +1 -0
- package/dist/chrome/pool.js +301 -0
- package/dist/chrome/pool.js.map +1 -0
- package/dist/chrome/profile-detector.d.ts +52 -0
- package/dist/chrome/profile-detector.d.ts.map +1 -0
- package/dist/chrome/profile-detector.js +246 -0
- package/dist/chrome/profile-detector.js.map +1 -0
- package/dist/cli/claude-session.js +15 -15
- package/dist/cli/index.js +162 -37
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/update-check.d.ts +9 -0
- package/dist/cli/update-check.js +141 -0
- package/dist/cli/update-check.js.map +1 -0
- package/dist/config/global.d.ts +31 -0
- package/dist/config/global.d.ts.map +1 -1
- package/dist/config/global.js.map +1 -1
- package/dist/dashboard/activity-tracker.d.ts +60 -0
- package/dist/dashboard/activity-tracker.d.ts.map +1 -0
- package/dist/dashboard/activity-tracker.js +178 -0
- package/dist/dashboard/activity-tracker.js.map +1 -0
- package/dist/dashboard/ansi.d.ts +117 -0
- package/dist/dashboard/ansi.d.ts.map +1 -0
- package/dist/dashboard/ansi.js +199 -0
- package/dist/dashboard/ansi.js.map +1 -0
- package/dist/dashboard/index.d.ts +110 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +412 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/dashboard/keyboard-handler.d.ts +43 -0
- package/dist/dashboard/keyboard-handler.d.ts.map +1 -0
- package/dist/dashboard/keyboard-handler.js +215 -0
- package/dist/dashboard/keyboard-handler.js.map +1 -0
- package/dist/dashboard/operation-controller.d.ts +76 -0
- package/dist/dashboard/operation-controller.d.ts.map +1 -0
- package/dist/dashboard/operation-controller.js +167 -0
- package/dist/dashboard/operation-controller.js.map +1 -0
- package/dist/dashboard/renderer.d.ts +76 -0
- package/dist/dashboard/renderer.d.ts.map +1 -0
- package/dist/dashboard/renderer.js +193 -0
- package/dist/dashboard/renderer.js.map +1 -0
- package/dist/dashboard/types.d.ts +56 -0
- package/dist/dashboard/types.d.ts.map +1 -0
- package/dist/dashboard/types.js +12 -0
- package/dist/dashboard/types.js.map +1 -0
- package/dist/dashboard/views/main-view.d.ts +23 -0
- package/dist/dashboard/views/main-view.d.ts.map +1 -0
- package/dist/dashboard/views/main-view.js +143 -0
- package/dist/dashboard/views/main-view.js.map +1 -0
- package/dist/dashboard/views/sessions-view.d.ts +22 -0
- package/dist/dashboard/views/sessions-view.d.ts.map +1 -0
- package/dist/dashboard/views/sessions-view.js +104 -0
- package/dist/dashboard/views/sessions-view.js.map +1 -0
- package/dist/dashboard/views/tabs-view.d.ts +21 -0
- package/dist/dashboard/views/tabs-view.d.ts.map +1 -0
- package/dist/dashboard/views/tabs-view.js +92 -0
- package/dist/dashboard/views/tabs-view.js.map +1 -0
- package/dist/hints/hint-engine.d.ts +65 -0
- package/dist/hints/hint-engine.d.ts.map +1 -0
- package/dist/hints/hint-engine.js +156 -0
- package/dist/hints/hint-engine.js.map +1 -0
- package/dist/hints/index.d.ts +8 -0
- package/dist/hints/index.d.ts.map +1 -0
- package/dist/hints/index.js +11 -0
- package/dist/hints/index.js.map +1 -0
- package/dist/hints/pattern-learner.d.ts +76 -0
- package/dist/hints/pattern-learner.d.ts.map +1 -0
- package/dist/hints/pattern-learner.js +254 -0
- package/dist/hints/pattern-learner.js.map +1 -0
- package/dist/hints/rules/composite-suggestions.d.ts +6 -0
- package/dist/hints/rules/composite-suggestions.d.ts.map +1 -0
- package/dist/hints/rules/composite-suggestions.js +66 -0
- package/dist/hints/rules/composite-suggestions.js.map +1 -0
- package/dist/hints/rules/error-recovery.d.ts +7 -0
- package/dist/hints/rules/error-recovery.d.ts.map +1 -0
- package/dist/hints/rules/error-recovery.js +47 -0
- package/dist/hints/rules/error-recovery.js.map +1 -0
- package/dist/hints/rules/learned-rules.d.ts +13 -0
- package/dist/hints/rules/learned-rules.d.ts.map +1 -0
- package/dist/hints/rules/learned-rules.js +27 -0
- package/dist/hints/rules/learned-rules.js.map +1 -0
- package/dist/hints/rules/repetition-detection.d.ts +7 -0
- package/dist/hints/rules/repetition-detection.d.ts.map +1 -0
- package/dist/hints/rules/repetition-detection.js +82 -0
- package/dist/hints/rules/repetition-detection.js.map +1 -0
- package/dist/hints/rules/sequence-detection.d.ts +6 -0
- package/dist/hints/rules/sequence-detection.d.ts.map +1 -0
- package/dist/hints/rules/sequence-detection.js +61 -0
- package/dist/hints/rules/sequence-detection.js.map +1 -0
- package/dist/hints/rules/success-hints.d.ts +6 -0
- package/dist/hints/rules/success-hints.d.ts.map +1 -0
- package/dist/hints/rules/success-hints.js +62 -0
- package/dist/hints/rules/success-hints.js.map +1 -0
- package/dist/index.js +190 -55
- package/dist/index.js.map +1 -1
- package/dist/lightpanda/launcher.d.ts +58 -0
- package/dist/lightpanda/launcher.d.ts.map +1 -0
- package/dist/lightpanda/launcher.js +199 -0
- package/dist/lightpanda/launcher.js.map +1 -0
- package/dist/mcp-server.d.ts +38 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +220 -6
- package/dist/mcp-server.js.map +1 -1
- package/dist/orchestration/state-manager.js +46 -46
- package/dist/orchestration/workflow-engine.d.ts +1 -0
- package/dist/orchestration/workflow-engine.d.ts.map +1 -1
- package/dist/orchestration/workflow-engine.js +112 -114
- package/dist/orchestration/workflow-engine.js.map +1 -1
- package/dist/resources/usage-guide.d.ts +13 -0
- package/dist/resources/usage-guide.d.ts.map +1 -0
- package/dist/resources/usage-guide.js +101 -0
- package/dist/resources/usage-guide.js.map +1 -0
- package/dist/router/browser-router.d.ts +51 -0
- package/dist/router/browser-router.d.ts.map +1 -0
- package/dist/router/browser-router.js +178 -0
- package/dist/router/browser-router.js.map +1 -0
- package/dist/router/cookie-sync.d.ts +48 -0
- package/dist/router/cookie-sync.d.ts.map +1 -0
- package/dist/router/cookie-sync.js +106 -0
- package/dist/router/cookie-sync.js.map +1 -0
- package/dist/router/index.d.ts +5 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +10 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/tool-routing-registry.d.ts +21 -0
- package/dist/router/tool-routing-registry.d.ts.map +1 -0
- package/dist/router/tool-routing-registry.js +90 -0
- package/dist/router/tool-routing-registry.js.map +1 -0
- package/dist/session-manager.d.ts +41 -1
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-manager.js +216 -21
- package/dist/session-manager.js.map +1 -1
- package/dist/tools/click-element.d.ts +8 -0
- package/dist/tools/click-element.d.ts.map +1 -0
- package/dist/tools/click-element.js +383 -0
- package/dist/tools/click-element.js.map +1 -0
- package/dist/tools/computer.d.ts.map +1 -1
- package/dist/tools/computer.js +198 -34
- package/dist/tools/computer.js.map +1 -1
- package/dist/tools/console-capture.d.ts +6 -0
- package/dist/tools/console-capture.d.ts.map +1 -0
- package/dist/tools/console-capture.js +320 -0
- package/dist/tools/console-capture.js.map +1 -0
- package/dist/tools/cookies.d.ts +6 -0
- package/dist/tools/cookies.d.ts.map +1 -0
- package/dist/tools/cookies.js +263 -0
- package/dist/tools/cookies.js.map +1 -0
- package/dist/tools/drag-drop.d.ts +6 -0
- package/dist/tools/drag-drop.d.ts.map +1 -0
- package/dist/tools/drag-drop.js +252 -0
- package/dist/tools/drag-drop.js.map +1 -0
- package/dist/tools/emulate-device.d.ts +6 -0
- package/dist/tools/emulate-device.d.ts.map +1 -0
- package/dist/tools/emulate-device.js +221 -0
- package/dist/tools/emulate-device.js.map +1 -0
- package/dist/tools/file-upload.d.ts +6 -0
- package/dist/tools/file-upload.d.ts.map +1 -0
- package/dist/tools/file-upload.js +208 -0
- package/dist/tools/file-upload.js.map +1 -0
- package/dist/tools/fill-form.d.ts +8 -0
- package/dist/tools/fill-form.d.ts.map +1 -0
- package/dist/tools/fill-form.js +342 -0
- package/dist/tools/fill-form.js.map +1 -0
- package/dist/tools/find.d.ts.map +1 -1
- package/dist/tools/find.js +153 -65
- package/dist/tools/find.js.map +1 -1
- package/dist/tools/form-input.js +52 -52
- package/dist/tools/form-input.js.map +1 -1
- package/dist/tools/geolocation.d.ts +6 -0
- package/dist/tools/geolocation.d.ts.map +1 -0
- package/dist/tools/geolocation.js +172 -0
- package/dist/tools/geolocation.js.map +1 -0
- package/dist/tools/http-auth.d.ts +6 -0
- package/dist/tools/http-auth.d.ts.map +1 -0
- package/dist/tools/http-auth.js +136 -0
- package/dist/tools/http-auth.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +50 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/javascript.js +1 -1
- package/dist/tools/javascript.js.map +1 -1
- package/dist/tools/navigate.d.ts.map +1 -1
- package/dist/tools/navigate.js +5 -2
- package/dist/tools/navigate.js.map +1 -1
- package/dist/tools/network.js +4 -4
- package/dist/tools/network.js.map +1 -1
- package/dist/tools/orchestration.d.ts.map +1 -1
- package/dist/tools/orchestration.js +13 -8
- package/dist/tools/orchestration.js.map +1 -1
- package/dist/tools/page-content.d.ts +6 -0
- package/dist/tools/page-content.d.ts.map +1 -0
- package/dist/tools/page-content.js +120 -0
- package/dist/tools/page-content.js.map +1 -0
- package/dist/tools/page-pdf.d.ts +6 -0
- package/dist/tools/page-pdf.d.ts.map +1 -0
- package/dist/tools/page-pdf.js +245 -0
- package/dist/tools/page-pdf.js.map +1 -0
- package/dist/tools/page-reload.d.ts +6 -0
- package/dist/tools/page-reload.d.ts.map +1 -0
- package/dist/tools/page-reload.js +89 -0
- package/dist/tools/page-reload.js.map +1 -0
- package/dist/tools/performance-metrics.d.ts +6 -0
- package/dist/tools/performance-metrics.d.ts.map +1 -0
- package/dist/tools/performance-metrics.js +158 -0
- package/dist/tools/performance-metrics.js.map +1 -0
- package/dist/tools/read-page.d.ts.map +1 -1
- package/dist/tools/read-page.js +4 -2
- package/dist/tools/read-page.js.map +1 -1
- package/dist/tools/request-intercept.d.ts +6 -0
- package/dist/tools/request-intercept.d.ts.map +1 -0
- package/dist/tools/request-intercept.js +439 -0
- package/dist/tools/request-intercept.js.map +1 -0
- package/dist/tools/selector-query.d.ts +6 -0
- package/dist/tools/selector-query.d.ts.map +1 -0
- package/dist/tools/selector-query.js +206 -0
- package/dist/tools/selector-query.js.map +1 -0
- package/dist/tools/storage.d.ts +6 -0
- package/dist/tools/storage.d.ts.map +1 -0
- package/dist/tools/storage.js +264 -0
- package/dist/tools/storage.js.map +1 -0
- package/dist/tools/tabs-close.d.ts +6 -0
- package/dist/tools/tabs-close.d.ts.map +1 -0
- package/dist/tools/tabs-close.js +124 -0
- package/dist/tools/tabs-close.js.map +1 -0
- package/dist/tools/tabs-context.js +1 -1
- package/dist/tools/tabs-context.js.map +1 -1
- package/dist/tools/user-agent.d.ts +6 -0
- package/dist/tools/user-agent.d.ts.map +1 -0
- package/dist/tools/user-agent.js +128 -0
- package/dist/tools/user-agent.js.map +1 -0
- package/dist/tools/wait-and-click.d.ts +8 -0
- package/dist/tools/wait-and-click.d.ts.map +1 -0
- package/dist/tools/wait-and-click.js +290 -0
- package/dist/tools/wait-and-click.js.map +1 -0
- package/dist/tools/wait-for.d.ts +6 -0
- package/dist/tools/wait-for.d.ts.map +1 -0
- package/dist/tools/wait-for.js +248 -0
- package/dist/tools/wait-for.js.map +1 -0
- package/dist/tools/xpath-query.d.ts +6 -0
- package/dist/tools/xpath-query.d.ts.map +1 -0
- package/dist/tools/xpath-query.js +230 -0
- package/dist/tools/xpath-query.js.map +1 -0
- package/dist/types/browser-backend.d.ts +30 -0
- package/dist/types/browser-backend.d.ts.map +1 -0
- package/dist/types/browser-backend.js +9 -0
- package/dist/types/browser-backend.js.map +1 -0
- package/dist/types/profile.d.ts +76 -0
- package/dist/types/profile.d.ts.map +1 -0
- package/dist/types/profile.js +35 -0
- package/dist/types/profile.js.map +1 -0
- package/dist/types/session.d.ts +7 -3
- package/dist/types/session.d.ts.map +1 -1
- package/package.json +78 -75
- package/dist/master/index.d.ts +0 -18
- package/dist/master/index.d.ts.map +0 -1
- package/dist/master/index.js +0 -75
- package/dist/master/index.js.map +0 -1
- package/dist/master/ipc-server.d.ts +0 -21
- package/dist/master/ipc-server.d.ts.map +0 -1
- package/dist/master/ipc-server.js +0 -175
- package/dist/master/ipc-server.js.map +0 -1
- package/dist/master/request-handler.d.ts +0 -17
- package/dist/master/request-handler.d.ts.map +0 -1
- package/dist/master/request-handler.js +0 -134
- package/dist/master/request-handler.js.map +0 -1
- package/dist/master/session-registry.d.ts +0 -120
- package/dist/master/session-registry.d.ts.map +0 -1
- package/dist/master/session-registry.js +0 -247
- package/dist/master/session-registry.js.map +0 -1
- package/dist/shared/ipc-constants.d.ts +0 -16
- package/dist/shared/ipc-constants.d.ts.map +0 -1
- package/dist/shared/ipc-constants.js +0 -66
- package/dist/shared/ipc-constants.js.map +0 -1
- package/dist/shared/ipc-protocol.d.ts +0 -33
- package/dist/shared/ipc-protocol.d.ts.map +0 -1
- package/dist/shared/ipc-protocol.js +0 -20
- package/dist/shared/ipc-protocol.js.map +0 -1
- package/dist/worker/auto-master.d.ts +0 -24
- package/dist/worker/auto-master.d.ts.map +0 -1
- package/dist/worker/auto-master.js +0 -135
- package/dist/worker/auto-master.js.map +0 -1
- package/dist/worker/index.d.ts +0 -25
- package/dist/worker/index.d.ts.map +0 -1
- package/dist/worker/index.js +0 -93
- package/dist/worker/index.js.map +0 -1
- package/dist/worker/ipc-client.d.ts +0 -26
- package/dist/worker/ipc-client.d.ts.map +0 -1
- package/dist/worker/ipc-client.js +0 -211
- package/dist/worker/ipc-client.js.map +0 -1
- package/dist/worker/remote-session-manager.d.ts +0 -114
- package/dist/worker/remote-session-manager.d.ts.map +0 -1
- package/dist/worker/remote-session-manager.js +0 -151
- package/dist/worker/remote-session-manager.js.map +0 -1
- package/dist/worker/tools.d.ts +0 -7
- package/dist/worker/tools.d.ts.map +0 -1
- package/dist/worker/tools.js +0 -340
- package/dist/worker/tools.js.map +0 -1
- package/dist/worker/worker-mcp-server.d.ts +0 -70
- package/dist/worker/worker-mcp-server.d.ts.map +0 -1
- package/dist/worker/worker-mcp-server.js +0 -295
- package/dist/worker/worker-mcp-server.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,464 +1,398 @@
|
|
|
1
|
-
# Claude Chrome Parallel
|
|
2
|
-
|
|
3
|
-
> **
|
|
4
|
-
|
|
5
|
-
[](https://opensource.org/licenses/MIT)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
</
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
###
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
You:
|
|
175
|
-
|
|
176
|
-
Claude: [
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
#
|
|
212
|
-
claude -p "
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
| Tool | Description |
|
|
320
|
-
|------|-------------|
|
|
321
|
-
| `
|
|
322
|
-
| `
|
|
323
|
-
| `
|
|
324
|
-
| `
|
|
325
|
-
| `
|
|
326
|
-
| `
|
|
327
|
-
| `
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
|
342
|
-
|
|
343
|
-
| `
|
|
344
|
-
| `
|
|
345
|
-
| `
|
|
346
|
-
| `
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
```bash
|
|
400
|
-
# Run Claude with isolated config (prevents race conditions)
|
|
401
|
-
ccp launch
|
|
402
|
-
ccp launch -p "Your prompt"
|
|
403
|
-
```
|
|
404
|
-
|
|
405
|
-
---
|
|
406
|
-
|
|
407
|
-
## Troubleshooting
|
|
408
|
-
|
|
409
|
-
### Chrome not connecting
|
|
410
|
-
|
|
411
|
-
```bash
|
|
412
|
-
ccp check
|
|
413
|
-
# Or manually start Chrome
|
|
414
|
-
chrome --remote-debugging-port=9222
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
### Tools not appearing in Claude Code
|
|
418
|
-
|
|
419
|
-
1. Check `~/.claude.json` configuration
|
|
420
|
-
2. Restart Claude Code
|
|
421
|
-
3. Run `/mcp` to verify `chrome-parallel` is listed
|
|
422
|
-
|
|
423
|
-
---
|
|
424
|
-
|
|
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
|
-
## Development
|
|
437
|
-
|
|
438
|
-
```bash
|
|
439
|
-
git clone https://github.com/shaun0927/claude-chrome-parallel.git
|
|
440
|
-
cd claude-chrome-parallel
|
|
441
|
-
npm install
|
|
442
|
-
npm run build
|
|
443
|
-
npm test
|
|
444
|
-
```
|
|
445
|
-
|
|
446
|
-
---
|
|
447
|
-
|
|
448
|
-
## License
|
|
449
|
-
|
|
450
|
-
MIT License - [LICENSE](LICENSE)
|
|
451
|
-
|
|
452
|
-
---
|
|
453
|
-
|
|
454
|
-
## Disclaimer
|
|
455
|
-
|
|
456
|
-
> **This is an unofficial community project.**
|
|
457
|
-
> Not affiliated with Anthropic.
|
|
458
|
-
>
|
|
459
|
-
> "Claude" is a trademark of Anthropic.
|
|
460
|
-
|
|
461
|
-
## Acknowledgments
|
|
462
|
-
|
|
463
|
-
- [Anthropic](https://anthropic.com) - Claude and MCP protocol
|
|
464
|
-
- [Puppeteer](https://pptr.dev/) - Browser automation
|
|
1
|
+
# Claude Chrome Parallel
|
|
2
|
+
|
|
3
|
+
> **Ultrafast parallel browser MCP.**
|
|
4
|
+
|
|
5
|
+
[](https://github.com/shaun0927/claude-chrome-parallel/releases)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
Automate your **actual Chrome** — with all your logins, cookies, and sessions intact. Run **20+ parallel browser sessions** from Claude Code without logging in to anything, ever again.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
"Screenshot my AWS, Stripe, Vercel, GitHub, and Slack dashboards"
|
|
12
|
+
|
|
13
|
+
Playwright MCP (sequential, login each site):
|
|
14
|
+
AWS 🔐━━━━━━━━━━━━━━ login 45s ━━━━ task
|
|
15
|
+
Stripe 🔐━━━━━━━━━━━━━━ login 40s ━━━━ task
|
|
16
|
+
Vercel 🔐━━━━━━━━━━━━━━ login 50s ━━━━ task
|
|
17
|
+
GitHub 🔐━━━━━━━━━━━━ login 35s ━━━━ task
|
|
18
|
+
Slack 🔐━━━━━━━━━━━━ login 40s ━━━━ task
|
|
19
|
+
Total: ~250s | Memory: ~2.5 GB (5 browser instances)
|
|
20
|
+
|
|
21
|
+
CCP (parallel, zero auth):
|
|
22
|
+
AWS ━━━━ 3s ✓
|
|
23
|
+
Stripe ━━━━ 3s ✓
|
|
24
|
+
Vercel ━━━━ 3s ✓
|
|
25
|
+
GitHub ━━━━ 3s ✓
|
|
26
|
+
Slack ━━━━ 3s ✓
|
|
27
|
+
Total: ~3s | Memory: ~300 MB (1 Chrome, shared contexts)
|
|
28
|
+
|
|
29
|
+
80x faster. 8x less memory. Zero logins.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
<p align="center">
|
|
33
|
+
<img src="https://raw.githubusercontent.com/shaun0927/claude-chrome-parallel/main/assets/demo.svg" alt="Playwright MCP vs CCP — 5 authenticated sites comparison" width="100%">
|
|
34
|
+
</p>
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Why CCP Is Fast
|
|
39
|
+
|
|
40
|
+
The speed advantage **compounds** with every site. Playwright MCP has two bottlenecks that multiply:
|
|
41
|
+
|
|
42
|
+
| Sites | Playwright MCP | CCP | Speedup |
|
|
43
|
+
|:-----:|:--------------:|:---:|:-------:|
|
|
44
|
+
| 1 | ~50s (login + task) | ~3s | **17x** |
|
|
45
|
+
| 3 | ~155s (sequential) | ~3s (parallel) | **50x** |
|
|
46
|
+
| 5 | ~250s | ~3s | **80x** |
|
|
47
|
+
| 10 | ~500s | ~3s | **160x** |
|
|
48
|
+
|
|
49
|
+
**Why?** Playwright launches a blank browser per site. Each needs: navigate → type email → type password → solve 2FA → wait for redirect. That's 30-120s **per site**, and it's **sequential**.
|
|
50
|
+
|
|
51
|
+
CCP connects to your existing Chrome. You're already logged into everything. Workers run in parallel. The task that takes 250s with Playwright takes 3s with CCP.
|
|
52
|
+
|
|
53
|
+
### Memory
|
|
54
|
+
|
|
55
|
+
Playwright spawns a **separate browser process** per session (~500MB each). Five sites = 2.5GB.
|
|
56
|
+
|
|
57
|
+
CCP uses **one Chrome** with lightweight browser contexts (like incognito windows sharing the same process). Five Workers = ~300MB total. That's **8x less memory** — and it stays flat whether you run 5 or 20 Workers.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Core Features
|
|
62
|
+
|
|
63
|
+
<table>
|
|
64
|
+
<tr>
|
|
65
|
+
<td width="25%" valign="top">
|
|
66
|
+
|
|
67
|
+
### Zero Auth
|
|
68
|
+
|
|
69
|
+
Your actual Chrome profile. Gmail, Slack, AWS, Stripe — **already logged in**.
|
|
70
|
+
|
|
71
|
+
No credentials. No OAuth. No 2FA loops.
|
|
72
|
+
|
|
73
|
+
</td>
|
|
74
|
+
<td width="25%" valign="top">
|
|
75
|
+
|
|
76
|
+
### 20+ Parallel Workers
|
|
77
|
+
|
|
78
|
+
All Workers run simultaneously in isolated browser contexts.
|
|
79
|
+
|
|
80
|
+
5 sites in ~3s, not ~250s.
|
|
81
|
+
|
|
82
|
+
</td>
|
|
83
|
+
<td width="25%" valign="top">
|
|
84
|
+
|
|
85
|
+
### 8x Less Memory
|
|
86
|
+
|
|
87
|
+
One Chrome process, shared contexts. Not N separate browser instances.
|
|
88
|
+
|
|
89
|
+
5 Workers ≈ 300MB, not 2.5GB.
|
|
90
|
+
|
|
91
|
+
</td>
|
|
92
|
+
<td width="25%" valign="top">
|
|
93
|
+
|
|
94
|
+
### Worker Isolation
|
|
95
|
+
|
|
96
|
+
Each Worker gets separate cookies, localStorage, and sessions.
|
|
97
|
+
|
|
98
|
+
**5 accounts on the same site. Simultaneously.**
|
|
99
|
+
|
|
100
|
+
</td>
|
|
101
|
+
</tr>
|
|
102
|
+
</table>
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Quick Start
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# One command. That's it.
|
|
110
|
+
npx claude-chrome-parallel setup
|
|
111
|
+
|
|
112
|
+
# Restart Claude Code — just say "ccp".
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Updates are automatic.** The MCP server runs via `npx`, so you always get the latest version.
|
|
116
|
+
|
|
117
|
+
<details>
|
|
118
|
+
<summary>Manual setup</summary>
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"mcpServers": {
|
|
123
|
+
"chrome-parallel": {
|
|
124
|
+
"command": "npx",
|
|
125
|
+
"args": ["-y", "claude-chrome-parallel", "serve", "--auto-launch"]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Or: `claude mcp add claude-chrome-parallel -- npx -y claude-chrome-parallel serve --auto-launch`
|
|
132
|
+
|
|
133
|
+
</details>
|
|
134
|
+
|
|
135
|
+
<details>
|
|
136
|
+
<summary>Installation scope</summary>
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
npx claude-chrome-parallel setup # Global — all projects (default)
|
|
140
|
+
npx claude-chrome-parallel setup --scope project # Project — this directory only
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Global writes to `~/.claude.json`. Project writes to `.mcp.json` in the current directory.
|
|
144
|
+
|
|
145
|
+
</details>
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Just Say `ccp`
|
|
150
|
+
|
|
151
|
+
After setup, **`ccp` is your magic word.** No flags, no config, no boilerplate. Just tell Claude what you want with "ccp" and it happens.
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
You: ccp screenshot my Gmail inbox
|
|
155
|
+
Claude: [Already logged in. Screenshot taken. Done.]
|
|
156
|
+
|
|
157
|
+
You: ccp check my AWS billing and Stripe revenue at the same time
|
|
158
|
+
Claude: [2 Workers, parallel, 2.1s — both dashboards captured]
|
|
159
|
+
|
|
160
|
+
You: use ccp to compare iPhone prices on Amazon, eBay, and Walmart
|
|
161
|
+
Claude: [3 Workers, 3 sites, simultaneously]
|
|
162
|
+
Amazon: $999 | eBay: $945 ← lowest | Walmart: $979
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**How it works**: CCP uses the MCP protocol's native `instructions` field to teach Claude the keyword automatically. No CLAUDE.md injection. No hooks. Just install and go.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## What You Can Do
|
|
170
|
+
|
|
171
|
+
### Multi-Account Operations
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
You: ccp check my personal and work Gmail at the same time
|
|
175
|
+
|
|
176
|
+
Claude: [Creates 2 isolated Workers]
|
|
177
|
+
Personal account: 3 unread emails
|
|
178
|
+
Work account: 7 unread emails
|
|
179
|
+
Time: 2.1s (parallel)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Price Comparison Across Sites
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
You: ccp find the cheapest iPhone 15 on Amazon, eBay, and Walmart
|
|
186
|
+
|
|
187
|
+
Claude: [3 Workers, 3 sites, simultaneously]
|
|
188
|
+
Amazon: $999
|
|
189
|
+
eBay: $945 ← lowest
|
|
190
|
+
Walmart: $979
|
|
191
|
+
Time: 1.3s total (not 3.9s)
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Authenticated Dashboard Monitoring
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
You: ccp screenshot my AWS billing, Stripe dashboard, and Vercel usage
|
|
198
|
+
|
|
199
|
+
Claude: [All 3 require login — but you're already authenticated]
|
|
200
|
+
aws-billing.png ✓
|
|
201
|
+
stripe-revenue.png ✓
|
|
202
|
+
vercel-usage.png ✓
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Parallel QA Testing
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# 5 tests, 5 terminals, all at once
|
|
209
|
+
claude -p "ccp test login flow on myapp.com" # Worker 1
|
|
210
|
+
claude -p "ccp test checkout on myapp.com" # Worker 2
|
|
211
|
+
claude -p "ccp test admin panel on myapp.com" # Worker 3
|
|
212
|
+
claude -p "ccp test mobile view on myapp.com" # Worker 4
|
|
213
|
+
claude -p "ccp test form validation on myapp.com" # Worker 5
|
|
214
|
+
|
|
215
|
+
# Sequential: ~5 minutes. Parallel with CCP: ~1 minute.
|
|
216
|
+
# That's your entire smoke test suite before lunch.
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Comparison
|
|
222
|
+
|
|
223
|
+
| | Playwright MCP | Browserbase | Chrome Extension | **CCP** |
|
|
224
|
+
|---|:---:|:---:|:---:|:---:|
|
|
225
|
+
| **Auth overhead per site** | ❌ 30-120s | ❌ 30-120s | ✅ 0s | **✅ 0s** |
|
|
226
|
+
| **5-site authenticated task** | ~250s | ~250s + cost | N/A (1 session) | **~3s** |
|
|
227
|
+
| **Memory (5 sessions)** | ~2.5 GB | N/A (cloud) | N/A | **~300 MB** |
|
|
228
|
+
| **Uses your Chrome logins** | ❌ Blank browser | ❌ Cloud browser | ✅ | **✅** |
|
|
229
|
+
| **Concurrent sessions** | ⚠️ Limited | ✅ (paid) | ❌ 1 (crashes) | **✅ 20+** |
|
|
230
|
+
| **Multi-account isolation** | ❌ | ✅ (paid) | ❌ | **✅** |
|
|
231
|
+
| **Runs locally** | ✅ | ❌ Cloud only | ✅ | **✅** |
|
|
232
|
+
| **Free** | ✅ | ❌ | ✅ | **✅** |
|
|
233
|
+
| **No bot detection** | ❌ Headless | ❌ Fingerprinted | ✅ | **✅** |
|
|
234
|
+
| **Device emulation** | ✅ | ✅ | ❌ | **✅** |
|
|
235
|
+
| **Network simulation** | ✅ | ❌ | ❌ | **✅** |
|
|
236
|
+
| **Workflow orchestration** | ❌ | ❌ | ❌ | **✅** |
|
|
237
|
+
| **Adaptive Guidance** | ❌ | ❌ | ❌ | **✅** |
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Adaptive Guidance
|
|
242
|
+
|
|
243
|
+
Every tool response includes contextual hints that prevent the LLM from wasting time on wrong approaches. 21 static rules + an adaptive memory system that learns from your usage patterns.
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
click_element → Error: "ref not found"
|
|
247
|
+
_hint: "Refs expire after page changes. Use read_page for fresh refs."
|
|
248
|
+
→ LLM self-corrects. No retry loop. No wasted tokens.
|
|
249
|
+
|
|
250
|
+
navigate → title contains "Login"
|
|
251
|
+
_hint: "Login page detected. Use fill_form for credentials."
|
|
252
|
+
→ LLM skips straight to form filling.
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**Adaptive Memory**: The system observes which tool resolves each error type. After seeing the same recovery pattern 3 times, it promotes it to a permanent hint — persisted across sessions in `.chrome-parallel/hints/learned-patterns.json`.
|
|
256
|
+
|
|
257
|
+
<details>
|
|
258
|
+
<summary>Rule priority tiers</summary>
|
|
259
|
+
|
|
260
|
+
| Tier | Priority | Examples |
|
|
261
|
+
|------|----------|---------|
|
|
262
|
+
| Error Recovery | 100 | Stale refs, tab not found, timeouts, null elements |
|
|
263
|
+
| Composite Hints | 200 | find+click → click_element, multiple form_input → fill_form |
|
|
264
|
+
| Repetition Detection | 250 | Same-tool error streaks, A↔B oscillation loops |
|
|
265
|
+
| Sequence Detection | 300 | Login page detection, navigate→screenshot without wait |
|
|
266
|
+
| Learned Patterns | 350 | Automatically discovered error→recovery correlations |
|
|
267
|
+
| Success Hints | 400 | Post-click navigation check, form submission verification |
|
|
268
|
+
|
|
269
|
+
</details>
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Tools (36)
|
|
274
|
+
|
|
275
|
+
<details>
|
|
276
|
+
<summary><b>Browser Automation</b> — navigate, click, type, find</summary>
|
|
277
|
+
|
|
278
|
+
| Tool | Description |
|
|
279
|
+
|------|-------------|
|
|
280
|
+
| `navigate` | Go to URL, back/forward |
|
|
281
|
+
| `computer` | Screenshot, click, keyboard, scroll |
|
|
282
|
+
| `read_page` | Parse page structure (accessibility tree) |
|
|
283
|
+
| `find` | Find elements by natural language |
|
|
284
|
+
| `click_element` | Find and click in one step |
|
|
285
|
+
| `wait_and_click` | Wait for element, then click |
|
|
286
|
+
| `form_input` | Set individual form values |
|
|
287
|
+
| `fill_form` | Fill multiple fields + submit in one call |
|
|
288
|
+
| `javascript_tool` | Execute JavaScript |
|
|
289
|
+
|
|
290
|
+
</details>
|
|
291
|
+
|
|
292
|
+
<details>
|
|
293
|
+
<summary><b>Browser Environment</b> — device, network, location</summary>
|
|
294
|
+
|
|
295
|
+
| Tool | Description |
|
|
296
|
+
|------|-------------|
|
|
297
|
+
| `user_agent` | Set User-Agent (chrome, safari, googlebot, etc.) |
|
|
298
|
+
| `geolocation` | Override location (seoul, tokyo, new-york, etc.) |
|
|
299
|
+
| `emulate_device` | Device emulation (iphone-14, ipad-pro, pixel-7, etc.) |
|
|
300
|
+
| `network` | Simulate network conditions (3G, 4G, offline) |
|
|
301
|
+
|
|
302
|
+
</details>
|
|
303
|
+
|
|
304
|
+
<details>
|
|
305
|
+
<summary><b>Page Operations</b> — content, PDF, reload, wait</summary>
|
|
306
|
+
|
|
307
|
+
| Tool | Description |
|
|
308
|
+
|------|-------------|
|
|
309
|
+
| `page_reload` | Reload page (optional cache bypass) |
|
|
310
|
+
| `page_content` | Get HTML content from page or element |
|
|
311
|
+
| `page_pdf` | Generate PDF (A4, Letter, landscape) |
|
|
312
|
+
| `wait_for` | Wait for selector, navigation, function, or timeout |
|
|
313
|
+
|
|
314
|
+
</details>
|
|
315
|
+
|
|
316
|
+
<details>
|
|
317
|
+
<summary><b>DOM, Storage, Debugging, Advanced</b></summary>
|
|
318
|
+
|
|
319
|
+
| Tool | Description |
|
|
320
|
+
|------|-------------|
|
|
321
|
+
| `selector_query` | Query elements by CSS selector |
|
|
322
|
+
| `xpath_query` | Query elements by XPath expression |
|
|
323
|
+
| `cookies` | Get/set/delete browser cookies |
|
|
324
|
+
| `storage` | Manage localStorage/sessionStorage |
|
|
325
|
+
| `console_capture` | Capture console logs (with type filtering) |
|
|
326
|
+
| `performance_metrics` | Performance metrics (FCP, load time, JS heap) |
|
|
327
|
+
| `request_intercept` | Intercept/block/log network requests |
|
|
328
|
+
| `drag_drop` | Drag and drop by selector or coordinates |
|
|
329
|
+
| `file_upload` | Upload files to file input elements |
|
|
330
|
+
| `http_auth` | Set HTTP Basic Authentication credentials |
|
|
331
|
+
|
|
332
|
+
</details>
|
|
333
|
+
|
|
334
|
+
<details>
|
|
335
|
+
<summary><b>Workers & Orchestration</b></summary>
|
|
336
|
+
|
|
337
|
+
| Tool | Description |
|
|
338
|
+
|------|-------------|
|
|
339
|
+
| `worker_create` | Create isolated browser context |
|
|
340
|
+
| `worker_list` | List Workers and their tabs |
|
|
341
|
+
| `worker_update` | Update worker progress |
|
|
342
|
+
| `worker_complete` | Mark worker as complete |
|
|
343
|
+
| `worker_delete` | Delete Worker |
|
|
344
|
+
| `tabs_create_mcp` | Create new tab |
|
|
345
|
+
| `tabs_context_mcp` | Get tab info |
|
|
346
|
+
| `tabs_close` | Close tabs |
|
|
347
|
+
| `workflow_init` | Initialize parallel workflow |
|
|
348
|
+
| `workflow_status` | Check workflow progress |
|
|
349
|
+
| `workflow_collect` | Collect results from all Workers |
|
|
350
|
+
| `workflow_cleanup` | Clean up workflow resources |
|
|
351
|
+
|
|
352
|
+
</details>
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## CLI
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
npx claude-chrome-parallel setup # Auto-configure (global)
|
|
360
|
+
npx claude-chrome-parallel setup --scope project # Auto-configure (project only)
|
|
361
|
+
npx claude-chrome-parallel serve --auto-launch # Start with auto Chrome launch
|
|
362
|
+
npx claude-chrome-parallel serve --headless-shell # Headless mode (15-30% less memory)
|
|
363
|
+
npx claude-chrome-parallel serve -p <port> # Custom debugging port (default: 9222)
|
|
364
|
+
npx claude-chrome-parallel doctor # Diagnose installation
|
|
365
|
+
npx claude-chrome-parallel status # View sessions
|
|
366
|
+
npx claude-chrome-parallel cleanup # Clean up old sessions
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
<details>
|
|
372
|
+
<summary><b>Performance Optimizations</b></summary>
|
|
373
|
+
|
|
374
|
+
- **Memory** — Renderer process limits, JS heap caps, forced GC on tab close
|
|
375
|
+
- **Screenshots** — WebP format (3-5x smaller than PNG)
|
|
376
|
+
- **Cookie Bridge** — 30s TTL cache for auth cookie sharing (~10ms vs 2-6s)
|
|
377
|
+
- **Find Tool** — Batched CDP queries (~100ms vs ~400ms)
|
|
378
|
+
- **Headless Shell** — `--headless-shell` for 15-30% less memory
|
|
379
|
+
|
|
380
|
+
</details>
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## Development
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
git clone https://github.com/shaun0927/claude-chrome-parallel.git
|
|
388
|
+
cd claude-chrome-parallel
|
|
389
|
+
npm install && npm run build && npm test
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
## License
|
|
393
|
+
|
|
394
|
+
MIT — [LICENSE](LICENSE)
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
> **Disclaimer**: Unofficial community project. Not affiliated with Anthropic. "Claude" is a trademark of Anthropic.
|