用途:将用户本机 Google Chrome 的 Cookie 解密并载入 playwright-cli 会话,让自动化脚本继承已登录状态(如 GitHub 等),而不是从登出状态开始。仅支持 macOS,解密依赖 macOS Keychain 与 Chrome 的 AES-128-CBC 方案;Linux/Windows 的密钥存储方式不同,未处理。
前提:macOS 且已安装 Google Chrome(可保持运行,脚本会快照数据库);playwright-cli 在 PATH 中(可用 playwright-cli --version 检查,否则用 npx playwright-cli);需要 Node.js 运行导出脚本。
使用方式:
- 导出并解密全部 Chrome Cookie:node ~/.claude/skills/cookie/scripts/export-chrome-cookies.mjs;非默认配置文件可传目录名,如 node ~/.claude/skills/cookie/scripts/export-chrome-cookies.mjs "Profile 1"。会生成 /tmp/chrome-load-cookies.js(加载器)与 /tmp/chrome-pw-cookies.json(storageState,仅供检查),并打印摘要。首次运行 macOS 会弹出 Keychain 授权对话框,脚本会阻塞直到用户点击 Always Allow。
- 打开持久化会话:playwright-cli open --persistent(必须加 --persistent,默认内存配置在守护进程重启后会丢失 Cookie)。
- 加载 Cookie:playwright-cli run-code --filename=/tmp/chrome-load-cookies.js,返回 { ok, fail, total, sampleErrors }。不要用 playwright-cli state-load,它一次性批量 addCookies,单条异常会导致整批失败。
- 导航前先验证:playwright-cli cookie-list --domain=github.com,确认认证 Cookie 存在后再 playwright-cli goto https://github.com 并确认已登录界面。
- 加载成功后立即删除明文令牌文件:rm -f /tmp/chrome-load-cookies.js /tmp/chrome-pw-cookies.json。不要提交这些文件或任何 .playwright-cli/、storageState 产物。
限制与注意:会话 Cookie(expires: -1)在守护进程重启后不会保留,属预期行为;持久认证 Cookie 可保留。Chromium 延迟写盘,关闭前应停留在真实页面约 4 秒再优雅关闭,否则新加 Cookie 可能丢失。脚本可随时重跑以刷新明文。资料还包含在 Codex、Cursor 中运行时的原语映射说明,需按对应环境转换 Claude Code 专有原语与路径。