cookie-sync について
cookie-syncは、ローカルのChrome互換ブラウザーからBrowserbaseの永続コンテキストへCookieを移すスキルです。ドメインによる絞り込みや既存コンテキストの更新ができ、browse CLIで認証済みセッションを利用できます。
主な機能
- 01ブラウザーCookieを永続コンテキストに同期
- 02ドメインによるCookieの絞り込み
- 03既存コンテキストの更新
- 04Verifiedブラウザーモードへの対応
- 05住宅プロキシの場所設定
活用シーン
- 01Browserbaseで認証済みサイトを開く
- 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 の persistent context に保存します。同期後は、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 で少なくとも 1 つのタブを開いていること
- 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 が出力されます。
ドメインでフィルタリング — 特定のサイトのみ同期
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
スケジュール済みジョブでのコンテキストの再利用
コンテキストはセッションをまたいで保持されるため、スケジュール済みまたは定期的なタスクに最適です。
- 一度だけ(ノート PC を開いているとき): 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 で少なくとも 1 つのタブを開いてください
- 「WebSocket error」 → Chrome が応答しなくなっている可能性があります。強制終了して再度開いてください
- コンテキスト内の Cookie の有効期限が切れた →
--context <id>を指定して cookie-sync を再実行し、更新してください - サイトに認証を拒否された →
--verifiedや、現在地に近い場所を指定した--proxyを追加してみてください