claude-chrome-parallel 1.0.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 -0
- package/README.md +501 -0
- package/assets/demo.svg +278 -0
- package/dist/cdp/client.d.ts +218 -0
- package/dist/cdp/client.d.ts.map +1 -0
- package/dist/cdp/client.js +797 -0
- package/dist/cdp/client.js.map +1 -0
- package/dist/cdp/connection-pool.d.ts +125 -0
- package/dist/cdp/connection-pool.d.ts.map +1 -0
- package/dist/cdp/connection-pool.js +443 -0
- package/dist/cdp/connection-pool.js.map +1 -0
- package/dist/cdp/screenshot-scheduler.d.ts +54 -0
- package/dist/cdp/screenshot-scheduler.d.ts.map +1 -0
- package/dist/cdp/screenshot-scheduler.js +87 -0
- package/dist/cdp/screenshot-scheduler.js.map +1 -0
- package/dist/chrome/launcher.d.ts +55 -0
- package/dist/chrome/launcher.d.ts.map +1 -0
- package/dist/chrome/launcher.js +383 -0
- package/dist/chrome/launcher.js.map +1 -0
- 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.d.ts +11 -0
- package/dist/cli/claude-session.js +349 -0
- package/dist/cli/claude-session.js.map +1 -0
- package/dist/cli/index.d.ts +14 -0
- package/dist/cli/index.js +858 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/install.d.ts +16 -0
- package/dist/cli/install.js +185 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/uninstall.d.ts +7 -0
- package/dist/cli/uninstall.js +126 -0
- package/dist/cli/uninstall.js.map +1 -0
- 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/config-recovery.d.ts +69 -0
- package/dist/config/config-recovery.d.ts.map +1 -0
- package/dist/config/config-recovery.js +302 -0
- package/dist/config/config-recovery.js.map +1 -0
- package/dist/config/global.d.ts +49 -0
- package/dist/config/global.d.ts.map +1 -0
- package/dist/config/global.js +24 -0
- package/dist/config/global.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +23 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/session-isolator.d.ts +76 -0
- package/dist/config/session-isolator.d.ts.map +1 -0
- package/dist/config/session-isolator.js +268 -0
- package/dist/config/session-isolator.js.map +1 -0
- package/dist/dashboard/activity-tracker.d.ts +76 -0
- package/dist/dashboard/activity-tracker.d.ts.map +1 -0
- package/dist/dashboard/activity-tracker.js +219 -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 +77 -0
- package/dist/hints/hint-engine.d.ts.map +1 -0
- package/dist/hints/hint-engine.js +191 -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 +55 -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 +89 -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.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +272 -0
- package/dist/index.js.map +1 -0
- 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 +129 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +641 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/memory/domain-memory.d.ts +68 -0
- package/dist/memory/domain-memory.d.ts.map +1 -0
- package/dist/memory/domain-memory.js +227 -0
- package/dist/memory/domain-memory.js.map +1 -0
- package/dist/orchestration/plan-executor.d.ts +19 -0
- package/dist/orchestration/plan-executor.d.ts.map +1 -0
- package/dist/orchestration/plan-executor.js +284 -0
- package/dist/orchestration/plan-executor.js.map +1 -0
- package/dist/orchestration/plan-registry.d.ts +55 -0
- package/dist/orchestration/plan-registry.d.ts.map +1 -0
- package/dist/orchestration/plan-registry.js +255 -0
- package/dist/orchestration/plan-registry.js.map +1 -0
- package/dist/orchestration/state-manager.d.ts +127 -0
- package/dist/orchestration/state-manager.d.ts.map +1 -0
- package/dist/orchestration/state-manager.js +438 -0
- package/dist/orchestration/state-manager.js.map +1 -0
- package/dist/orchestration/workflow-engine.d.ts +162 -0
- package/dist/orchestration/workflow-engine.d.ts.map +1 -0
- package/dist/orchestration/workflow-engine.js +731 -0
- package/dist/orchestration/workflow-engine.js.map +1 -0
- 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 +251 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +912 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/tools/batch-execute.d.ts +11 -0
- package/dist/tools/batch-execute.d.ts.map +1 -0
- package/dist/tools/batch-execute.js +226 -0
- package/dist/tools/batch-execute.js.map +1 -0
- 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 +455 -0
- package/dist/tools/click-element.js.map +1 -0
- package/dist/tools/computer.d.ts +6 -0
- package/dist/tools/computer.d.ts.map +1 -0
- package/dist/tools/computer.js +638 -0
- package/dist/tools/computer.js.map +1 -0
- 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 +6 -0
- package/dist/tools/find.d.ts.map +1 -0
- package/dist/tools/find.js +330 -0
- package/dist/tools/find.js.map +1 -0
- package/dist/tools/form-input.d.ts +6 -0
- package/dist/tools/form-input.d.ts.map +1 -0
- package/dist/tools/form-input.js +181 -0
- package/dist/tools/form-input.js.map +1 -0
- 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 +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +104 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/javascript.d.ts +6 -0
- package/dist/tools/javascript.d.ts.map +1 -0
- package/dist/tools/javascript.js +138 -0
- package/dist/tools/javascript.js.map +1 -0
- package/dist/tools/lightweight-scroll.d.ts +11 -0
- package/dist/tools/lightweight-scroll.d.ts.map +1 -0
- package/dist/tools/lightweight-scroll.js +266 -0
- package/dist/tools/lightweight-scroll.js.map +1 -0
- package/dist/tools/memory.d.ts +10 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +141 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/navigate.d.ts +6 -0
- package/dist/tools/navigate.d.ts.map +1 -0
- package/dist/tools/navigate.js +241 -0
- package/dist/tools/navigate.js.map +1 -0
- package/dist/tools/network.d.ts +6 -0
- package/dist/tools/network.d.ts.map +1 -0
- package/dist/tools/network.js +215 -0
- package/dist/tools/network.js.map +1 -0
- package/dist/tools/orchestration.d.ts +6 -0
- package/dist/tools/orchestration.d.ts.map +1 -0
- package/dist/tools/orchestration.js +746 -0
- package/dist/tools/orchestration.js.map +1 -0
- 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 +6 -0
- package/dist/tools/read-page.d.ts.map +1 -0
- package/dist/tools/read-page.js +287 -0
- package/dist/tools/read-page.js.map +1 -0
- 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/shutdown.d.ts +12 -0
- package/dist/tools/shutdown.d.ts.map +1 -0
- package/dist/tools/shutdown.js +120 -0
- package/dist/tools/shutdown.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.d.ts +6 -0
- package/dist/tools/tabs-context.d.ts.map +1 -0
- package/dist/tools/tabs-context.js +92 -0
- package/dist/tools/tabs-context.js.map +1 -0
- package/dist/tools/tabs-create.d.ts +6 -0
- package/dist/tools/tabs-create.d.ts.map +1 -0
- package/dist/tools/tabs-create.js +73 -0
- package/dist/tools/tabs-create.js.map +1 -0
- 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/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/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/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +54 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +14 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/plan-cache.d.ts +121 -0
- package/dist/types/plan-cache.d.ts.map +1 -0
- package/dist/types/plan-cache.js +9 -0
- package/dist/types/plan-cache.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 +65 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +6 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/tool-manifest.d.ts +52 -0
- package/dist/types/tool-manifest.d.ts.map +1 -0
- package/dist/types/tool-manifest.js +37 -0
- package/dist/types/tool-manifest.js.map +1 -0
- package/dist/utils/atomic-file.d.ts +50 -0
- package/dist/utils/atomic-file.d.ts.map +1 -0
- package/dist/utils/atomic-file.js +217 -0
- package/dist/utils/atomic-file.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +22 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/json-validator.d.ts +40 -0
- package/dist/utils/json-validator.d.ts.map +1 -0
- package/dist/utils/json-validator.js +295 -0
- package/dist/utils/json-validator.js.map +1 -0
- package/dist/utils/ref-id-manager.d.ts +26 -0
- package/dist/utils/ref-id-manager.d.ts.map +1 -0
- package/dist/utils/ref-id-manager.js +81 -0
- package/dist/utils/ref-id-manager.js.map +1 -0
- package/dist/utils/request-queue.d.ts +37 -0
- package/dist/utils/request-queue.d.ts.map +1 -0
- package/dist/utils/request-queue.js +110 -0
- package/dist/utils/request-queue.js.map +1 -0
- package/package.json +78 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,501 @@
|
|
|
1
|
+
# Claude Chrome Parallel (CCP)
|
|
2
|
+
|
|
3
|
+
> **Ultrafast parallel browser MCP for Chrome** — v1.0.0 released Feb 21, 2026
|
|
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
|
+
This is not a speed optimization. It's a **structural change**.
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
Playwright MCP: [blank browser] → login → task → close (repeat per site)
|
|
44
|
+
CCP: [your Chrome] → task (already logged in)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Playwright creates a new browser per site. Each one needs: navigate → type email → type password → solve 2FA → wait for redirect. That's 30-120s per site, and it's sequential. **You're spending 95% of the time on authentication, not the actual task.**
|
|
48
|
+
|
|
49
|
+
CCP connects to your existing Chrome via CDP. You're already logged in to everything. Workers run in parallel. The speed advantage **compounds** with every site:
|
|
50
|
+
|
|
51
|
+
| Sites | Playwright MCP | CCP | Speedup |
|
|
52
|
+
|:-----:|:--------------:|:---:|:-------:|
|
|
53
|
+
| 1 | ~50s (login + task) | ~3s | **17x** |
|
|
54
|
+
| 3 | ~155s (sequential) | ~3s (parallel) | **50x** |
|
|
55
|
+
| 5 | ~250s | ~3s | **80x** |
|
|
56
|
+
| 10 | ~500s | ~3s | **160x** |
|
|
57
|
+
|
|
58
|
+
### Memory
|
|
59
|
+
|
|
60
|
+
Playwright spawns a **separate browser process** per session (~500MB each). Five sites = 2.5GB.
|
|
61
|
+
|
|
62
|
+
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.
|
|
63
|
+
|
|
64
|
+
### Bot Detection Immunity
|
|
65
|
+
|
|
66
|
+
Playwright runs headless browsers with detectable fingerprints. Cloudflare, reCAPTCHA, and anti-bot systems can flag them.
|
|
67
|
+
|
|
68
|
+
CCP uses **your actual Chrome** — real fingerprint, real cookies, real browsing history. It's indistinguishable from you clicking around manually, because it literally is your browser.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Core Features
|
|
73
|
+
|
|
74
|
+
<table>
|
|
75
|
+
<tr>
|
|
76
|
+
<td width="25%" valign="top">
|
|
77
|
+
|
|
78
|
+
### Zero Auth
|
|
79
|
+
|
|
80
|
+
Your actual Chrome profile. Gmail, Slack, AWS, Stripe — **already logged in**.
|
|
81
|
+
|
|
82
|
+
No credentials. No OAuth. No 2FA loops.
|
|
83
|
+
|
|
84
|
+
</td>
|
|
85
|
+
<td width="25%" valign="top">
|
|
86
|
+
|
|
87
|
+
### 20+ Parallel Workers
|
|
88
|
+
|
|
89
|
+
All Workers run simultaneously in isolated browser contexts.
|
|
90
|
+
|
|
91
|
+
5 sites in ~3s, not ~250s.
|
|
92
|
+
|
|
93
|
+
</td>
|
|
94
|
+
<td width="25%" valign="top">
|
|
95
|
+
|
|
96
|
+
### 8x Less Memory
|
|
97
|
+
|
|
98
|
+
One Chrome process, shared contexts. Not N separate browser instances.
|
|
99
|
+
|
|
100
|
+
5 Workers ≈ 300MB, not 2.5GB.
|
|
101
|
+
|
|
102
|
+
</td>
|
|
103
|
+
<td width="25%" valign="top">
|
|
104
|
+
|
|
105
|
+
### Worker Isolation
|
|
106
|
+
|
|
107
|
+
Each Worker gets separate cookies, localStorage, and sessions.
|
|
108
|
+
|
|
109
|
+
**5 accounts on the same site. Simultaneously.**
|
|
110
|
+
|
|
111
|
+
</td>
|
|
112
|
+
</tr>
|
|
113
|
+
</table>
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Quick Start
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# One command. That's it.
|
|
121
|
+
npx claude-chrome-parallel setup
|
|
122
|
+
|
|
123
|
+
# Restart Claude Code — just say "ccp".
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Updates are automatic.** The MCP server runs via `npx`, so you always get the latest version.
|
|
127
|
+
|
|
128
|
+
<details>
|
|
129
|
+
<summary>Manual setup</summary>
|
|
130
|
+
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"mcpServers": {
|
|
134
|
+
"chrome-parallel": {
|
|
135
|
+
"command": "npx",
|
|
136
|
+
"args": ["-y", "claude-chrome-parallel", "serve", "--auto-launch"]
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Or: `claude mcp add claude-chrome-parallel -- npx -y claude-chrome-parallel serve --auto-launch`
|
|
143
|
+
|
|
144
|
+
</details>
|
|
145
|
+
|
|
146
|
+
<details>
|
|
147
|
+
<summary>Installation scope</summary>
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
npx claude-chrome-parallel setup # Global — all projects (default)
|
|
151
|
+
npx claude-chrome-parallel setup --scope project # Project — this directory only
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Global writes to `~/.claude.json`. Project writes to `.mcp.json` in the current directory.
|
|
155
|
+
|
|
156
|
+
</details>
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Just Say `ccp`
|
|
161
|
+
|
|
162
|
+
After setup, **`ccp` is your magic word.** No flags, no config, no boilerplate. Just tell Claude what you want with "ccp" and it happens.
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
You: ccp screenshot my Gmail inbox
|
|
166
|
+
Claude: [Already logged in. Screenshot taken. Done.]
|
|
167
|
+
|
|
168
|
+
You: ccp check my AWS billing and Stripe revenue at the same time
|
|
169
|
+
Claude: [2 Workers, parallel, 2.1s — both dashboards captured]
|
|
170
|
+
|
|
171
|
+
You: use ccp to compare iPhone prices on Amazon, eBay, and Walmart
|
|
172
|
+
Claude: [3 Workers, 3 sites, simultaneously]
|
|
173
|
+
Amazon: $999 | eBay: $945 ← lowest | Walmart: $979
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**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.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## What You Can Do
|
|
181
|
+
|
|
182
|
+
### 20-Site Parallel Crawling
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
You: ccp crawl these 20 competitor sites and extract their pricing
|
|
186
|
+
|
|
187
|
+
Claude: [20 Workers, 20 sites, simultaneously — all in your logged-in Chrome]
|
|
188
|
+
site-01: $49/mo ✓ (1.2s)
|
|
189
|
+
site-02: $59/mo ✓ (0.9s)
|
|
190
|
+
...
|
|
191
|
+
site-20: $39/mo ✓ (1.4s)
|
|
192
|
+
Total: 2.8s | Sequential: ~60s | Speedup: 21x
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Each Worker runs in an isolated browser context. One Chrome process, 20 parallel sessions, ~300MB total. Not 20 separate browsers eating 10GB of RAM.
|
|
196
|
+
|
|
197
|
+
### Multi-Cloud Dashboard Monitoring
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
You: ccp screenshot my AWS billing, GCP console, Azure portal, Stripe,
|
|
201
|
+
and Datadog — all at once
|
|
202
|
+
|
|
203
|
+
Claude: [5 Workers — already logged into every cloud provider]
|
|
204
|
+
aws-billing.png $12,847/mo ✓
|
|
205
|
+
gcp-console.png $8,291/mo ✓
|
|
206
|
+
azure-portal.png $3,104/mo ✓
|
|
207
|
+
stripe-revenue.png $47,230 MRR ✓
|
|
208
|
+
datadog-metrics.png 99.7% uptime ✓
|
|
209
|
+
Time: 3.1s (not 10+ minutes of login screens)
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
No OAuth tokens. No service accounts. No API keys to rotate. You're already logged in.
|
|
213
|
+
|
|
214
|
+
### Automated Regression Testing (QA)
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Full regression suite — 10 flows, 10 Workers, one command
|
|
218
|
+
claude -p "ccp test these 10 critical flows on staging.myapp.com:
|
|
219
|
+
login, signup, checkout, search, profile-edit,
|
|
220
|
+
password-reset, file-upload, notifications, admin-panel, API-docs"
|
|
221
|
+
|
|
222
|
+
# Sequential: ~15 minutes. CCP: ~90 seconds.
|
|
223
|
+
# Run this before every deploy.
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Each Worker gets an isolated session — no cookie contamination between test flows. Test multi-user scenarios (admin + regular user) simultaneously.
|
|
227
|
+
|
|
228
|
+
### Competitive Intelligence at Scale
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
You: ccp monitor pricing on Amazon, Walmart, Target, Best Buy, and Costco
|
|
232
|
+
for "Sony WH-1000XM5" — compare and find the lowest
|
|
233
|
+
|
|
234
|
+
Claude: [5 Workers, 5 retailers, parallel]
|
|
235
|
+
Amazon: $278
|
|
236
|
+
Walmart: $298
|
|
237
|
+
Target: $279
|
|
238
|
+
Best Buy: $249 ← lowest (sale)
|
|
239
|
+
Costco: $269 (members only)
|
|
240
|
+
Time: 2.4s | All prices from live pages, not cached APIs
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Works on sites with bot detection because it's your real Chrome — real cookies, real fingerprint, real browsing history.
|
|
244
|
+
|
|
245
|
+
### Multi-Account Operations
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
You: ccp check order status on my personal and business Amazon accounts,
|
|
249
|
+
plus my eBay seller dashboard — all at the same time
|
|
250
|
+
|
|
251
|
+
Claude: [3 Workers, 3 isolated sessions]
|
|
252
|
+
Amazon Personal: 2 packages arriving tomorrow
|
|
253
|
+
Amazon Business: Purchase order #4521 approved
|
|
254
|
+
eBay Seller: 3 new orders, $847 revenue today
|
|
255
|
+
Time: 2.1s
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Same site, different accounts, simultaneously. Each Worker has its own cookies and session state.
|
|
259
|
+
|
|
260
|
+
### OpenClaw Integration
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
OpenClaw agent (Telegram/Discord/Signal)
|
|
264
|
+
└─ "Check my AWS billing and Stripe revenue"
|
|
265
|
+
└─ CCP: 2 Workers, parallel, already logged in
|
|
266
|
+
├── AWS: $12,847/mo ✓ (1.8s)
|
|
267
|
+
└── Stripe: $47,230 MRR ✓ (1.5s)
|
|
268
|
+
└─ Response delivered to your chat in ~3s
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
[OpenClaw](https://github.com/openclaw/openclaw) is an open-source AI agent that runs locally with 50+ integrations across chat, productivity, and automation tools. CCP gives OpenClaw agents **authenticated browser superpowers** — your agent can browse the web as you, across any site you're already logged into.
|
|
272
|
+
|
|
273
|
+
- **Chat-driven dashboards**: "Check my billing" via Telegram → CCP screenshots your AWS/Stripe/Vercel in parallel
|
|
274
|
+
- **Scheduled monitoring**: OpenClaw cron + CCP = automated daily reports from authenticated dashboards
|
|
275
|
+
- **Multi-platform actions**: One chat command triggers parallel browser operations across 10+ sites simultaneously
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Orchestration
|
|
280
|
+
|
|
281
|
+
CCP's core mission is **Chrome parallel automation innovation**. Simple single-site tasks work great with basic `ccp` commands. But for complex multi-step workflows, CCP is designed to work with orchestration layers:
|
|
282
|
+
|
|
283
|
+
| Complexity | Approach | Example |
|
|
284
|
+
|:----------:|:--------:|:--------|
|
|
285
|
+
| **Simple** | `ccp` command | "ccp screenshot my Gmail" |
|
|
286
|
+
| **Multi-site** | `workflow_init` | "Compare prices across 5 retailers" |
|
|
287
|
+
| **Complex** | Orchestrator | Full regression suite, multi-step data pipelines |
|
|
288
|
+
|
|
289
|
+
**Recommended orchestrators:**
|
|
290
|
+
|
|
291
|
+
- **[oh-my-claudecode](https://github.com/Yeachan-Heo/oh-my-claudecode)** — Multi-agent orchestration for Claude Code. Use `autopilot`, `ralph`, or `ultrawork` modes with CCP for persistent, self-correcting browser workflows.
|
|
292
|
+
- **[superpowers](https://github.com/obra/superpowers)** — Agent coordination framework. Combines CCP's parallel browser capabilities with structured task pipelines and verification loops.
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## Comparison
|
|
297
|
+
|
|
298
|
+
| | Playwright MCP | Browserbase | Chrome Extension | **CCP** |
|
|
299
|
+
|---|:---:|:---:|:---:|:---:|
|
|
300
|
+
| **Auth overhead per site** | ❌ 30-120s | ❌ 30-120s | ✅ 0s | **✅ 0s** |
|
|
301
|
+
| **5-site authenticated task** | ~250s | ~250s + cost | N/A (1 session) | **~3s** |
|
|
302
|
+
| **Memory (5 sessions)** | ~2.5 GB | N/A (cloud) | N/A | **~300 MB** |
|
|
303
|
+
| **Uses your Chrome logins** | ❌ Blank browser | ❌ Cloud browser | ✅ | **✅** |
|
|
304
|
+
| **Concurrent sessions** | ⚠️ Limited | ✅ (paid) | ❌ 1 (crashes) | **✅ 20+** |
|
|
305
|
+
| **Multi-account isolation** | ❌ | ✅ (paid) | ❌ | **✅** |
|
|
306
|
+
| **Runs locally** | ✅ | ❌ Cloud only | ✅ | **✅** |
|
|
307
|
+
| **Free** | ✅ | ❌ | ✅ | **✅** |
|
|
308
|
+
| **No bot detection** | ❌ Headless | ❌ Fingerprinted | ✅ | **✅** |
|
|
309
|
+
| **Device emulation** | ✅ | ✅ | ❌ | **✅** |
|
|
310
|
+
| **Network simulation** | ✅ | ❌ | ❌ | **✅** |
|
|
311
|
+
| **Workflow orchestration** | ❌ | ❌ | ❌ | **✅** |
|
|
312
|
+
| **Adaptive Guidance** | ❌ | ❌ | ❌ | **✅** |
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## Adaptive Guidance
|
|
317
|
+
|
|
318
|
+
The biggest time sink in LLM browser automation isn't execution speed — it's **wrong tool choices, missed page state, and pointless retries**. Each mistake costs 3-10 seconds of LLM inference. Three mistakes and you've wasted 30 seconds before anything useful happens.
|
|
319
|
+
|
|
320
|
+
CCP injects contextual `_hint` fields into every tool response to prevent this:
|
|
321
|
+
|
|
322
|
+
```
|
|
323
|
+
click_element → Error: "ref not found"
|
|
324
|
+
_hint: "Refs expire after page changes. Use read_page for fresh refs."
|
|
325
|
+
→ LLM self-corrects. No retry loop. No wasted tokens.
|
|
326
|
+
|
|
327
|
+
navigate → title contains "Login"
|
|
328
|
+
_hint: "Login page detected. Use fill_form for credentials."
|
|
329
|
+
→ LLM skips straight to form filling.
|
|
330
|
+
|
|
331
|
+
find → computer(click) pattern detected
|
|
332
|
+
_hint: "Use click_element to find+click in one call."
|
|
333
|
+
→ Eliminates unnecessary intermediate steps.
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
21 static rules across 6 priority tiers + an **adaptive memory** system that learns from your usage. When the same error→recovery pattern appears 3 times, it's promoted to a permanent hint — persisted across sessions in `.chrome-parallel/hints/learned-patterns.json`.
|
|
337
|
+
|
|
338
|
+
<details>
|
|
339
|
+
<summary>Rule priority tiers</summary>
|
|
340
|
+
|
|
341
|
+
| Tier | Priority | Examples |
|
|
342
|
+
|------|----------|---------|
|
|
343
|
+
| Error Recovery | 100 | Stale refs, tab not found, timeouts, null elements |
|
|
344
|
+
| Composite Hints | 200 | find+click → click_element, multiple form_input → fill_form |
|
|
345
|
+
| Repetition Detection | 250 | Same-tool error streaks, A↔B oscillation loops |
|
|
346
|
+
| Sequence Detection | 300 | Login page detection, navigate→screenshot without wait |
|
|
347
|
+
| Learned Patterns | 350 | Automatically discovered error→recovery correlations |
|
|
348
|
+
| Success Hints | 400 | Post-click navigation check, form submission verification |
|
|
349
|
+
|
|
350
|
+
</details>
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## Tools (39)
|
|
355
|
+
|
|
356
|
+
<details>
|
|
357
|
+
<summary><b>Browser Automation</b> — navigate, click, type, find</summary>
|
|
358
|
+
|
|
359
|
+
| Tool | Description |
|
|
360
|
+
|------|-------------|
|
|
361
|
+
| `navigate` | Go to URL, back/forward |
|
|
362
|
+
| `computer` | Screenshot, click, keyboard, scroll |
|
|
363
|
+
| `read_page` | Parse page structure (accessibility tree) |
|
|
364
|
+
| `find` | Find elements by natural language |
|
|
365
|
+
| `click_element` | Find and click in one step |
|
|
366
|
+
| `wait_and_click` | Wait for element, then click |
|
|
367
|
+
| `form_input` | Set individual form values |
|
|
368
|
+
| `fill_form` | Fill multiple fields + submit in one call |
|
|
369
|
+
| `javascript_tool` | Execute JavaScript |
|
|
370
|
+
|
|
371
|
+
</details>
|
|
372
|
+
|
|
373
|
+
<details>
|
|
374
|
+
<summary><b>Browser Environment</b> — device, network, location</summary>
|
|
375
|
+
|
|
376
|
+
| Tool | Description |
|
|
377
|
+
|------|-------------|
|
|
378
|
+
| `user_agent` | Set User-Agent (chrome, safari, googlebot, etc.) |
|
|
379
|
+
| `geolocation` | Override location (seoul, tokyo, new-york, etc.) |
|
|
380
|
+
| `emulate_device` | Device emulation (iphone-14, ipad-pro, pixel-7, etc.) |
|
|
381
|
+
| `network` | Simulate network conditions (3G, 4G, offline) |
|
|
382
|
+
|
|
383
|
+
</details>
|
|
384
|
+
|
|
385
|
+
<details>
|
|
386
|
+
<summary><b>Page Operations</b> — content, PDF, reload, wait</summary>
|
|
387
|
+
|
|
388
|
+
| Tool | Description |
|
|
389
|
+
|------|-------------|
|
|
390
|
+
| `page_reload` | Reload page (optional cache bypass) |
|
|
391
|
+
| `page_content` | Get HTML content from page or element |
|
|
392
|
+
| `page_pdf` | Generate PDF (A4, Letter, landscape) |
|
|
393
|
+
| `wait_for` | Wait for selector, navigation, function, or timeout |
|
|
394
|
+
|
|
395
|
+
</details>
|
|
396
|
+
|
|
397
|
+
<details>
|
|
398
|
+
<summary><b>DOM, Storage, Debugging, Advanced</b></summary>
|
|
399
|
+
|
|
400
|
+
| Tool | Description |
|
|
401
|
+
|------|-------------|
|
|
402
|
+
| `selector_query` | Query elements by CSS selector |
|
|
403
|
+
| `xpath_query` | Query elements by XPath expression |
|
|
404
|
+
| `cookies` | Get/set/delete browser cookies |
|
|
405
|
+
| `storage` | Manage localStorage/sessionStorage |
|
|
406
|
+
| `console_capture` | Capture console logs (with type filtering) |
|
|
407
|
+
| `performance_metrics` | Performance metrics (FCP, load time, JS heap) |
|
|
408
|
+
| `request_intercept` | Intercept/block/log network requests |
|
|
409
|
+
| `drag_drop` | Drag and drop by selector or coordinates |
|
|
410
|
+
| `file_upload` | Upload files to file input elements |
|
|
411
|
+
| `http_auth` | Set HTTP Basic Authentication credentials |
|
|
412
|
+
|
|
413
|
+
</details>
|
|
414
|
+
|
|
415
|
+
<details>
|
|
416
|
+
<summary><b>Workers & Orchestration</b></summary>
|
|
417
|
+
|
|
418
|
+
| Tool | Description |
|
|
419
|
+
|------|-------------|
|
|
420
|
+
| `worker_create` | Create isolated browser context |
|
|
421
|
+
| `worker_list` | List Workers and their tabs |
|
|
422
|
+
| `worker_update` | Update worker progress |
|
|
423
|
+
| `worker_complete` | Mark worker as complete |
|
|
424
|
+
| `worker_delete` | Delete Worker |
|
|
425
|
+
| `tabs_create_mcp` | Create new tab |
|
|
426
|
+
| `tabs_context_mcp` | Get tab info |
|
|
427
|
+
| `tabs_close` | Close tabs |
|
|
428
|
+
| `workflow_init` | Initialize parallel workflow |
|
|
429
|
+
| `workflow_status` | Check workflow progress |
|
|
430
|
+
| `workflow_collect` | Collect results from all Workers |
|
|
431
|
+
| `workflow_cleanup` | Clean up workflow resources |
|
|
432
|
+
| `memory_record` | Store domain knowledge (selectors, tips) for reuse |
|
|
433
|
+
| `memory_query` | Retrieve learned knowledge for a domain |
|
|
434
|
+
| `memory_validate` | Report success/failure to adjust confidence |
|
|
435
|
+
|
|
436
|
+
</details>
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
## CLI
|
|
441
|
+
|
|
442
|
+
```bash
|
|
443
|
+
ccp setup # Auto-configure (global)
|
|
444
|
+
ccp setup --scope project # Auto-configure (project only)
|
|
445
|
+
ccp serve --auto-launch # Start with auto Chrome launch
|
|
446
|
+
ccp serve --headless-shell # Headless mode (15-30% less memory)
|
|
447
|
+
ccp serve -p <port> # Custom debugging port (default: 9222)
|
|
448
|
+
ccp doctor # Diagnose installation
|
|
449
|
+
ccp status # View sessions
|
|
450
|
+
ccp cleanup # Clean up old sessions
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
> `ccp` requires global install (`npm i -g claude-chrome-parallel`). All commands also work via `npx claude-chrome-parallel <command>`.
|
|
454
|
+
|
|
455
|
+
---
|
|
456
|
+
|
|
457
|
+
<details>
|
|
458
|
+
<summary><b>Performance Optimizations</b></summary>
|
|
459
|
+
|
|
460
|
+
- **Memory** — Renderer process limits, JS heap caps, forced GC on tab close
|
|
461
|
+
- **Screenshots** — WebP format (3-5x smaller than PNG)
|
|
462
|
+
- **Cookie Bridge** — 30s TTL cache for auth cookie sharing (~10ms vs 2-6s)
|
|
463
|
+
- **Find Tool** — Batched CDP queries (~100ms vs ~400ms)
|
|
464
|
+
- **Headless Shell** — `--headless-shell` for 15-30% less memory
|
|
465
|
+
|
|
466
|
+
</details>
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
## Development
|
|
471
|
+
|
|
472
|
+
```bash
|
|
473
|
+
git clone https://github.com/shaun0927/claude-chrome-parallel.git
|
|
474
|
+
cd claude-chrome-parallel
|
|
475
|
+
npm install && npm run build && npm test
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
## Compatibility
|
|
479
|
+
|
|
480
|
+
CCP is a standard **MCP server** (stdio JSON-RPC). While optimized for Claude Code, it works with any MCP-compatible client:
|
|
481
|
+
|
|
482
|
+
```json
|
|
483
|
+
{
|
|
484
|
+
"mcpServers": {
|
|
485
|
+
"chrome-parallel": {
|
|
486
|
+
"command": "npx",
|
|
487
|
+
"args": ["-y", "claude-chrome-parallel", "serve", "--auto-launch"]
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
Cursor, Windsurf, Codex CLI, or any editor that supports MCP can use CCP with the config above. See [Contributing](CONTRIBUTING.md) for multi-client testing status.
|
|
494
|
+
|
|
495
|
+
## License
|
|
496
|
+
|
|
497
|
+
MIT — [LICENSE](LICENSE)
|
|
498
|
+
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
> **Disclaimer**: Unofficial community project. Not affiliated with Anthropic. "Claude" is a trademark of Anthropic.
|