mcpField
C
cookie-sync

cookie-sync

github.com/browserbase开发3.7k2.7k 次安装8 周前更新
代码仓库

关于 cookie-sync

cookie-sync 是一项技能,可将本地 Chrome 兼容浏览器的 Cookie 保存到 Browserbase 持久上下文。它支持按域名筛选和更新现有上下文,之后可通过 browse CLI 创建已登录会话。

主要功能

  1. 01将浏览器 Cookie 同步至持久上下文
  2. 02按域名筛选 Cookie
  3. 03更新现有上下文
  4. 04支持 Verified 浏览器模式
  5. 05设置住宅代理位置

适用场景

  1. 01在 Browserbase 中打开已登录的网站
  2. 02仅同步指定域名的 Cookie
  3. 03为定期浏览任务刷新 Cookie

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/browserbase/skills --skill cookie-sync

安装后在 Claude Code 中输入/cookie-sync确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

EXAMPLES.md
LICENSE.txt
package-lock.json
package.json
REFERENCE.md
scripts/
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

在定时任务中复用上下文

上下文会在各个会话间保留,因此非常适合定时或周期性任务:

  1. 一次性操作(打开笔记本电脑): 运行 cookie-sync → 获取上下文 ID
  2. 定时任务: 使用 browse cloud sessions create --context-id <ctx-id> --persist --keep-alive 创建 Browserbase 会话,然后使用 browse open <url> --cdp <connectUrl> 连接 — 无需本地 Chrome
  3. 按需重新同步: 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

评论

支持 Markdown