Keep your scripts. Change one line.
Memora Browser speaks the Chrome DevTools Protocol for Playwright and Puppeteer, and W3C WebDriver for Selenium. Point your existing script at it instead of launching Chrome.
import { chromium } from 'playwright';
const browser = await chromium.connectOverCDP('http://127.0.0.1:9222');
const context = browser.contexts()[0];
const page = context.pages()[0] || await context.newPage();
await page.goto('https://example.com');
console.log(await page.title());How it works.
Start the server
Run npx memora-browser. It serves CDP on ws://127.0.0.1:9222 by default.
Connect instead of launch
Use connectOverCDP in Playwright, puppeteer.connect in Puppeteer, or webdriver.Remote in Selenium.
Run the rest unchanged
Navigation, evaluation and input go through the same API calls you already use.
What you get.
Chrome DevTools Protocol
Page, Runtime, DOM, Network, Target and Input domains, plus a Memora domain for snapshots and actions.
W3C WebDriver
Start with --protocol webdriver for Selenium. Up to 16 concurrent sessions by default (--max-sessions).
HTTP endpoints
GET /memora/snapshot and /memora/goto return a distilled page in a single HTTP request.
Selenium and Puppeteer.
Start Memora with --protocol webdriver for Selenium. Puppeteer connects to the default CDP server.
# Selenium (Python) — start with: npx memora-browser --protocol webdriver
from selenium import webdriver
driver = webdriver.Remote("http://127.0.0.1:9222", options=webdriver.ChromeOptions())
// Puppeteer
const browser = await puppeteer.connect({ browserURL: 'http://127.0.0.1:9222' });Common questions.
Does every Playwright feature work?
Can I run CDP and WebDriver at the same time?
More in Memora Browser.
Put CDP & WebDriver to work.
The docs walk you through starting the server and connecting your first agent.