关于 cookie-sync
cookie-sync 是一项技能,可将本地 Chrome 兼容浏览器的 Cookie 保存到 Browserbase 持久上下文。它支持按域名筛选和更新现有上下文,之后可通过 browse CLI 创建已登录会话。
主要功能
- 01将浏览器 Cookie 同步至持久上下文
- 02按域名筛选 Cookie
- 03更新现有上下文
- 04支持 Verified 浏览器模式
- 05设置住宅代理位置
适用场景
- 01在 Browserbase 中打开已登录的网站
- 02仅同步指定域名的 Cookie
- 03为定期浏览任务刷新 Cookie
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ browserbase/ skills --skill cookie-sync安装后在 Claude Code 中输入/cookie-sync确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
EXAMPLES.mdLICENSE.txtpackage-lock.jsonpackage.jsonREFERENCE.mdscripts/cookie-sync.mjs详细介绍
Cookie Sync — 本地 Chrome → Browserbase Context
从本地 Chrome 导出 Cookie,并将其保存到 Browserbase 持久化上下文中。同步后,可使用 browse CLI 在该上下文中打开已通过身份验证的会话。
支持按域名筛选(只同步所需的 Cookie)和复用上下文(刷新 Cookie,无需创建新上下文)。
前提条件
- 已启用远程调试的 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。
按域名筛选 — 仅同步特定网站的 Cookie
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 过期时使用此功能。
已验证浏览器模式
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --verified
通过 Verified 浏览器启用 Browserbase Identity,以改善对受保护网站的访问。建议用于 Google 等会对浏览器进行指纹识别的网站。
使用地理定位的住宅代理
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --proxy "San Francisco,CA,US"
通过指定位置的住宅代理路由流量。格式:"City,ST,Country"(州使用 2 个字母的代码)。这有助于匹配本地 IP 的地理位置,避免身份验证 Cookie 被拒绝。
组合使用标志
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains github.com,google.com --verified --proxy "San Francisco,CA,US"
浏览已通过身份验证的网站
同步后,使用带有上下文 ID 的 browse CLI:
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 或状态变更保存回上下文,让会话保持最新,以便下次使用。
完整工作流示例:
# 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
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