CBrowse
cBrowse Your real browser. Agent-ready.
Ask AI about CBrowse
Powered by Claude · Grounded in docs
I know everything about CBrowse. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
cBrowse
Let AI use the browser you're already signed into.
Real-browser MCP access with cookies, auth, tabs, and page state intact.
cBrowse connects MCP-capable AI agents to the actual browser profile a user already uses.
It pairs a Chrome extension with a browser-specific MCP endpoint so the agent can work with existing cookies, saved logins, open tabs, and page state instead of launching a blank automation browser.
- Reuse cookies, auth, and site state from the signed-in browser
- Inspect, automate, extract, debug, and test in the same context the user sees
- Install once, copy the MCP route, and connect any MCP-capable client
What It Includes
- A Chrome extension that pairs one browser profile to cBrowse.
- A WebSocket bridge and HTTP MCP server that route actions into that browser.
- A browser-specific pairing flow so each client targets the right session-aware browser.
- A landing page,
llms.txt, and a raw Codex skill for quick client setup. - Deployment scripts for a small DigitalOcean Droplet.
How It Works
- The user loads the cBrowse extension in the browser profile they want to expose.
- The extension creates a browser-specific MCP route bound to that profile.
- The agent connects to that route and reuses the current cookies, auth, and page state.
- The agent claims tabs, inspects pages, extracts data, or debugs the app in that same browser context.
Quick Start
1. Install dependencies
npm install
2. Run the project locally
npm run build
npm run dev:relay
In another shell:
npm run dev:mcp:http
3. Load the extension
For local development, load the repo root in Chrome as an unpacked extension:
/Users/cozy/Documents/cBrowse
For a packaged release, cBrowse builds from the standalone extension under:
extension/
4. Connect your agent
Open the extension popup, copy the browser-bound MCP URL, and add it to your client.
For Codex:
codex mcp add cbrowse --url https://your-domain.example/mcp/<browser-key>
If your client supports a raw skill file, point it at:
https://your-domain.example/cbrowse-skill.md
Local Commands
npm run checknpm run buildnpm run dev:relaynpm run dev:mcp:stdionpm run dev:mcp:httpnpm run install:codex-skillnpm run build:extensionnpm run release:local
Build Extension Releases
cBrowse can produce both a distributable .zip and a signed .crx.
CBROWSE_GENERATE_KEY=1 npm run build:extension
Artifacts are written to:
release/cBrowse-extension-v<version>.ziprelease/cBrowse-extension-v<version>.crxrelease/SHA256SUMS.txt
Signing key behavior
- If
release/keys/cbrowse-extension.pemalready exists, it is reused. - If no key exists, run the first build with
CBROWSE_GENERATE_KEY=1to create one. - Without a key, cBrowse still builds the
.zipand skips the.crx. - Keep that
.pemfile safe and private. - Do not commit the private key.
- If you lose the key, the extension ID will change the next time you package it.
You can also point at a custom key:
CBROWSE_EXTENSION_KEY=/absolute/path/to/key.pem npm run build:extension
You can override the Chrome binary too:
CHROME_BIN=/path/to/chrome npm run build:extension
GitHub Release Workflow
This repo includes a GitHub Actions workflow that:
- installs dependencies
- runs type checks
- builds extension release artifacts
- uploads artifacts on manual runs
- publishes them to GitHub Releases on version tags
If you want CI-built CRX files with a stable extension ID, add this repository secret:
CBROWSE_EXTENSION_PEM
Store it as base64-encoded contents of your cbrowse-extension.pem.
Self-Hosting
The cBrowse bridge stack is in:
deploy/digitalocean/
That deployment exposes:
wss://<domain>/bridgehttps://<domain>/mcp
See deploy/digitalocean/README.md for the Droplet flow.
Project Structure
extension/Chrome extension sourcesrc/bridge/bridge server logicsrc/mcp/MCP server and HTTP transportpublic/landing page and setup assets.agents/skills/cbrowse/raw Codex skilldeploy/digitalocean/deployment scriptsscripts/local helper and packaging scripts
Security Notes
- The browser route is pairing-key scoped, not account-auth scoped.
- Any connected agent can act with the same site access already present in that browser profile.
- The extension should only connect to infrastructure you control.
- Treat the packaged extension key and browser MCP routes as sensitive.
License
MIT. See LICENSE.
