Get started

Connect directly over CDP

Start Mimic yourself and attach your browser client.

On this page

Direct CDP setup

Download the latest Windows or Linux archive from the download page, verify it against the included SHA256SUMS, and extract it. No Chrome, Go, Rust, display server, or GPU is required for the packaged executable.

PlatformRuntime requirements
Windows amd64Verified on Windows 11. Run mimic.exe.
Linux amd64glibc 2.39+, libgcc_s, and installed Liberation, DejaVu, or Noto fonts. Ubuntu 24.04+.
Start Mimic
# Windows
.\mimic.exe --browser-mode headless --listen 127.0.0.1:9222

# Linux
./mimic --browser-mode headless --listen 127.0.0.1:9222

Keep the process running while your client is connected. The endpoint has no authentication and is intended for trusted local clients.

Playwright

Install playwright-core so the client does not download a browser:

Install Playwright
npm install playwright-core@1.63.0
playwright.mjs
import { chromium } from "playwright-core";

const browser = await chromium.connectOverCDP("http://127.0.0.1:9222");
try {
  const context = browser.contexts()[0];
  const page = await context.newPage();
  await page.goto("https://books.toscrape.com/", { waitUntil: "load" });
  console.log(await page.locator("h1").textContent());
} finally {
  // This disconnects the client; it does not own the Mimic process.
  await browser.close();
}
Run the demo
node playwright.mjs

Demo site: Books to Scrape.

Wait for an application-specific element or state when hydration continues after the load event. Supported workflows include locators, forms, fetch-driven DOM updates, frames, Shadow DOM, popups, cookies, history, multiple Pages, and network events; this is not a promise that every Playwright feature is available.

Puppeteer

Install Puppeteer
npm install puppeteer-core@25.10.0
puppeteer.mjs
import puppeteer from "puppeteer-core";

const browser = await puppeteer.connect({
  browserURL: "http://127.0.0.1:9222",
  defaultViewport: null
});
const page = await browser.newPage();
await page.goto("https://books.toscrape.com/", { waitUntil: "load" });
console.log(await page.$eval("h1", node => node.textContent));
await page.close();
await browser.disconnect();
Run the demo
node puppeteer.mjs