Give AI your browser. Check email, review PRs, read LinkedIn messages, search Google, see your calendar -- all from one setup. No API keys. No OAuth. No per-service config.
Log into Chrome once, and AI tools like Claude, Cursor, and others can browse the web as you.
npx openbrowser setup # One-time setup (~2 min)
npx openbrowser login # Log into Google, GitHub, LinkedIn
npx openbrowser inbox # AI reads your unread emails
macOS + Linux. Works standalone or as an MCP server for Claude, Cursor, and other AI tools.
npm install -g openbrowser-ai
Or use directly:
npx openbrowser-ai <command>
Both openbrowser and openbrowser-ai work as CLI names.
# 1. Set up OpenBrowser (~2 min, one time)
openbrowser setup
# 2. Log into your accounts
openbrowser login
# 3. See which accounts are connected
openbrowser status
# 4. Try it out
openbrowser inbox # Read your unread emails
openbrowser prs # Check your open pull requests
openbrowser calendar # See today's meetings and events
openbrowser search "AI agent frameworks 2026"
openbrowser inbox # Read your unread emails
openbrowser prs # Check your open pull requests
openbrowser calendar # See today's meetings and events
openbrowser search "your query" # Search Google as you
openbrowser issues # Check issues assigned to you
openbrowser notifications # Read your GitHub notifications
openbrowser linkedin # See your LinkedIn notifications
openbrowser profile # Get your LinkedIn profile
openbrowser messages # Read your LinkedIn messages
openbrowser recipe list # See all 9 recipes
All recipes work through the browser by default. 6 of 9 also have faster API paths that work without the browser (GitHub via token, Gmail via IMAP, Calendar via API). See API-first setup for details.
openbrowser setup # One-time setup (~2 min)
openbrowser login # Log into your accounts
openbrowser status # See which accounts are connected
openbrowser start # Start the browser
openbrowser stop # Stop the browser
openbrowser restart # Restart the browser
openbrowser doctor # Diagnose connection issues
OpenBrowser includes a built-in MCP server so AI tools can use your browser directly.
Add this to your Claude Desktop settings:
{
"mcpServers": {
"openbrowser": {
"command": "npx",
"args": ["openbrowser-ai", "mcp"]
}
}
}
The MCP server provides 31 tools: session management, full browser control, and all 9 recipes.
OpenBrowser keeps Chrome running in the background with your real login sessions. When your AI needs to check email or review a PR, it connects to that browser and browses as you.
- Setup installs Chrome as a background process that starts automatically
- Login opens Chrome so you can sign into your accounts normally
- Sessions persist across restarts -- no need to log in again
- Recipes connect to the running browser, open pages, and extract structured data
- MCP server gives AI tools direct access to sessions, browser control, and recipes
- Node.js >= 22.6
- Google Chrome or Chromium
- macOS or Linux (Windows not supported)
6 of 9 recipes can skip the browser entirely if you set env vars. This is faster and works on machines without a display.
GitHub (prs, issues, notifications):
gh auth login # easiest
# or: export GITHUB_TOKEN="ghp_..."
Gmail (inbox):
export GMAIL_USER="you@gmail.com"
export GMAIL_APP_PASSWORD="xxxx xxxx xxxx xxxx"
Google Calendar (calendar):
export GOOGLE_ACCESS_TOKEN="ya29...."
# or: export GOOGLE_CALENDAR_API_KEY="AIza..."
Track sessions beyond the built-in Google/GitHub/LinkedIn:
openbrowser domain add slack.com d lc --label Slack
openbrowser domain list
openbrowser domain remove slack.com
All commands support --format json|text. Default: text when interactive (TTY), JSON when piped.
{
"command": "recipe:prs",
"version": "0.4.0",
"timestamp": "2026-03-03T00:00:00.000Z",
"success": true,
"data": { "prs": [...], "total": 1 },
"summary": "1 open PR"
}
import { OpenBrowser } from 'openbrowser-ai';
const ob = new OpenBrowser();
const status = await ob.getStatus();
const prs = await ob.runRecipe('prs');
const browser = await ob.connect(); // Direct Playwright CDP handle
Config file: ~/.openbrowser/config.json
{
"cdpPort": 9222,
"profileDir": "~/.openbrowser/chrome-profile",
"timezone": "Europe/Berlin"
}
On headless Linux servers, openbrowser login uses a virtual display with VNC so you can log in remotely. Requires xvfb and x11vnc:
apt install xvfb x11vnc
MIT