mcpField
D
dev-browser

dev-browser

github.com/numman-aliAgent workflows1.1k35 installsUpdated 7w ago
Repository

About dev-browser

A CLI skill for controlling a real Chrome browser with short Puppeteer scripts. It keeps a warm daemon and named pages between runs, for browser-based development tasks.

Key features

  1. 01Control real Chrome with Puppeteer scripts
  2. 02Keep named pages between runs
  3. 03Inspect pages with interactive ARIA snapshots
  4. 04Run scripts through a CLI

Use cases

  1. 01Automating browser checks during development
  2. 02Reusing a page across script runs
  3. 03Inspecting interactive page elements
  4. 04Navigating and clicking through web pages

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/numman-ali/n-skills --skill dev-browser

After installing, type/dev-browserin Claude Code to confirm it loaded.

Details

From the project README

dev-browser

CLI for controlling a real Chrome with short Puppeteer scripts. One warm daemon; named pages persist between runs.

npm install -g dev-browser   # bun add -g dev-browser works too; the first run downloads the binary if the install script was blocked
dev-browser install          # only if the first run says "No Chrome found"

Run dev-browser --help (full guide; dev-browser help <topic> for one section) before non-trivial work. Quick start:

dev-browser <<'EOF'
const page = await browser.getPage("main");        // named page persists across runs
await page.goto("https://example.com");            // default waitUntil: domcontentloaded
await page.snapshot({ interactive: true })         // ARIA tree with refs; last expression is printed
EOF
dev-browser -e 'const p = await browser.getPage("main"); await p.click("ref/e6"); await p.waitForLoad(); p.url()'

Gotchas: end lines with semicolons (a line starting with ( continues the previous one); return an object as ({ a, b }); page.click never waits (use waitForSelector first); page names are per browser (--headless and headed are separate Chromes and profiles); refs reset on navigation — re-snapshot; file paths resolve against your cwd (uploadFile, screenshot/pdf path); do not run parallel dev-browser calls against the same named page.

Comments

Markdown supported