About Dev Browser Go
Dev Browser Go is an MCP server published by joshp123 in the Browser category: token-light browser automation via Playwright. CLI + MCP server.
The repository has 2 stars and 2 forks, with the last commit 8 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/joshp123/dev-browser-goThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (8)
actionsbatch tool calls from JSON
Parameters not published.
boundsget element bounds (selector/ARIA)
Parameters not published.
consoleread page console logs (default levels: info,warning,error; repeatable `--level`)
Parameters not published.
list-pagesshow open pages
Parameters not published.
save-htmlsave page HTML
Parameters not published.
screenshotsave screenshot
Parameters not published.
snapshotaccessibility tree with refs
Parameters not published.
waitwait for page state
Parameters not published.
Ask AI
Ask AI about Dev Browser Go
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 19 hours ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
Releases
README
dev-browser-go
Token-light browser automation via Playwright-Go. CLI-first design for LLM agent workflows.
Uses ref-based interaction: get a compact accessibility snapshot, then click/fill by ref ID. Keeps context small. Single Go binary with embedded daemon.
Acknowledgments
Inspired by SawyerHood/dev-browser. ARIA snapshot extraction is vendored from that project. Thanks to Sawyer Hood for the original work and ref-based model.
Thanks to Daniel van Dorp (@djvdorp) for early contributions (pip packaging, console logs) and legacy MCP cleanup work.
Comparison
| Feature | SawyerHood/dev-browser | dev-browser-go |
|---|---|---|
| Language | TypeScript | Go |
| Runtime | Bun + browser extension | Playwright-Go |
| Interface | Browser extension skill | CLI + daemon |
| Install | .plugin |
Go binary / Nix |
| Best for | Desktop skill users | CLI/LLM agents, Nix users |
| Snapshot engine | ARIA (JS) | Same (vendored) |
Why CLI (no MCP)
- Lower latency: direct subprocess, no JSON-RPC framing
- Easier debugging: run commands yourself, see stdout/stderr
- Simpler integration: any agent that can shell out works
- Persistent sessions: daemon keeps browser alive between calls
Install
Playwright browsers are required. The Nix package wraps PLAYWRIGHT_BROWSERS_PATH to the packaged Chromium; dev shell includes the driver/browsers. Outside Nix, Playwright-Go will download on first run.
Nix (flake)
nix run github:joshp123/dev-browser-go#dev-browser-go -- goto https://example.com
nix profile install github:joshp123/dev-browser-go#dev-browser-go
Go build
go build ./cmd/dev-browser-go
./dev-browser-go goto https://example.com
./dev-browser-go snapshot
CLI Usage
dev-browser-go --help # Full usage
dev-browser-go --version # Version
dev-browser-go goto https://example.com
dev-browser-go snapshot # Get refs (e1, e2, ...)
dev-browser-go click-ref e3 # Click ref
dev-browser-go fill-ref e5 "text" # Fill input
dev-browser-go screenshot # Capture
dev-browser-go press Enter # Keyboard
The daemon starts automatically on first command and keeps the browser session alive.
Global Flags
--profile <name> Browser profile (default: "default", env DEV_BROWSER_PROFILE)
--headless Run headless (default)
--headed Disable headless
--window-size WxH Viewport size (default 7680x2160 ultrawide)
--window-scale S Viewport scale preset (1, 0.75, 0.5)
--output <format> Output format: summary|json|path (default: summary)
--out <path> Write output to file (with --output=path)
Environment Variables
| Variable | Description |
|---|---|
DEV_BROWSER_PROFILE |
Browser profile name |
HEADLESS |
Override headless default (1/true/yes to enable, 0/false to disable) |
DEV_BROWSER_ALLOW_UNSAFE_PATHS |
Allow artifact writes outside cache dir |
Commands
| Command | Description |
|---|---|
goto <url> |
Navigate to URL |
snapshot |
Accessibility tree with refs |
click-ref <ref> |
Click element by ref |
fill-ref <ref> "text" |
Fill input by ref |
press <key> |
Keyboard input |
screenshot |
Save screenshot (full-page or element crop with padding; crops clamp to 2000x2000) |
bounds |
Get element bounding box (selector/ARIA) |
console |
Read page console logs (default levels: info,warning,error) |
save-html |
Save page HTML |
wait |
Wait for page state |
list-pages |
Show open pages |
close-page <name> |
Close named page |
call <tool> |
Generic tool call with JSON args |
actions |
Batch tool calls from JSON |
status |
Daemon status |
start |
Start daemon |
stop |
Stop daemon |
Run dev-browser-go <command> --help for command-specific options.
Integration with AI Agents
Add to your project's agent docs (or use SKILL.md directly):
## Browser Automation
Use `dev-browser-go` CLI for browser tasks. Keeps context small via ref-based interaction.
Workflow:
1. `dev-browser-go goto <url>` - navigate
2. `dev-browser-go snapshot` - get interactive elements as refs (e1, e2, etc.)
3. `dev-browser-go click-ref <ref>` or `dev-browser-go fill-ref <ref> "text"` - interact
4. `dev-browser-go screenshot` - capture state if needed
Element-level capture:
dev-browser-go bounds ".vault-panel" --nth 1
dev-browser-go screenshot --selector ".vault-panel" --padding-px 10
For detailed workflow examples, see SKILL.md.
Integration with Codex
Codex can use the CLI directly via its shell access. Example prompt:
Use dev-browser-go to navigate to example.com and find all links on the page.
Available commands:
- dev-browser-go goto <url>
- dev-browser-go snapshot [--no-interactive-only] [--no-include-headings]
- dev-browser-go click-ref <ref>
- dev-browser-go fill-ref <ref> "text"
- dev-browser-go screenshot
- dev-browser-go press <key>
- dev-browser-go console [--since <id>] [--limit <n>] [--level <lvl> ...]
Tools
goto <url>- navigatesnapshot- accessibility tree with refsclick-ref <ref>- click elementfill-ref <ref> "text"- fill inputpress <key>- keyboard inputscreenshot- save screenshotbounds- get element bounds (selector/ARIA)console- read page console logs (default levels: info,warning,error; repeatable--level)save-html- save page HTMLwait- wait for page statelist-pages- show open pagesclose-page <name>- close named pagecall <tool>- generic tool call with JSON argsactions- batch tool calls from JSONstatus/start/stop- daemon management
Versioning & Releases
- Simple SemVer tags (
v0.y.zfor fast moves; bump tov1.0.0once stable). - GitHub Release on each tag with the single Go binary (
dev-browser-go) and checksums. - Nix flake outputs follow the tag; no extra artifacts.
License
AGPL-3.0-or-later. See LICENSE.
Vendored code from SawyerHood/dev-browser is MIT licensed. See THIRD_PARTY_NOTICES.md.
README fetched from the repository 19 hours ago. The original is authoritative.