cm-browse

Fallback local Playwright daemon for real-browser visual QA / screenshots / smoke. Use ONLY when the host platform has no native browser mode — prefer the host browser first.

SKILL.md

GitHub

cm-browse — local Playwright daemon (fallback)

Prefer the host browser. Per _shared/browser-strategy.md: on Claude Code / Antigravity / Cursor / Codex, drive the platform's native browser mode (Claude in Chrome, Claude Preview, Chrome DevTools / Playwright MCP). This daemon is the fallback for bare CLI hosts with no browser mode, and is never auto-started — suggest it to the user and let them opt in.

Full runbook: docs/browse-daemon.md (install Chromium, token, troubleshooting).

When to use

  • Only when no host browser mode is available (bare CLI) and you genuinely need a real browser for visual QA, screenshots, or post-deploy smoke. Otherwise use the host browser.
  • HTTP-only checks (status code, curl) need no browser — do those first.

CLI

export CM_BROWSE_TOKEN="$(openssl rand -hex 24)"
cm browse start --port 17395 --token "$CM_BROWSE_TOKEN"

HTTP API (Bearer token)

  • POST /session/start body { "headless": true }
  • POST /navigate { "url": "https://…" }
  • POST /refs/refresh — assigns data-cm-ref to interactive nodes; use @e1 style refs.
  • POST /click { "ref": "e1" }
  • POST /fill { "ref": "e2", "value": "text" }
  • GET /screenshot — PNG
  • GET /console / GET /network — ring buffers

Integrations

  • cm qa-visual --url … calls the daemon locally.
  • Pair with cm-canary / cm-safe-deploy for ship verification.