A REPL for browsers.

Humans get GUIs.
Programs get APIs.
Agents get Duet Browser.

Duet Browser makes live websites legible to AI agents. Pages become numbered action lists. Stable refs survive DOM churn. Human handoff at auth, CAPTCHA, and MFA. No screenshots. No selectors.

#book a holiday — SFO to NYC, flights + car + hotel
$dub go https://kayak.com
$dub hud
  [1] input: origin
  [2] input: destination
  [7] button: Search flights
$dub do 7 && dub hud
  [3] UA 342 · Tue 2:15pm · $337 · 5h 30m
  [4] DL 489 · Tue 3:40pm · $391 · 5h 15m
$dub human-drives # CAPTCHA
ok: paused — human unblocked · resuming
#Done. Flights, car, 3 hotels compared. UA 342 · $337.

From agents who actually used it

Read what happened.

See the loop in 90 seconds

hud → do → hud. On real sites.

Cloud VMs · Azure/AWS/GCP

Flight booking · Multi-portal

Canvas drawing · Modal layers

Proof it works

Agents drove cloud consoles, booked holidays, and submitted a funding application.

No cloud SDK. No prewritten scripts. Real websites, operated through Duet Browser.

Full Self Browsing has been achieved.
Claude Sonnet 4.6 creating VMs on AWS, Google Cloud, and Azure web portals using Duet Browser — three clouds in one browser session.
▶ Play
Azure · AWS · GCP

Three clouds. One browser loop.

Agent creates and deletes VMs across three cloud providers — through the browser portals, no SDK scripts, no Playwright flows. Same hud → do loop on all three. Fedora CoreOS, Kali Linux, FreeBSD — all from the terminal.

  • Azure Portal (Fluent UI, dynamic blades, VM creation)
  • AWS EC2 (regions, tables, modals, status polling)
  • GCP Compute Engine (projects, async ops, IAM)
Claude Opus filling out the Y Combinator application forms autonomously through Duet Browser.
▶ Play
Y Combinator Application

Agent submitted our YC application. End to end.

Claude Opus filled out and submitted a real Y Combinator application — forms, file uploads, tab switching, login handoffs — completely autonomously. Then recorded a founder video and uploaded it to YouTube mid-session.

  • Multi-section forms with stable refs across scrolls
  • Login handoffs handled cleanly — no credential exposure
  • Tab switching between YC application and YouTube
Gemini 3.5 Flash booking flights, car rental, and hotel stays end-to-end using Duet Browser.
▶ Play
Google Flights · Airlines · Rentalcars · Booking.com

Complete holiday booked. Flights, car, three hotels.

Gemini 3.5 Flash books an entire holiday across four portals in one session — Google Flights, American Airlines checkout, Rentalcars, and multiple Booking.com hotel stays. Nested payment iframes, dynamic calendar controls, input validation — handled.

  • Cross-origin payment iframes with frame switching
  • Dynamic calendar controls and date pickers
  • Human handoff at payment confirmation
More demos →

How it works

Three steps. That’s the whole loop.

Duet Browser gives agents a browser loop that works on any live website — no scripting, no selectors, no framework adoption required.

01

HUD

dub hud returns the page as a numbered action list. Stable refs that survive DOM churn. No screenshots. No token-heavy HTML dumps. 500 tokens instead of 40,000.

02

Act

dub do N acts on ref N. dub type fills fields. dub scroll until "text" scans panels. Cross-frame navigation just works. Dialogs and layers surface their own refs.

03

Handoff

When the web needs a human — CAPTCHA, MFA, final payment — the agent pauses cleanly. Human unblocks it. Agent resumes with full session state intact. No re-login. No lost progress.

Not browser automation. Web improvisation. Use Playwright when you know the script. Use Duet Browser when the agent has to figure out the website.

One command. Every agent knows the loop.

Install the skill. Your agent drives.

Run dub teach and your coding agent gets a SKILL.md with the complete browser loop: hud first, use numbered refs, pause on blockers, report with transcripts.

dub teach

Installs SKILL.md into .claude/, .grok/, .gemini/, .copilot/, and .codex/ — then prompt your agent naturally.

Claude CodeGrokGemini CLIGitHub CopilotOpenAI Codex

Try the full browser loop free for 5 days.

No crippled mode. Observe, hud, do, recover, pause, transcript — the real thing.

5-Day Trial

$0for most emails

Most people qualify free — including Gmail, Outlook, Yahoo, iCloud, higher-ed, and work addresses. A $5 trial pass applies only in limited cases.

Solo Dev $120/yr · Pro Runner $480/yr · Platform from $5k →

Why not just…

Why not Playwright or Selenium?

Use Playwright when you know the script. Use Duet Browser when the agent has to figure out the website. Scripts replay. Agents improvise.

Why not screenshots?

Screenshots are token-heavy ($0.15/click at scale), disconnected from actionable state, and blind to overlays and frames. Duet Browser gives structured state: 500 tokens instead of 40,000, with stable numbered refs.

Does it bypass CAPTCHAs or auth?

No. Duet Browser detects blockers and creates a clean human handoff. The agent explains what happened. The human unblocks it. The session resumes without re-login.

Why not Stagehand, BrowserUse, or other SDKs?

Those are frameworks for building agents inside specific stacks. Duet Browser is the shell-native layer: one binary any coding agent or human can use without adopting a framework.

Developer Self-Vibe

“I could just vibe this in a weekend.”

No. You couldn’t.

You’re going to spend two hours hooking up Puppeteer to a Vision model.

$0.15 a click
10s per turn
Cloudflare bans

It’s going to cost you $0.15 a click and take 10 seconds per turn while it tries to find a bounding box. Then your bot will get instantly banned by Cloudflare.

You’ll waste an entire month trying to build around behavioral heuristics.

Or.

Pay the equivalent of one engineering hour. Use what actually works in production.

A bulldozer isn’t fast. But it is relentless.

Your agent can code. Now give it the wheel.

Stop doing web tasks yourself. Prompt your agent.

Duet Browser. Taking you there faster.