Dev Browser - Browser automation for Claude Code
A browser automation plugin for Claude Code that lets Claude control your browser to test and verify your work as you develop.
Key features:
- Persistent pages - Navigate once, interact across multiple scripts
- Flexible execution - Full scripts when possible, step-by-step when exploring
- LLM-friendly DOM snapshots - Structured page inspection optimized for AI
- Claude Code CLI installed
- Node.js (v18 or later) with npm
/plugin marketplace add sawyerhood/dev-browser
/plugin install dev-browser@sawyerhood/dev-browser
Restart Claude Code after installation.
Copy the skill to your skills directory:
# For Amp: ~/.claude/skills | For Codex: ~/.codex/skills SKILLS_DIR=~/.claude/skills # or ~/.codex/skills mkdir -p $SKILLS_DIR git clone https://github.com/sawyerhood/dev-browser /tmp/dev-browser-skill cp -r /tmp/dev-browser-skill/skills/dev-browser $SKILLS_DIR/dev-browser rm -rf /tmp/dev-browser-skill
Amp only: Start the server manually before use:
cd ~/.claude/skills/dev-browser && npm install && npm run start-server
The Chrome extension allows Dev Browser to control your existing Chrome browser instead of launching a separate Chromium instance. This gives you access to your logged-in sessions, bookmarks, and extensions.
Installation:
- Download
extension.zipfrom the latest release - Unzip the file to a permanent location (e.g.,
~/.dev-browser-extension) - Open Chrome and go to
chrome://extensions - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked" and select the unzipped extension folder
- Click the extension icon in Chrome toolbar and toggle it to "Active"
When active, the extension connects to Dev Browser's server and allows automation of your current Chrome tabs. Tell your agent to "use the extension" or "use my existing Chrome" to use it instead of the built-in browser.
To skip permission prompts, add to ~/.claude/settings.json:
{
"permissions": {
"allow": ["Skill(dev-browser:dev-browser)", "Bash(npx tsx:*)"]
}
}Or run with claude --dangerously-skip-permissions (skips all prompts).
Just ask Claude to interact with your browser:
"Open localhost:3000 and verify the signup flow works"
"Go to the settings page and figure out why the save button isn't working"
| Method | Time | Cost | Turns | Success |
|---|---|---|---|---|
| Dev Browser | 3m 53s | 0ドル.88 | 29 | 100% |
| Playwright MCP | 4m 31s | 1ドル.45 | 51 | 100% |
| Playwright Skill | 8m 07s | 1ドル.45 | 38 | 67% |
| Claude Chrome Extension | 12m 54s | 2ドル.81 | 80 | 100% |
See dev-browser-eval for methodology.
| Approach | How It Works | Tradeoff |
|---|---|---|
| Playwright MCP | Observe-think-act loop with individual tool calls | Simple but slow; each action is a separate round-trip |
| Playwright Skill | Full scripts that run end-to-end | Fast but fragile; scripts start fresh every time |
| Dev Browser | Stateful server + agentic script execution | Best of both: persistent state with flexible execution |
MIT