chrome-cdp-ex

August 17, 2026 · View on GitHub

Zero Dependencies Node 22+ Release v2.16.0 MIT License

Codex uses chrome-cdp-ex to perceive, act, verify what changed, and hand off a browser session

Watch the 60-second Codex demo →

Playwright snapshot redesign of the ugly challenge page chrome-cdp-ex perceive redesign of the ugly challenge page Tool C snapshot redesign of the ugly challenge page

Same ugly page. Same prompt. The middle one is chrome-cdp-ex — the agent could see layout, color, and contrast.

The tab you already have

Use the browser you already have open.

Your agent already has Chrome. What it usually gets is a fat page snapshot — lots of hops, a pile of tokens — or a fresh automated browser that is not the tab with your cookies. chrome-cdp-ex attaches to that live session and does the common jobs in one step, with a short receipt.

Fat snapshot. Empty PDF. Overlay up, and the snapshot still looks clear. One command. Skinny evidence. The tab you already have.

Playwright is for clean isolated tests. This is for the session that already has your login.

10 jobs. Who finishes.

Measured 2026-08-17. chrome-cdp-ex and Browser Use on main 22c525d4. Playwright: same machine, headed Chromium, 1042×632, n=3 median.

PK scoreboard for chrome-cdp-ex, Browser Use, and Playwright: total success 10/10, 8/10, 9/10. Each job cell is PASS or FAIL plus steps / token / wall ms. FAIL cells are marked in red.

Each job cell is PASS or FAIL, then steps / token / wall ms. Bold numbers win that face among PASS cells only; FAIL cannot win.

Blue = chrome-cdp-ex · Amber = Browser Use · Green = Playwright. X-axis is the 10 jobs. Not averaged.

Steps per job for chrome-cdp-ex, Browser Use, and Playwright on the 10 locked jobs

UTF-8 token characters returned to the agent per job for chrome-cdp-ex, Browser Use, and Playwright

Wall-clock milliseconds per job for chrome-cdp-ex, Browser Use, and Playwright

Wall clock is not averaged across these jobs. Four jobs we are slower than Browser Use: nav example.org (297 vs 16), read HF home (152 vs 6), hover reveal (145 vs 14), overlay detect (142 vs 21). Playwright is often quicker on the clock; the win is steps, tokens, and the jobs others fail.

Engineer grid, overlay ruler, and PDF notes: docs/pk-324-board.md.

Demo

Quick start

Needs Node.js 22 (built-in WebSocket). This project does not publish to the npm registry.

Pinned release (v2.16.0):

curl -L -o pi-chrome-cdp-2.16.0.tgz https://github.com/EndeavorYen/chrome-cdp-ex/releases/download/v2.16.0/pi-chrome-cdp-2.16.0.tgz
mkdir -p chrome-cdp-ex-v2.16.0
tar -xzf pi-chrome-cdp-2.16.0.tgz -C chrome-cdp-ex-v2.16.0 --strip-components=1
cd chrome-cdp-ex-v2.16.0

Checksum is on the GitHub Release.

Current main:

git clone https://github.com/EndeavorYen/chrome-cdp-ex.git
cd chrome-cdp-ex

Then:

./bin/chrome-cdp doctor
./bin/chrome-cdp list

If node -v is <22, doctor prints a Node 22 path (./bin/chrome-cdp re-execs it when found). Turn on remote debugging at chrome://inspect/#remote-debugging (or edge://inspect) so it can attach to the browser you already have open.

Agent hosts: Codex · Claude Code · Cursor · OpenClaw · Hermes · Pi

Command map: docs/reference.md. Skill: SKILL.md. Host wiring: INTEGRATIONS.md.

License

MIT

Built on pasky/chrome-cdp-skill by Petr Baudis. Contributors: ynezz, Jah-yee, Rolf Fredheim, hussainweb.