byob is a TypeScript project that runs as a local MCP (Model Context Protocol) server, enabling AI coding tools to control an existing Chrome browser instance. With 108 GitHub stars, it addresses a common limitation in AI assistants: their inability to access real, logged-in web sessions without manual workarounds. Tools like Claude Code, Cursor, Cline, and Windsurf can then issue commands such as summarizing a Twitter timeline, searching Google and clicking results, taking screenshots, extracting session cookies, or checking unread Gmail count.
The project pairs a Chrome extension (Manifest V3 compliant, version 0.3) with a server that communicates via stdio. This setup lets AI agents interact with pages where users are already authenticated, bypassing the need to copy cookies or spin up isolated browsers.
Core features
byob provides direct browser control through natural language prompts processed by MCP-compatible tools. Key capabilities include:
- Access to logged-in sessions: Views pages with existing logins, such as Twitter or GitHub, without extra configuration.
- Bot detection evasion: Operates as a real human browser, avoiding blocks common in headless setups.
- Quick actions: Supports reading timelines, navigating links, screenshots, cookie extraction, and tab inspections.
- MCP integration: Auto-registers with selected AI tools during setup, using stdio transport.
- MIT-licensed and local: Runs entirely on the user's machine at no cloud cost.
Setup takes about five minutes via script, after which Chrome handles the extension side.
Getting it running
Prerequisites include Node.js version 20 or higher, bun (a fast JavaScript runtime), and Chrome. The recommended quick install uses a single command:
curl -fsSL https://raw.githubusercontent.com/wxtsky/byob/main/install.sh | bash
This script verifies dependencies, installs bun if missing, clones the repository to ~/byob (or a custom path via BYOB_INSTALL_DIR), builds components, and runs an interactive setup. The setup prompts for language (English or Chinese), generates a unique extension key, builds the MV3 extension, configures Native Messaging, and registers selected AI tools.
For manual installation:
git clone https://github.com/wxtsky/byob
cd byob
bun install
bun run setup
The bun run setup command handles the interactive steps above. After it completes, three manual actions follow.
First, load the extension in Chrome:
- Navigate to
chrome://extensions. - Enable Developer mode (top-right toggle).
- Click Load unpacked (top-left) and select the output folder, typically
/path/to/byob/packages/extension/output/chrome-mv3.
Second, fully restart Chrome by quitting all instances (⌘Q on macOS or close everything on Windows/Linux) and reopening. Chrome loads Native Messaging hosts only at startup.
Third, MCP registration occurs automatically for chosen tools, but manual options exist for others. For Claude Code:
claude mcp add byob -s user -- /path/to/tsx /path/to/byob-mcp.ts
Add -e BYOB_ALLOW_EVAL=1 for browser_eval support. Cursor and Windsurf use JSON config files like:
{
"mcpServers": {
"byob": {
"command": "/path/to/tsx",
"args": ["/path/to/byob-mcp.ts"]
}
}
}
Place this in .cursor/mcp.json (project-specific) or ~/.cursor/mcp.json (global) for Cursor, and ~/.codeium/windsurf/mcp_config.json for Windsurf.
Once loaded, AI tools detect byob and can send browser commands immediately.
Real-world use cases
Developers using AI coding environments benefit most. For instance, prompt Claude Code to "read my Twitter timeline and summarize the top 5 posts"—it accesses the live, logged-in feed. Or tell Cursor to "google 'mcp protocol spec', click the first result, read the page," which navigates authentically.
Other examples include grabbing GitHub cookies for API calls (curl with auth), screenshotting sites like example.com, or querying tab states ("open my Gmail tab and tell me how many unread"). These suit workflows where AI needs web context without breaking sessions or triggering CAPTCHAs.
If you rely on tools like Cline for debugging or Windsurf for code assistance, byob extends their reach to browser-bound tasks.
How it compares
byob stands out against common browser automation options, as shown in its comparison table:
| Aspect | WebFetch | Headless Puppeteer | byob |
|---|---|---|---|
| Sees logged-in pages | ❌ | ⚠️ manual cookie copy | ✅ already logged in |
| Passes bot detection | ❌ | ❌ | ✅ real human browser |
| Setup time | 0 | hours | ~5 min |
| Cloud cost | free | $$ | free |
WebFetch skips authentication entirely. Headless Puppeteer requires cookie imports and often fails anti-bot checks, plus lengthy setup. byob reuses the open Chrome profile for instant, human-like access.
Who this is for
Target users are those with MCP-enabled AI tools—Claude Code, Cursor, Codex CLI, Windsurf, Cline—and a need for browser interaction in coding flows. It's ideal for developers debugging web apps, researching via search, or automating personal dashboards without cloud dependencies.
Front-end engineers or AI power users who keep Chrome open with multiple logged-in tabs will find it practical. Version 0.3 focuses on stability for these tools, with Chinese README support.
byob skips broader automation frameworks like Playwright, sticking to lightweight MCP integration. Those needing headless scalability or non-Chrome browsers might look elsewhere. Source code and changelog sit at https://github.com/wxtsky/byob.
Comments