在进行 Web 自动化、Agent 测试或日常的浏览器脚本编写时,频繁登录和状态丢失往往是最大的痛点。

Google Antigravity 在使用浏览器 subagent 时,默认启动的 Chrome 会监听在特定的调试端口(通常是 9222),并使用独立的用户配置文件路径(%USERPROFILE%\.gemini\antigravity-browser-profile)。由于所有登录态、Cookies 和历史记录都保存在该目录下,我们可以使用一个巧妙的方法,在本地的其他 AI 助手工具(如 Anthropic 官方的 Claude Code CLI)中无缝复用这一 Chrome 实例与相同的登录态。

本文将详细介绍这一方案的实现原理与配置步骤。


1. 原理解析

1.1 Chrome 远程调试与独立 Profile

Chrome 提供了通过 Chrome DevTools Protocol (CDP) 进行远程控制的能力。当我们启动 Chrome 时,传入以下参数:

  • --remote-debugging-port=9222:在本地 9222 端口开启调试服务。
  • --user-data-dir="...":指定一个干净、持久的浏览器配置文件目录。

Google Antigravity 启动的 Chrome 与下述脚本中设置的参数和路径完全一致。因此,如果我们在命令行或通过批处理脚本以相同的参数提前启动 Chrome,便能共享同一个浏览器实例和配置数据。

1.2 Model Context Protocol (MCP)

Claude Code 具备强大的工具调用能力,并支持 MCP (Model Context Protocol) 协议。通过配置内置或第三方的 MCP 服务器,我们可以让 Claude 拥有各式各样的扩展能力。

针对 Chrome,我们可以使用官方或社区的 chrome-devtools-mcp 工具。该 MCP 服务能将本地正在运行的、暴露了调试端口的 Chrome 转化为一系列 MCP 工具(例如查看 DOM、点击、输入、导航等)。这样,Claude Code 就能连上该 Chrome 实例,在不破坏你已登录会话的前提下,直接读取和操作网页。


2. 操作步骤

步骤一:创建并运行 Chrome 启动脚本

在 Windows 环境下,我们可以创建一个批处理脚本(例如 start-debug-chrome.bat),用于以调试模式启动指向 Antigravity 默认 Profile 目录的 Chrome:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@echo off
setlocal

set "CHROME_EXE=C:\Program Files\Google\Chrome\Application\chrome.exe"
set "PROFILE_DIR=%USERPROFILE%\.gemini\antigravity-browser-profile"
set "DEBUG_PORT=9222"

if not exist "%CHROME_EXE%" (
    echo [ERROR] Chrome not found: "%CHROME_EXE%"
    pause
    exit /b 1
)

if not exist "%PROFILE_DIR%" (
    echo [INFO] Profile directory does not exist, creating:
    echo        "%PROFILE_DIR%"
    mkdir "%PROFILE_DIR%"
)

start "" "%CHROME_EXE%" ^
  --remote-debugging-port=%DEBUG_PORT% ^
  --user-data-dir="%PROFILE_DIR%" ^
  --disable-fre ^
  --no-default-browser-check ^
  --no-first-run ^
  --auto-accept-browser-signin-for-tests ^
  --ash-no-nudges ^
  --disable-features=OfferMigrationToDiceUsers,OptGuideOnDeviceModel ^
  --flag-switches-begin ^
  --flag-switches-end

endlocal

双击运行此脚本后,你会看到一个全新的 Chrome 窗口启动。在此窗口中登录任何你常用的平台(如 GitHub、Cadence Support 等),它们的会话状态都将被安全地存储在 %USERPROFILE%\.gemini\antigravity-browser-profile 中。

步骤二:配置 Claude Code

我们需要编辑 Claude Code 或者是 VS Code 插件中 Claude 的全局配置文件。

该配置文件通常位于 %USERPROFILE%\.claude\settings.json(如果文件不存在,可手动创建或在启动 Claude Code 后自动生成)。在根 JSON 对象中,添加 "mcpServers" 节点:

1
2
3
4
5
6
7
8
9
10
11
12
13

  "mcpServers": {
    "chrome-devtools-9222": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@latest",
        "--browser-url=http://127.0.0.1:9222",
        "--no-usage-statistics"
      ]
    }
  }

  • --browser-url 参数指定了刚才 Chrome 监听的本地调试地址与端口。
  • npx -y 参数用于自动下载并运行最新版的 chrome-devtools-mcp

步骤三:验证与使用

  1. 保持上一步使用批处理启动的 Chrome 处于运行状态。
  2. 打开终端,启动 Claude Code:
    1
    
    claude
    
  3. Claude Code 在初始化时会读取配置文件,并自动通过 MCP 连接到 http://127.0.0.1:9222
  4. 现在,你可以向 Claude 发出指令,例如:

    “帮我看一下当前 Chrome 里打开的网页内容,并提取核心摘要。”

    Claude 会利用 chrome-devtools-mcp 暴露的接口直接获取当前 Tab 页面的 DOM 树或对其进行滚动、点击等操作。


3. 该方案的优势

  1. 登录态复用:一次登录,多端共享。无论是在 Antigravity 中运行自动化任务,还是在本地使用 Claude Code 进行交互,都可以省去反复扫码、MFA 验证或输入密码的繁琐步骤。
  2. 完全透明与可视化:因为 Chrome 是跑在本地的可视化实例中,你可以在屏幕上实时看到 Claude Code 的每一步操作(如输入、点击、页面跳转),这为调试 Agent 脚本提供了极大的便利。
  3. 环境数据隔离:调试用的浏览器数据全部保存在指定的 %USERPROFILE%\.gemini\antigravity-browser-profile 中,不会污染你日常使用的个人或工作 Chrome 数据。

4. 总结与注意事项

通过合理的端口映射和 Profile 指定,我们可以将 Google Antigravity 与 Claude Code 完美结合。需要注意以下两点:

  • 确保在启动 Claude Code 之前,调试版 Chrome 已经成功运行并且监听在 9222 端口,否则 MCP 服务器启动时可能会因为连接超时而报错。
  • 在自动化操作时,注意保护敏感页面,防止 AI Agent 执行非预期的操作或泄露机密 Cookie 数据。