@vibetechnologies/chrome-sync
Sync browser cookies and sessions from your local Chrome to your OpenClaw cloud browser.
Why
Cloud browsers can't log into Google, GitHub, or other sites that detect automation. Instead of fighting detection, bring your existing authenticated session to the cloud.
Install
npx @vibetechnologies/chrome-sync login
Or install globally:
npm install -g @vibetechnologies/chrome-sync
Usage
1. Authenticate
chrome-sync login
chrome-sync login --token <your-api-token>
2. Push cookies to cloud browser
Make sure your local Chrome is running. chrome-sync will automatically connect to it via CDP (Chrome DevTools Protocol) using --autoConnect.
chrome-sync push
chrome-sync push --domains google.com,gmail.com
chrome-sync push --remote-debugging-port 9222
chrome-sync push --dry-run
3. List Chrome profiles
(Note: Profile selection is deprecated in v0.6.0+ as cookies are now extracted from the currently active CDP session rather than SQLite DBs).
How it works
- Connects to your running local Chrome via CDP over WebSocket (bypassing SQLite App-Bound Encryption)
- Extracts cookies using
Storage.getCookies or Network.getAllCookies
- Sends them (encrypted in transit) to the OpenClaw API
- Server injects cookies into your tenant's cloud Chrome via CDP
- Your cloud browser now has your authenticated sessions
Supported platforms
Because chrome-sync v0.6.0+ uses CDP instead of SQLite database decryption, it works identically across all operating systems without requiring OS-specific decryption tools (Keychain, libsecret, DPAPI).
| macOS | ✅ Yes | CDP (Storage.getCookies) |
| Linux | ✅ Yes | CDP (Storage.getCookies) |
| Windows | ✅ Yes | CDP (Storage.getCookies) |
Security
- Cookies are only sent to your authenticated tenant
- Transport uses HTTPS
- Local auth token stored with 0600 permissions at
~/.config/chrome-sync/auth.json
- No cookies are stored server-side — they're injected directly into the browser process
Programmatic API
import { extractStorageState, pushCookies, loginWithToken } from "@vibetechnologies/chrome-sync";
const state = await extractStorageState([".google.com", ".gmail.com"]);
await loginWithToken("https://openclaw.agentlabs.cc", "your-token");
await pushCookies(state);