dev-browser

Automate browser tasks with persistent page state using Playwright scripts.

Updated Jul 14, 2026
One-click install
npx skills add https://github.com/bond23869/skills --skill dev-browser-bond23869
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dev-browser
Source: https://github.com/bond23869/skills/tree/main/dev-browser
Command: npx skills add https://github.com/bond23869/skills --skill dev-browser-bond23869

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires playwright, express, hono, @hono/node-server, @hono/node-ws, tsx, and includes scripts (resource) and references (resource) components.

What problem does it solve? Browser automation scripts typically lose page state between executions, forcing you to re-navigate and re-authenticate on every run. This Skill runs a persistent browser server so pages, cookies, and sessions survive across multiple script executions. ## Core Features & Use Cases - Persistent Named Pages: Create named pages (e.g., "checkout", "login") that stay alive on the server between script runs, preserving cookies and session state. - Two Operation Modes: Launch a fresh headless Chromium instance, or connect to the user's real Chrome browser via an extension relay to act on already-authenticated sessions. - AI-Friendly Element Discovery: Use ARIA snapshots with element refs to find and interact with buttons, links, and forms without writing selectors blind. - Use Case: Scrape a paginated dashboard behind a login by connecting to your existing Chrome session, navigating pages incrementally, and capturing screenshots or network data at each step. ## Quick Start Start the dev-browser server and navigate to a website, then take a screenshot of the page.

Frequently Asked Questions about dev-browser

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate browser tasks with Playwright while keeping page state?

Run the dev-browser server, then connect via the client API and create named pages with client.page("name"). Pages persist on the server after your script disconnects, so subsequent scripts resume exactly where the previous one stopped.

How can I automate actions in my logged-in Chrome session?

Use extension mode by running the relay server with npm run start-extension and installing the companion Chrome extension. Scripts then create named pages inside your real browser, reusing existing cookies and authenticated sessions.

How do I find and click elements without knowing the page selectors?

Call client.getAISnapshot("name") to get a YAML accessibility tree with element refs like [ref=e5], then use client.selectSnapshotRef("name", "e5") to get an element handle and click it. This works without inspecting the DOM manually.

Does the dev-browser server run headless or with a visible window?

Standalone mode runs headless by default when started via server.sh. Pass the --headed flag to launch a visible Chromium window, which is useful for debugging or when the user needs to watch the automation.

Why does my page.evaluate script fail with TypeScript syntax errors?

Code passed to page.evaluate runs inside the browser, which only understands plain JavaScript. Remove type annotations and TypeScript-only syntax from evaluate callbacks, keeping TypeScript only in the outer Node.js script.