dev-browser

SkillProductivity

Lets 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.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

dev-browserStart free
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