From dev-browser
Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-browser:dev-browserThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use `dev-browser` CLI to run multi-step browser automation with persistent page state.
Use dev-browser CLI to run multi-step browser automation with persistent page state.
run --code block for multiple actions whenever possible.--page name across turns to preserve state.ensure/status/stop/clean.dev-browser command is installed and on PATH (from the separated CLI package).If dev-browser command is missing, install CLI globally:
pnpm add -g @jtsang/dev-browser-cli
# or: npm install -g @jtsang/dev-browser-cli
Ensure daemon is running before actions:
dev-browser daemon ensure --mode launch --json
# optional: choose launch engine (default: patchright)
dev-browser daemon ensure --mode launch --engine playwright --json
Use extension mode when user wants their existing Chrome session:
dev-browser daemon ensure --mode extension --json
Useful lifecycle commands:
dev-browser daemon status --json
dev-browser daemon stop --mode launch
dev-browser daemon clean --stale-only
dev-browser doctor
Use run --code as the primary execution command.
dev-browser run --mode launch --page checkout --json --code '
await page.goto("https://example.com");
await helpers.waitForPageLoad(page);
await page.fill("input[name=email]", "[email protected]");
await page.click("button[type=submit]");
return { url: page.url(), title: await page.title() };
'
--code runs as async JavaScript function body with injected values:
page - persistent Playwright Page for --page nameclient - dev-browser client instancehelpers - utility helpers (waitForPageLoad)log(entry) - structured step logs collected in outputSuccess (ok: true) includes:
modepageNamedata (your returned value)logstimingMsFailure (ok: false) includes:
error.code (RUN_TIMEOUT or RUN_EXEC_ERROR)error.messageerror.retryableFor complex tasks:
daemon ensurerun --coderun --code with same --pagedaemon stop (or rely on idle TTL)Use run --code for debugging snapshots/screenshots:
dev-browser run --page debug --json --code '
await page.screenshot({ path: "debug.png", fullPage: true });
const snapshot = await client.getAISnapshot("debug");
return { url: page.url(), title: await page.title(), snapshot };
'
run --code accepts JavaScript only (no TypeScript syntax inside code body).--page name is serialized by lock to prevent concurrent mutation conflicts.~/.dev-browser/ (override with DEV_BROWSER_HOME).npx claudepluginhub jtsang4/dev-browser --plugin dev-browserAutomates browsers with persistent page state: navigate sites, fill forms, take screenshots, extract data, test web apps, handle logins and workflows.
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.