Cookie Sync — Local Chrome → Browserbase Context
Exporte les cookies de votre Chrome local et les enregistre dans un contexte persistant Browserbase. Après synchronisation, utilisez la CLI browse pour ouvrir des sessions authentifiées avec ce contexte.
Supporte le filtrage par domaine (synchroniser uniquement les cookies nécessaires) et la réutilisation de contexte (rafraîchir les cookies sans créer un nouveau contexte).
Prérequis
- Chrome (ou Chromium, Brave, Edge) avec le débogage à distance activé
- Si votre build de navigateur expose
chrome://flags/#allow-remote-debugging, activez-le et redémarrez le navigateur - Sinon, lancez avec
--remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debuget définissezCDP_URL=ws://127.0.0.1:9222 - Au moins un onglet ouvert dans Chrome
- Node.js 22+
- Variable d'environnement :
BROWSERBASE_API_KEY
Installation
Installez les dépendances avant la première utilisation :
cd .claude/skills/cookie-sync && npm install
Utilisation
Basique — synchroniser tous les cookies
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs
Crée un contexte persistant avec tous vos cookies Chrome. Retourne un ID de contexte.
Filtrer par domaine — synchroniser uniquement des sites spécifiques
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains google.com,github.com
Correspond au domaine et à tous ses sous-domaines (ex. google.com correspond à accounts.google.com, mail.google.com, etc.)
Rafraîchir les cookies dans un contexte existant
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --context ctx_abc123
Réinjecte les cookies frais dans un contexte précédemment créé. À utiliser quand les cookies ont expiré.
Mode furtif avancé
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --stealth
Active le mode furtif avancé de Browserbase pour réduire la détection de bot. Recommandé pour les sites comme Google qui font l'empreinte des navigateurs.
Proxy résidentiel avec géolocalisation
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --proxy "San Francisco,CA,US"
Route par un proxy résidentiel dans la localisation spécifiée. Format : "City,ST,Country" (le code d'état est sur 2 lettres). Aide à faire correspondre la géolocalisation de votre IP locale pour que les cookies d'authentification ne soient pas rejetés.
Combiner les drapeaux
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains github.com,google.com --stealth --proxy "San Francisco,CA,US"
Navigation sur des sites authentifiés
Après synchronisation, utilisez la CLI browse avec l'ID de contexte :
browse open https://mail.google.com --context-id <ctx-id> --persist
Le drapeau --persist enregistre tout nouveau cookie ou changement d'état dans le contexte, gardant la session fraîche pour la prochaine fois.
Exemple de workflow complet :
# Étape 1 : Synchroniser les cookies pour Twitter
node .claude/skills/cookie-sync/scripts/cookie-sync.mjs --domains x.com,twitter.com
# Output: Context ID: ctx_abc123
# Étape 2 : Naviguer sur Twitter authentifiée
browse open https://x.com/messages --context-id ctx_abc123 --persist
browse snapshot
browse screenshot
browse stop
Réutiliser les contextes pour les tâches planifiées
Les contextes persistent entre les sessions, ce qui les rend idéaux pour les tâches planifiées/récurrentes :
- Une fois (ordinateur portable ouvert) : Exécutez cookie-sync → obtenez un ID de contexte
- Tâches planifiées : Utilisez
browse open <url> --context-id <ctx-id> --persist— aucun Chrome local nécessaire - Re-synchroniser selon les besoins : Quand les cookies expirent, exécutez cookie-sync à nouveau avec
--context <ctx-id>pour rafraîchir
Dépannage
- "No DevToolsActivePort found" → Activez
chrome://flags/#allow-remote-debuggingsi votre build de navigateur l'expose, ou lancez avec--remote-debugging-port=9222et définissezCDP_URL=ws://127.0.0.1:9222 - "No open page targets found" → Ouvrez au moins un onglet dans Chrome
- "WebSocket error" → Chrome peut être bloqué ; forcez la fermeture et rouvrez-le
- Cookies expirés dans le contexte → Réexécutez cookie-sync avec
--context <id>pour rafraîchir - Authentification rejetée par le site → Essayez d'ajouter
--stealthet/ou--proxyavec une localisation près de vous