Browserface
browserface.local / human-handoff
A face for your headless browser

Human handoffs for browser agents.

Browserface lets an agent keep driving Chrome over CDP until it hits a sensitive step. Then a human can enter the same live session, solve the prompt, and return control without handing over passwords, payment details, or judgment.

Loginpasswords and SSO2FAcodes, passkeys, approvalsCAPTCHAhuman-only promptsPaymentcheckout and card steps
checkout.stripe.test / 2fa
500ms frames
Secure checkout$248.00
Human verification requiredEnter bank approval code
agent paused
agent run
  1. navigate /checkout
  2. type shipping
  3. request human
  4. wait for ack
Telegramjust now

Browserface needs you

Approve the payment challenge in the shared Chrome session.

Keep secrets out of the agent loop

When the browser asks for trust, Browserface asks you.

Passwords, bank prompts, account recovery, and payment confirmations can stay with the person who owns them. The agent pauses, the human completes the step, and the same session continues.

Credentials stay with the human
CAPTCHA and 2FA become handoffs
Checkout waits for explicit approval
Critical path handoff

A controlled interruption, not a remote desktop detour.

Agents and humans share the same primitives: click, type, scroll, navigate. Browserface turns intervention into a small protocol event instead of a screen-sharing scramble.

01

Agent keeps the wheel

Claude, Hermes, Browser Harness, Playwright, or your own worker continues through normal CDP automation.

02

Browserface exposes the same session

The bridge streams screenshots, page state, and a structured action protocol over WebSocket.

03

Human handles the irreversible step

Send the prompt to Telegram or another channel, take over, then hand the browser back to the agent.

Human only when it matters

Automation keeps moving until a person should decide.

Browserface is built for the moments where a bot should not guess, store a secret, or click through an irreversible prompt on its own.

Live handoffApprove the sensitive stepThe browser resumes after your input.
Shared wire format

One protocol both sides can speak.

The bridge pushes browser state. Clients and agents respond with structured actions. That shared contract is why a human can take over briefly and the agent can resume cleanly after an ack.

protocol.ts
server pushesscreenshotpagereadyackerror
client sendshelloclickmousemovetypekeyscrollnavigatereloadbackforward
Install and connect

Attach to Chrome locally. Share only the bridge.

Browserface can auto-discover your daily-driver Chrome through DevToolsActivePort, connect to a specific CDP port, or attach to a browser WebSocket URL. Keep CDP bound locally; front any exposed UI with auth.

daily Chromeheadless
$npm install
$npm run build
$npm start
#open http://127.0.0.1:8787
Read the repo