dev-browser
SkillProductivityLets your agent open websites, click and fill forms, log in, take screenshots, and extract data from pages.
Use dev-browser in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add dev-browser and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the dev-browser skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
Browser automation with persistent named pages via the dev-browser CLI. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, log into sites, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take
What this skill tells your AI
The instructions your AI receives, as published by sawyerhood/dev-browser in skills/dev-browser/SKILL.md and read by ahel’s review.
CLI for controlling a real Chrome with short Puppeteer scripts. One warm daemon; named pages persist between runs.
npm install -g dev-browser # bun add -g dev-browser works too; the first run downloads the binary if the install script was blocked
dev-browser install # only if the first run says "No Chrome found"
Run dev-browser --help (full guide; dev-browser help <topic> for one section) before non-trivial work. Quick start:
dev-browser <<'EOF'
const page = await browser.getPage("main"); // named page persists across runs
await page.goto("https://example.com"); // default waitUntil: domcontentloaded
await page.snapshot({ interactive: true }) // ARIA tree with refs; last expression is printed
EOF
dev-browser -e 'const p = await browser.getPage("main"); await p.click("ref/e6"); await p.waitForLoad(); p.url()'
Gotchas: end lines with semicolons (a line starting with ( continues the previous one); return an object as
({ a, b }); page.click never waits (use waitForSelector first); page names are per browser (--headless and
headed are separate Chromes and profiles); refs reset on navigation — re-snapshot; file paths resolve against your cwd
(uploadFile, screenshot/pdf path); do not run parallel dev-browser calls against the same named page.
Signals
- GitHub stars
- 7k
- Forks
- 436
- Last commit
- Sep 2026
- Hacker News mentions
- 1
ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
dev-browser-dev-browser- Source
- github.com/sawyerhood/dev-browser
github.com/sawyerhood/dev-browser
Related picks
Skill · 101-skills
The pick for Data Extractionbright-data-best-practices
Skill · davila7
The pick for Data Extractionhandsontable-playwright-e2e
Skill · handsontable
The pick for End-to-end testingmstar-e2e
Skill · btspoony
The pick for End-to-end testingbrowser-type
Skill · openakita
The pick for Form Fillingcompare-screenshots
Skill · dzhng
The pick for Screenshots