Open source plugin for Claude Code and Codex

Your AI. Your team.One browser.

Work alongside Claude Code, Codex and your teammates in the same browser. Share tabs, follow their cursors and take over whenever you need.

Get PairBrowse

Plugin and helper MIT licensed. Read the source on GitHub

  1. 01 Claude fills the form
  2. 02 Maya joins with Codex
  3. 03 You review and submit

Presence

See who's doing what.

Named cursors and shared tabs, so you always know who is where and what they are touching.

In this browser

Live
  • YYouHostReviewing the form
  • Claude CodeAgentFilling Work email
  • MMayaTeammateWatching
  • Maya's CodexAgentReading Project brief
Shared tabs follow the host.
Teammates who join see the tabs you open, as you open them.
The agent shows its work.
A bar at the bottom of each page and the side panel say what it is doing right now.
One agent per tab.
Claude Code, Codex and your teammates' agents share one browser and split the work instead of typing over each other.

For developers

Share your dev work, live.

Working on an app at localhost? Ask your agent "share my dev server with Sam". Your localhost tabs show up in Sam's browser and follow you like any shared tab.

Next.jsNuxtViteDjangoFastAPIFlaskRailswhatever runs on localhost

Test it together

Sam tests. You fix.

A drive joiner can fill in the forms on your localhost app by hand, or let their own Claude Code or Codex click through it, trying invalid input and checking the layout. It reports what breaks with steps, expected and actual, while you watch and fix the code. Watch joiners still only look.

  • Its own tunnel, no deploy.

    A Cloudflare Quick Tunnel to a small proxy on your computer, never straight to the dev server. No public URL to publish, no tunnel account to set up.

  • Only people you let in.

    Each joiner gets a key of their own, set by their PairBrowse as an HttpOnly cookie, never in an address. Anyone else with the address gets nothing.

  • Watch or drive.

    Watch joiners look around and get hot reloads, but cannot send forms. Drive joiners, and their agents, use it fully, each signed in as themselves.

  • No config changes.

    Your dev server sees localhost as the Host, Origin and Referer it expects, so its host checks pass. Redirects and cookies come back for the shared address.

Your agent asks you before sharing. Up to 3 dev servers at once. "Stop sharing my dev server" ends it, and so does the last join code ending or PairBrowse stopping.

How dev server sharing works

Fast mode

A whole page in one move.

The agent sends a full page as one pairbrowse_run call: go, fill, choose, tick, click, wait. No model turn between steps.

  • A typical signup page takes about 0.3 s. The reply is a short outline of the next page, about 50 tokens.

  • Each field is checked after focus leaves it. A field that won't keep its value stops the run and says why.

  • A flow that worked saves as a playbook and replays with new values in one call.

Your tabs

It sees every tab you have open.

Sign into your email once. When a form asks for a code, Claude switches to your inbox tab, copies it, and switches back to fill it in.

  • Uploads without Finder

    Upload buttons never open the file picker. The file you mean is copied into its uploads folder and attached.

    1. logo.png
    2. uploads/
    3. attached
  • Popups handled

    Cookie banners and plain popups are found by their shape and place on the page, in any language, and closed.

    1. banner found
    2. Accept
    3. closed

Sessions

Pick up any session.

The browser's first tab is the session picker: your three most recent sessions, how many tabs each has and who used them, with a Live badge when people are in it right now.

  • One browser per job

    Each session is a separate browser with its own logins and tabs, for example one per client. A fresh session is clean and deleted when you switch away.

  • Tabs come back in order

    After a restart, an "Opening tabs" screen brings each tab back one by one and puts you on the tab you were on.

  • Or just say it

    Tell the agent "use the client-x session" or "I want a fresh session" and the picker never shows.

Profile

Never asks twice.

Company details live in your Profile, so the next form fills itself. Passwords stay as names: the agent never sees the value.

  • What you set yourself is never overwritten by what the agent or a form saw.

  • Passwords, PINs, codes, card and bank numbers are never remembered.

  • A password is filled only on the HTTPS sites you allowed, and masked in everything the agent reads.

Handoff

Take over when it matters.

The agent drafts, you decide. PairBrowse stops at the steps that need a person and hands them to you, in the same tab.

  • Clicks that pay, delete, publish, send or submit ask you first.
  • Logins, 2FA, CAPTCHAs and payment are handed to you.
  • Type in any field and the agent waits. Fields you fill stay yours.
Read the security model
Filled by Claude CodeFilled by you, stays yours

Runs and reviews

Stop today. Carry on tomorrow.

Long listings take more than one sitting. Say "carry on" and Claude picks up exactly where it stopped, then checks the official rules before anything goes live.

  • Every job is saved as a run: done, left, your turn, open tabs. Progress is saved after each page.
  • After a browser restart, your tabs reopen one by one, in order.
  • Publish and Submit for review stay locked until a passing review is saved. This can't be turned off.

The PairBrowse browser

A browser that looks like yours.

A Chromium build made for agents working in a real, logged-in browser. Automated browsers often differ from everyday ones in ways sites notice. The PairBrowse browser keeps those differences out, so sites see a normal browser.

  • macOS, Apple Silicon and Intel
  • Linux x64

Know the limits: it runs without Chrome's own sandbox, and on macOS without Google Safe Browsing, so keep to sites you'd open anyway. Security limits

Human-like input, when you want it

Optional, off by default

Off by default, so actions stay deterministic for testing. Turn it on and moving, clicking, dragging, scrolling and typing follow one human input style: eased, slightly curved mouse paths and key-by-key typing with human timing, all as native trusted input.

~/.pairbrowse/config.json

{ "pairbrowse": {
  "humanize": true
} }
  • Eased, curved paths
  • Key-by-key timing
  • Native trusted input

Pinned and verified

Downloaded once from the public GitHub release, then checked before it is used. The engine pack it launches with is checked the same way, before every load.

  1. SHA-256 pinnedThe build and its engine pack are checked against pinned hashes.
  2. Bundle intactOn macOS the app's ad-hoc code signature must verify. That shows the app is intact, not who made it; the pinned SHA-256 ties it to the release.
  3. Self-check, rollbackA launch test runs, and the previous version is kept.

Free for personal, non-commercial use. Commercial use comes with PairBrowse Pro (coming soon), or set "browserEngine": "chromium" for a fully open setup. That stops basic navigator.webdriver checks, nothing more.

Use cases

Built for the web work agents get stuck on.

Logins, email codes, store rules and final clicks are where an agent alone stalls. These are the jobs PairBrowse was made for.

You ask

Sign me up for a developer account and get me an API key.

What happens

  1. Claude: Filled the account page in one run
  2. Claude: Moved on to the next page
  3. You: Your turn: solve the CAPTCHA
  4. Claude: Copied the email code from your inbox tab
Skill: pairbrowse-signup

Open source

Open source, by design.

A browser your agent drives should be one you can inspect. PairBrowse is built in the open, so you can see exactly what it does with your pages, your logins and your team.

  • Read the code that guards your browser

    The plugin and helper are MIT. Every guard, hand-off and join check is in the open, next to the tests that hold it.

  • Small and pinned

    The helper and hooks use only Node's standard library. The browser runtime is pinned with a lockfile and installed without install scripts.

  • Fully open when you want it

    One setting runs PairBrowse on an open Chromium build instead of the native browser, fine for commercial use under MIT.

  • Built in public

    Issues, fixes and docs happen on GitHub. Fixes stay general and are checked live on real sites before they land.

pairbrowse / pairbrowse
Public
main MIT License Node standard library Tested
config.json

# fully open setup, in ~/.pairbrowse/config.json

{ "browserEngine": "chromium" }

The native PairBrowse browser is free for personal use. How the licenses work

Install

Start in minutes.

Two commands add PairBrowse to your coding agent. Then ask for a web task and watch it work.

  1. Choose your coding agent

  2. Copy the install command

    Terminal, Claude Code
    claude plugin marketplace add pairbrowse/pairbrowseclaude plugin install pairbrowse@pairbrowse

  3. Open a session

    Ask your agent for any web task. The PairBrowse window opens, and its first tab lets you pick a saved or fresh session.

Need more detail? Read the full install guide

Bring everyone onto the same page.

Install the plugin, ask your agent for a web task, and invite your team in.