Show HN: Drive your real logged-in Chrome from Claude Code and Codex (MCP) Browser Bridge, a local MCP server and Manifest V3 Chrome extension, lets AI coding agents Claude Code and OpenAI Codex CLI control a user's real logged-in Chrome browser, inheriting cookies, SSO, and 2FA state without re-login. The tool ships 63 tools including DevTools-grade network capture, a web-security testing toolkit, playbooks, and session recording with export to high-resolution MP4. Drive your real, logged-in Chrome from an AI agent - over the Model Context Protocol. No headless browser. No fresh profile. No re-login. Your agent reads and acts inside the exact sessions you're already signed into. Browser Bridge is a local MCP server + Manifest V3 Chrome extension that lets AI coding agents - Claude Code and OpenAI Codex CLI - control the Chrome you use every day. Because it runs inside your real profile, the agent inherits your cookies, HttpOnly sessions, SSO, and 2FA state automatically. Ask it to "read my feed and summarize it" or "capture the API traffic on this page and show me the responses" - and it works against the live, authenticated app. It ships 63 tools spanning everyday browsing, DevTools-grade network capture, a full web-security testing toolkit, playbooks saved, self-healing recipes , and session recording - record an interaction into a self-contained, offline-faithful HTML replay full-page, custom-designed player, with a smooth mouse-trail / click / keystroke overlay and export it to a high-resolution MP4 . /vitalysim/browser-bridge/blob/main/docs/replay.gif Record a session → a self-contained, offline replay with a smooth mouse-trail / click / keystroke overlay → export to a high-res MP4. Quick start quick-start Why Browser Bridge? why-browser-bridge See it in action see-it-in-action Architecture architecture Features & tools features--tools Playbooks playbooks Recording recording Setup setup Security & responsible use security--responsible-use Limitations limitations Roadmap roadmap Contributing contributing License license Build both packages, run the server, load the extension, connect your agent - about 60 seconds: git clone https://github.com/vitalysim/browser-bridge.git && cd browser-bridge cd server && npm install && npm run build MCP server TypeScript → dist/ cd extension && npm install && npm run build bundles background.js + options.js cd server && npm run install-service run the server at login systemd/launchd - Load the extension - open chrome://extensions , enable Developer mode , click Load unpacked , select the extension/ folder, then open its options and paste the token from ~/.browser-bridge/token → Save & connect . - Connect your agent: Claude Code claude mcp add --transport http --scope user browser-bridge \ http://127.0.0.1:8765/mcp --header "Authorization: Bearer $ cat ~/.browser-bridge/token " OpenAI Codex CLI - export the token so Codex can read it, then register the server in one command: export BROWSER BRIDGE TOKEN="$ cat "$HOME/.browser-bridge/token" " add to your shell profile codex mcp add browser-bridge --url http://127.0.0.1:8765/mcp --bearer-token-env-var BROWSER BRIDGE TOKEN Verify: curl -s http://127.0.0.1:8765/health → {"ok":true,"extensionConnected":true} . Full details, autostart options, and the manual config alternatives are in Setup setup . | Browser Bridge | Headless Playwright / Puppeteer | A raw CDP debug port | | |---|---|---|---| Uses your real logged-in profile | ✅ | ❌ fresh profile, re-login | | Works from Claude Code and Codex | ✅ | - | - | No open debug port on your session | ✅ outbound WS | n/a | ❌ any local process can hijack it | DevTools-grade capture bodies, WS | ✅ | partial | ✅ | One-command install, no native host | ✅ | ✅ | ✅ | One server, two clients. Both agents connect to the same token-authed endpoint http://127.0.0.1:8765/mcp . Anthropic's Claude in Chrome is Claude-only and OpenAI's Codex browser extension is desktop-app-only - neither gives the Codex CLI a real browser. Browser Bridge does. Extension, not a debug port. Chrome 136+ blocks --remote-debugging-port on your default profile. A Manifest V3 extension runs inside that profile instead - banner-free by default, with chrome.debugger CDP power features attached only on demand. Outbound WebSocket, no native-messaging host. The extension dials ws://127.0.0.1:8765/ws ; there are no host-manifest files to install, and the WS keepalive keeps the MV3 service worker alive. Localhost-only + token auth. The server binds 127.0.0.1 , checks a bearer token on both the MCP endpoint and the WS handshake, and rejects any WS origin that isn't chrome-extension:// . With Chrome open and logged in, just ask your agent in natural language: Everyday list my open tabs open github.com, read my notifications, and summarize them Screenshots take a full-page retina screenshot of this page and save it to ~/Downloads/page.png Network capture start a network capture on this tab, reload it, and show me the JSON API responses Record & export record my session, I'll click around and type, then stop - build the HTML replay and a 2x MP4 Web-security authorized targets only capture identity "A" for app.example.com, then log in as B and capture "B"; replay the invoices request as A, B and anon and show me the authz matrix Remote desktop / canvas e.g. a CTF AttackBox screenshot the DCV desktop, click the terminal, type "id" and press Enter, then screenshot the output Both Claude Code and Codex drive the same live browser through the same endpoint. Browse & interact - tabs, navigation, and click / fill / hover / type / scroll with auto-wait actionability found + visible + enabled, auto-escalating to a trusted CDP click when a target is overlay-covered , plus file and image upload - all reaching into iframes incl. cross-origin and open shadow DOM - and coordinate-level trusted input input for