com um clique
browser-automation
// Connect to Chrome via CDP proxy to automate web interactions — posting, scraping, form filling. Uses puppeteer-core (no bundled Chromium).
// Connect to Chrome via CDP proxy to automate web interactions — posting, scraping, form filling. Uses puppeteer-core (no bundled Chromium).
Short description — what this does and when to use it.
Orchestrate a multi-round implementation + review cycle. Use when coordinating a feature that requires implementation (FE/BE), design review (UIUX), security review, and QA verification. Ensures QA findings get routed back for fixes until clean.
Review recent edits and update all documentation including architecture docs, API specs, and edit history. Creates missing docs for new implementations.
Review recent edits and update all documentation including architecture docs, API specs, and edit history. Creates missing docs for new implementations.
Review code for best practices, modularity, scalability, abstraction, test coverage, redundancy, hardcoded values, type safety, performance, naming, API design, async patterns, config/env sync, template consistency, and documentation alignment. Generates detailed report with issues and recommendations.
| id | browser-automation |
| name | browser-automation |
| description | Connect to Chrome via CDP proxy to automate web interactions — posting, scraping, form filling. Uses puppeteer-core (no bundled Chromium). |
| tags | ["browser","puppeteer","cdp"] |
Connect to the host Chrome browser via the CDP proxy to automate web interactions.
const puppeteer = require('puppeteer-core');
const http = require('http');
// Get WebSocket URL from CDP proxy and rewrite for Docker networking
const data = await new Promise((res, rej) => {
http.get('http://host.docker.internal:9223/json/version', r => {
let d = ''; r.on('data', c => d += c); r.on('end', () => res(JSON.parse(d)));
}).on('error', rej);
});
const wsUrl = data.webSocketDebuggerUrl.replace('localhost:9222', 'host.docker.internal:9223');
const browser = await puppeteer.connect({browserWSEndpoint: wsUrl, defaultViewport: null});
Important: Always use browserWSEndpoint with URL rewrite, NOT browserURL. The CDP proxy runs on port 9223 and rewrites the Host header for Chrome compatibility.
http://host.docker.internal:9223/jsonawait page.goto(url, {waitUntil: 'networkidle2'})browser.disconnect() — never browser.close() (that kills the shared Chrome)The Chrome profile has active sessions for: