将本地 Chrome 的 Cookie 同步到 Browserbase 持久化上下文(persistent context),让 browse CLI 能够直接访问已登录网页。当用户希望以本人身份浏览网页、同步 Cookie 或通过 Browserbase 登录网站时使用。
Cookie Sync — 本地 Chrome → Browserbase 上下文
将本地 Chrome 的 Cookie 导出并保存到 Browserbase 的**持久化上下文(persistent context)**中。同步完成后,即可通过 browse CLI 带有该上下文打开已登录的浏览器会话。
支持域名过滤(仅同步你需要的网站 Cookie)和上下文复用(直接刷新 Cookie,无需重复创建新上下文)。
前置条件
- 已开启远程调试(Remote Debugging)的 Chrome(或 Chromium、Brave、Edge 等浏览器)
- 如果你的浏览器版本包含
chrome://flags/#allow-remote-debugging,请将其启用并重启浏览器 - 否则,请通过
--remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug启动浏览器,并设置CDP_URL=ws://127.0.0.1:9222 - Chrome 中至少打开了一个标签页
- Node.js 22+
- 环境变量:
BROWSERBASE_API_KEY
安装准备
首次使用前请先安装依赖:
cd .claude/skills/cookie-sync && npm install
使用方法
基础用法 — 同步所有 Cookie
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs
创建一个包含你 Chrome 全部 Cookie 的持久化上下文,并输出上下文 ID(context ID)。
按域名过滤 — 仅同步特定网站
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains google.com,github.com
自动匹配该域名及其所有子域名(例如 google.com 会同时匹配 accounts.google.com、mail.google.com 等)。
刷新已有上下文中的 Cookie
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --context ctx_abc123
将最新的 Cookie 重新注入到之前创建的上下文里。当 Cookie 过期时使用此命令。
验证浏览器模式(Verified browser mode)
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --verified
开启带有 Verified 浏览器的 Browserbase Identity 功能,以提高对受防护网站的访问成功率。推荐用于 Google 等会进行浏览器指纹检测的网站。
带地理位置的住宅代理(Residential proxy)
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --proxy "San Francisco,CA,US"
通过指定位置的住宅代理进行网络路由。格式:"城市,州/省代号,国家代号"(州/省为 2 位字母缩写)。有助于匹配你本地 IP 的地理位置,防止身份验证 Cookie 被拒。
组合参数使用
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains github.com,google.com --verified --proxy "San Francisco,CA,US"
浏览已登录网页
同步完成后,在 browse CLI 中使用返回的上下文 ID(context ID):
SESSION_JSON="$(browse cloud sessions create --context-id <ctx-id> --persist --keep-alive)"
SESSION_ID="$(echo "$SESSION_JSON" | jq -r .id)"
CONNECT_URL="$(echo "$SESSION_JSON" | jq -r .connectUrl)"
browse open https://mail.google.com --cdp "$CONNECT_URL"
在执行 browse cloud sessions create 时添加 --persist 参数,可以在云端会话释放时,将产生的新 Cookie 或状态变更自动保存回上下文,确保下次调用时保持最新的登录状态。
完整工作流示例:
# 步骤 1:同步 Twitter / X 的 Cookie
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains x.com,twitter.com
# 输出示例:Context ID: ctx_abc123
# 步骤 2:以已登录状态浏览 Twitter
SESSION_JSON="$(browse cloud sessions create --context-id ctx_abc123 --persist --keep-alive)"
SESSION_ID="$(echo "$SESSION_JSON" | jq -r .id)"
CONNECT_URL="$(echo "$SESSION_JSON" | jq -r .connectUrl)"
browse open https://x.com/messages --cdp "$CONNECT_URL"
browse snapshot
browse screenshot
browse stop
browse cloud sessions update "$SESSION_ID" --status REQUEST_RELEASE
在定时任务中复用上下文
上下文支持跨会话持久化保存,非常适合用于定时/周期性任务:
- 单次初始化(需开启本地电脑): 运行 cookie-sync → 获取上下文 ID
- 执行定时任务: 通过
browse cloud sessions create --context-id <ctx-id> --persist --keep-alive创建 Browserbase 会话,再通过browse open <url> --cdp <connectUrl>进行连接 —— 全程无需依赖本地 Chrome - 按需重新同步: 当 Cookie 到期失效时,带上
--context <ctx-id>参数重新运行 cookie-sync 刷新即可
常见问题与排查
- "No DevToolsActivePort found" → 如果你的浏览器版本支持,请开启
chrome://flags/#allow-remote-debugging;或者使用--remote-debugging-port=9222参数启动,并设置CDP_URL=ws://127.0.0.1:9222 - "No open page targets found" → 确保 Chrome 中至少打开了一个标签页
- "WebSocket error" → Chrome 可能卡死或无响应;建议强行退出后重新打开
- 上下文中的 Cookie 已过期 → 附带
--context <id>参数重新运行 cookie-sync 即可刷新 - 网站拒绝身份验证 → 尝试加上
--verified参数,和/或添加--proxy参数并传入离你较近的地理位置






