Skills cookie-sync
Sync cookies from local Chrome to a Browserbase persistent context so the browse CLI can access authenticated sites. Use when the user wants to browse as themselves, sync cookies, or log into sites via Browserbase.
git clone https://github.com/browserbase/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/browserbase/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cookie-sync" ~/.claude/skills/browserbase-skills-cookie-sync && rm -rf "$T"
skills/cookie-sync/SKILL.mdCookie Sync — Local Chrome → Browserbase Context
Exports cookies from your local Chrome and saves them into a Browserbase persistent context. After syncing, use the
browse CLI to open authenticated sessions with that context.
Supports domain filtering (only sync cookies you need) and context reuse (refresh cookies without creating a new context).
Prerequisites
- Chrome (or Chromium, Brave, Edge) with remote debugging enabled
- If your browser build exposes
, enable it and restart the browserchrome://flags/#allow-remote-debugging - Otherwise, launch with
and set--remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debugCDP_URL=ws://127.0.0.1:9222 - At least one tab open in Chrome
- Node.js 22+
- Environment variable:
BROWSERBASE_API_KEY
Setup
Install dependencies before first use:
cd .claude/skills/cookie-sync && npm install
Usage
Basic — sync all cookies
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs
Creates a persistent context with all your Chrome cookies. Outputs a context ID.
Filter by domain — only sync specific sites
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains google.com,github.com
Matches the domain and all subdomains (e.g.
google.com matches accounts.google.com, mail.google.com, etc.)
Refresh cookies in an existing context
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --context ctx_abc123
Re-injects fresh cookies into a previously created context. Use this when cookies have expired.
Advanced stealth mode
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --stealth
Enables Browserbase's advanced stealth mode to reduce bot detection. Recommended for sites like Google that fingerprint browsers.
Residential proxy with geolocation
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --proxy "San Francisco,CA,US"
Routes through a residential proxy in the specified location. Format:
"City,ST,Country" (state is 2-letter code). Helps match your local IP's geolocation so auth cookies aren't rejected.
Combine flags
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains github.com,google.com --stealth --proxy "San Francisco,CA,US"
Browsing Authenticated Sites
After syncing, use the
browse CLI with the context ID:
browse open https://mail.google.com --context-id <ctx-id> --persist
The
--persist flag saves any new cookies or state changes back to the context, keeping the session fresh for next time.
Full workflow example:
# Step 1: Sync cookies for Twitter node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains x.com,twitter.com # Output: Context ID: ctx_abc123 # Step 2: Browse authenticated Twitter browse open https://x.com/messages --context-id ctx_abc123 --persist browse snapshot browse screenshot browse stop
Reusing Contexts for Scheduled Jobs
Contexts persist across sessions, making them ideal for scheduled/recurring tasks:
- Once (laptop open): Run cookie-sync → get a context ID
- Scheduled jobs: Use
— no local Chrome neededbrowse open <url> --context-id <ctx-id> --persist - Re-sync as needed: When cookies expire, run cookie-sync again with
to refresh--context <ctx-id>
Troubleshooting
- "No DevToolsActivePort found" → Enable
if your browser build exposes it, or launch withchrome://flags/#allow-remote-debugging
and set--remote-debugging-port=9222CDP_URL=ws://127.0.0.1:9222 - "No open page targets found" → Open at least one tab in Chrome
- "WebSocket error" → Chrome may be hung; force quit and reopen it
- Cookies expired in context → Re-run cookie-sync with
to refresh--context <id> - Auth rejected by site → Try adding
and/or--stealth
with a location near you--proxy