用途:当 dev-browser --connect http://127.0.0.1:9222 因尚无持久调试浏览器而失败时,用此技能让人类与智能体共用一个常驻浏览器/profile,减少“Allow remote debugging?”弹窗。
主要能力与规则:优先使用一个永久调试浏览器/profile,而非一次性自动化浏览器;必须使用自定义 --user-data-dir(Chrome 136+ 要求远程调试来自专用 profile);认证保留在该 profile 内,不退回 cookie 导出或状态文件,除非用户要求;浏览器工作应使用单独的已登录 Chrome profile(如 dev),不要用日常 Default profile;把该 profile 克隆到专用调试 user-data-dir,不要把 9222 直接指向日常数据目录;macOS 用 open -na "Google Chrome" --args ... 启动独立实例。
推荐配置:--remote-debugging-address=127.0.0.1、--remote-debugging-port=9222、持久 --user-data-dir=<debug-profile-dir>;在该专用浏览器中登录一次并持续复用。
校验:curl -sS http://127.0.0.1:9222/json/version 应返回含 webSocketDebuggerUrl 的 JSON,空输出或 404 表示 9222 被错误进程占用。随后用 dev-browser --connect http://127.0.0.1:9222 验证。若 /json/version 正常但仍无法解析 CDP,可用 jq 提取 webSocketDebuggerUrl 后以精确 WS 地址连接:WS=$(curl -sS http://127.0.0.1:9222/json/version | jq -r '.webSocketDebuggerUrl')。
macOS 设置流程:在 Local State 中把面向用户的 Chrome profile 名映射到真实文件夹(如 dev 对应 Profile 1),将其克隆到专用调试目录(rsync 时排除 Singleton*、DevToolsActivePort、lockfile),复制 Local State,然后以 open -na "Google Chrome" --args --user-data-dir=... --profile-directory="Default" --remote-debugging-address=127.0.0.1 --remote-debugging-port=9222 启动,既保留登录身份又满足专用 user-data-dir 要求。
使用后:用 dev-browser --connect http://127.0.0.1:9222 并在 persistent-main 等命名页面上复用;除非用户要求,不要停止其调试浏览器。若 9222 被错误 Chrome 抢占,用 lsof -nP -iTCP:9222 -sTCP:LISTEN 定位并结束该监听进程,再重启专用调试浏览器,不要继续对着 404 或空 /json/version 的占用者调试。