Loading...
Loading...
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.
npx skill4agent add jtsang4/dev-browser dev-browserdev-browserrun --code--pageensure/status/stop/cleandev-browserPATHdev-browserpnpm add -g @jtsang/dev-browser-cli
# or: npm install -g @jtsang/dev-browser-clidev-browser daemon ensure --mode launch --json
# optional: choose launch engine (default: patchright)
dev-browser daemon ensure --mode launch --engine playwright --jsondev-browser daemon ensure --mode extension --jsondev-browser daemon status --json
dev-browser daemon stop --mode launch
dev-browser daemon clean --stale-only
dev-browser doctorrun --codedev-browser run --mode launch --page checkout --json --code '
await page.goto("https://example.com");
await helpers.waitForPageLoad(page);
await page.fill("input[name=email]", "test@example.com");
await page.click("button[type=submit]");
return { url: page.url(), title: await page.title() };
'--codepagePage--pageclienthelperswaitForPageLoadlog(entry)ok: truemodepageNamedatalogstimingMsok: falseerror.codeRUN_TIMEOUTRUN_EXEC_ERRORerror.messageerror.retryabledaemon ensurerun --coderun --code--pagedaemon stoprun --codedev-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--page~/.dev-browser/DEV_BROWSER_HOME