Capture, sweep, diff, audit — and now operate — from the CLI, an MCP server, or as a library. pursr replaces five separate tools with a single Node.js package that drives your system Chrome via Playwright.
Most teams need a screenshot CLI, a regression diff runner, an accessibility auditor, a way to share captures with an AI assistant, and a way to turn all of that into a PDF report. pursr is all five.
rendered cursor, target labels, click markers, WebM recording, headed and CDP sessions
pursr operator <url> @plan.json --visible --videoopen → snapshot → act → screenshot → inspect → diagnostics → close
pursr_session_open { mode: "visible" }reuse an existing authenticated Chrome profile over CDP
mode: "cdp" + cdpUrl: http://127.0.0.1:9222Chrome records the viewport as silent WebM during operator runs
--video ./recordings (CLI) or recordVideoDir (MCP)10+ presets (mobile, tablet, desktop, ultrawide)
--preset mobile-375entity / terrain / hud / ui isolation
--layer entitypause CSS/JS animations for stable frames
--no-animationpointer / grab / grabbing / crosshair
--cursor crosshairspacing guides, custom color + tile size
--grid --grid-tile 64Render a real cursor, click markers, and target labels into screenshots. Record WebM video of the viewport. Run headed or attach to an existing Chrome over CDP. The same action-plan JSON works through the CLI and the MCP server.
$ pursr operator http://localhost:3000 @plan.json \
--visible \
--start-delay 3000 \
--slow-mo 100 \
--video ./recordings \
--out ./recordings/final.png \
--operator-color #ff2ea6session_openOpen a headless, visible, or CDP browser session with optional Visual Operator.
sessionsList active browser sessions.
snapshotVisible rendered nodes, geometry, semantics, and computed styles.
actInteract plus move cursor, annotate targets, and clear visual feedback.
screenshotReturn the current PNG directly to the vision model.
inspectInspect exact geometry, computed styles, and stacking ancestors.
diagnosticsRead console, page errors, failed requests, and HTTP failures.
session_closeClose the tab and release its browser process.
+ 8 more tools — see the full list on GitHub
pursr-mcp is built on the official Model Context Protocol SDK. Works with Claude Code, Cursor, Codex, and Continue. Persistent sessions enable the same inspect-act-verify loop as an interactive browser agent.
$ npx pursr-mcp
# or with verbose logging:
npx pursr-mcp --verboseZero browser bundled — pursr drives your system Chrome via Playwright. No 200 MB Chromium download.
$ # Install pursr + playwright-core peer dep
npm install pursr
npm install --save-dev playwright-core
# Verify
pursr viewports # list 12 viewport presets
pursr probe https://example.com # health checkpursr shoot with overlays, grid, cursor, layer isolation
Batched JSON plan with parallel workers + a11y audit
HTML, PDF, JUnit XML, Markdown — auto-generated
Release notes for v0.4.0 → v0.10.0 — auto-synced from npm + GitHub.
v0.10.0v0.9.0v0.8.0Open the dashboard, build a capture, run it for real — pursr drives Chrome and produces a PNG.