RadarTopicsBuildersWeeklyReads
Open Source Radar
SawyerHood/

dev-browser

GitHub

A TypeScript-based Claude skill that enables agent-controlled browser automation via a sandboxed Playwright API, with idle cleanup and configurable daemon behavior. Latest releases show incremental improvements and hardening.

6.5kstars
425forks
15issues
MITlicense
2025since
Star historydaily snapshots by VibeCrowd

Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).

Alternatives & relatedmatched by topic overlap
Reviewgenerated from repository data · Aug 5, 2026

What it is

SawyerHood/dev-browser is a TypeScript-based Claude skill that enables an AI agent to control a web browser through a sandboxed QuickJS runtime, exposing the Playwright API for actions like goto, click, fill, and screenshot. It provides persistent pages, auto-connect to running Chrome or launch Chromium, and includes sandboxed execution with a persistent page model across scripts.

How it works

Scripts run in a QuickJS WASM sandbox with no host access. The tool exposes a browser object with methods such as getPage, newPage, listPages, and closePage, and each Page includes sub-toolsets page.cua (vision) and page.domCua (DOM-id) for pixel-accurate interactions and DOM element targeting. It supports full Playwright semantics via the Page object, including goto, click, fill, locator, evaluate, and screenshot. There is an idle browser cleanup mechanism tied to a configurable timeout, affecting daemon-launched Chromium instances.

Getting started

The README provides CLI installation and quick-start usage:

npm install -g dev-browser
dev-browser install    # installs Playwright + Chromium

Then you can launch a headless session:

dev-browser --headless <<'EOF'
const page = await browser.getPage("main");
await page.goto("https://example.com", { waitUntil: "domcontentloaded" });
console.log(await page.title());
EOF

Or connect to a running Chrome:

dev-browser --connect <<'EOF'
const tabs = await browser.listPages();
console.log(JSON.stringify(tabs, null, 2));
EOF

The README also documents PowerShell usage and Windows-specific notes.

Getting started (continued)

Usage details include embedded scripts API, with globals:

browser.getPage(nameOrId)
browser.newPage()
browser.listPages()
browser.closePage(name)

File I/O is restricted to ~/.dev-browser/tmp/. The Script API section describes page methods and available page toolsets, including page.cua.* and page.domCua.* for pixel- and DOM-based interactions.

Recent releases

Latest: v0.2.9 (2026-07-15) — changes include bound request lifetimes and faster browser actions, plus configurable idle cleanup for managed browsers. Previous: v0.2.8 (2026-06-05) introducing page.cua and page.domCua toolsets and daemon hardening (frame cap, browser-stop). Earlier: v0.2.7 (2026-04-09) recommending domcontentloaded for dev server navigation. Additional notes include v0.2.6 (2026-04-01) pin Playwright to 1.58.2 to prevent protocol drift, and v0.2.5 (2026-03-30) fixes for non-interactive environments and viewport emulation in headed mode.

Traction

Stars: 6505 Forks: 425 Open issues: 15

Behind the repo

Author: Sawyer Hood License: MIT Language: TypeScript Created: 2025-12-02 Last push: 2026-07-15 Topics: claude-code, playwright, skills

Caveats

License: MIT. Age of repository creation is 2025-12-02, with last push on 2026-07-15. Open issues: 15. CI/compatibility notes are described in changelog entries and README sections. The README includes details about idle timeout configuration and environment variable overrides for cleanup, plus Windows/PowerShell installation notes.

Agent skills inside · 1
All skills →
SharePost on XLinkedIn
All trending reposRevenue-verified startups →