dev-browser
1
总安装量
1
周安装量
#46238
全站排名
安装命令
npx skills add https://github.com/jtsang4/dev-browser --skill dev-browser
Agent 安装分布
amp
1
opencode
1
kimi-cli
1
codex
1
claude-code
1
Skill 文档
Dev Browser Skill
Use dev-browser CLI to run multi-step browser automation with persistent page state.
Defaults
- Prefer multi-step execution: Use one
run --codeblock for multiple actions whenever possible. - Reuse page names: Keep the same
--pagename across turns to preserve state. - Control via daemon commands: Explicitly use
ensure/status/stop/clean. - CLI must be available: Ensure
dev-browsercommand is installed and onPATH(from the separated CLI package).
Setup
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
Run Multi-Step Scripts
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]", "test@example.com");
await page.click("button[type=submit]");
return { url: page.url(), title: await page.title() };
'
Execution Context
--code runs as async JavaScript function body with injected values:
page– persistent PlaywrightPagefor--pagenameclient– dev-browser client instancehelpers– utility helpers (waitForPageLoad)log(entry)– structured step logs collected in output
Output Contract
Success (ok: true) includes:
modepageNamedata(your returned value)logstimingMs
Failure (ok: false) includes:
error.code(RUN_TIMEOUTorRUN_EXEC_ERROR)error.messageerror.retryable
Workflow Pattern
For complex tasks:
daemon ensure- Run one multi-step
run --code - Evaluate JSON result
- If needed, run another
run --codewith same--page - On completion,
daemon stop(or rely on idle TTL)
Page State Inspection
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 };
'
Notes
run --codeaccepts JavaScript only (no TypeScript syntax inside code body).- Same
--pagename is serialized by lock to prevent concurrent mutation conflicts. - Runtime data is stored under
~/.dev-browser/(override withDEV_BROWSER_HOME).