cookie-sync

cookie-sync

熱門

將本地 Chrome 的 Cookie 同步至 Browserbase 持久化 Context(Persistent Context),使 `browse` CLI 能夠存取已登入的網站。當使用者需要以個人身份瀏覽網頁、同步 Cookie 或透過 Browserbase 登入網站時使用。

3668星標
233分支
更新於 2026/7/30
SKILL.md
唯讀
名稱
cookie-sync
描述

將本地 Chrome 的 Cookie 同步至 Browserbase 持久化 Context(Persistent Context),使 `browse` CLI 能夠存取已登入的網站。當使用者需要以個人身份瀏覽網頁、同步 Cookie 或透過 Browserbase 登入網站時使用。

Cookie Sync — 本地 Chrome → Browserbase Context

將本地 Chrome 中的 Cookie 匯出並儲存至 Browserbase 的**持久化 Context(Persistent Context)**中。同步完成後,即可使用 browse CLI 搭配該 Context 開啟已通過身分驗證的 Session。

支援網域篩選(僅同步需要的 Cookie)以及 Context 複用(無需建立新 Context 即可重新整理 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 的持久化 Context,並輸出 Context ID。

依網域篩選 — 僅同步指定網站

node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains google.com,github.com

會比對該網域及其所有子網域(例如 google.com 會比對 accounts.google.commail.google.com 等)。

重新整理既有 Context 中的 Cookie

node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --context ctx_abc123

將最新的 Cookie 重新寫入先前建立的 Context 中。當 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"

透過指定位置的住宅代理伺服器(Residential proxy)路由流量。格式:"城市,州縮寫,國家"(州縮寫為 2 個英文字母)。這有助於符合你本地 IP 的地理位置,避免驗證 Cookie 被網站拒絕。

組合 Flag 使用

node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains github.com,google.com --verified --proxy "San Francisco,CA,US"

瀏覽已身分驗證網站

同步完成後,即可搭配 Context 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 Flag,能在雲端 Session 釋放時將所有新的 Cookie 或狀態變更寫回 Context,確保下次使用時 Session 依然保持最新狀態。

完整工作流程範例:

# 步驟 1:同步 Twitter 的 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

在排程任務中複用 Context

Context 可跨 Session 持久化保存,非常適合用於定期/排程任務:

  1. 僅需執行一次(開啟筆電): 執行 cookie-sync → 取得 Context ID
  2. 排程任務: 使用 browse cloud sessions create --context-id <ctx-id> --persist --keep-alive 建立 Browserbase Session,接著使用 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 可能未回應;請強制結束並重新開啟 Chrome
  • Context 中的 Cookie 已過期 → 重新執行帶有 --context <id> 的 cookie-sync 以更新 Cookie
  • 身分驗證遭網站拒絕 → 嘗試加入 --verified 及/或設定靠近你所在位置的 --proxy