两家公司给自己的 AI Agent 分别推出了 Chrome 扩展。表面上都是"让 AI 能操作浏览器",但出发点几乎相反:Claude in Chrome 是把 AI 嵌进浏览器里,Codex Chrome 扩展是把浏览器接进 AI 任务系统里。
产品定位
Claude in Chrome 是 claude.ai 的浏览器扩展,主要形态是侧边栏。浏览时 Claude 在旁边响应,可以读当前页面、执行操作、或者后台跑多步骤工作流。也对接了 Claude Desktop,可以在桌面端控制浏览器。
Codex Chrome extension 的出发点是补一个漏洞:Codex 本身有内置浏览器,够用于公开页面,但遇到需要登录的网站就失效了。Chrome 扩展是这个问题的补丁——当任务需要认证 session 时,Codex 切过来用你的真实 Chrome。
Claude in Chrome
Claude in Chrome 不只是"AI 帮你点网页",它更像是在浏览器里内置了一套自动化平台,有三块特色功能:
- Shortcuts(快捷指令):把常用的提示词保存为快捷方式,在聊天框里输入
/触发。操作 Slack、Gmail、Google Calendar 这类平台都有内置支持。 - 定时任务:工作流可以设置日、周、月、年度重复执行,不只是按需触发,也能跑例行任务。
- 工作流录制:通过录制步骤来"教" Claude 执行重复流程,类似 Playwright 的 codegen,但不需要写代码。
工具层是 MCP 协议,分职能暴露给 Claude:
# Tab 管理
tabs_context_mcp / tabs_create_mcp / tabs_close_mcp
# 页面交互
navigate / find / form_input / computer
# 页面读取
read_page(无障碍树)/ get_page_text / javascript_tool
read_console_messages / read_network_requests
# 效率
browser_batch(打包执行)/ gif_creator / shortcuts_list / shortcuts_execute
# 多浏览器
list_connected_browsers / select_browser / switch_browserClaude 的 tab 开在独立的"MCP tab 组"里,和用户自己的 tab 分开。tabs_context_mcp 必须在每次操作前调用,拿到当前 session 组的 tab 列表;tabs_close_mcp 也只能关自己组内的 tab。Claude 不会碰用户已经打开的页面。
read_console_messages 和 read_network_requests 覆盖了调试 web 应用的常见需求,不用再手动盯控制台。list_connected_browsers 支持同时连多个 Chrome 实例,在不同 profile 之间切换,Codex 扩展没有这个。
权限上需要 15 项,其中 debugger 是实际控制浏览器的关键。提供了"操作前确认"模式,高风险操作需要单独授权。
Codex Chrome 扩展
Codex 的浏览器能力不是单一入口,而是两层路由:
第一层:内置无头浏览器(web.*)
用于公开页面——搜索、打开 URL、点击、截图,不依赖用户的 Chrome,不需要登录。大部分联网任务走这里。
第二层:Chrome 扩展(mcp__node_repl__js + browser-client)
当任务需要已登录的网站(LinkedIn、Salesforce、Gmail 等),Codex 切到这一层,通过 Node.js REPL(一个持久运行的 JS 执行环境,AI 写好代码直接在里面跑)加载 browser-client 库,拿到 Playwright 风格的编程 API:
const tab = await browser.tabs.new()
await tab.goto('https://salesforce.com')
await tab.playwright.getByRole('button', { name: 'New Lead' }).click()
const snapshot = await tab.playwright.domSnapshot()
await tab.dev.logs() // 读控制台日志
API 分几个抽象层:高层 Playwright locator(getByRole/getByText/getByLabel)、中层 dom_cua(click/type/keypress/scroll)、底层 cua(含 drag)、以及剪贴板 API(clipboard.readText/writeText)。tab.dev.logs() 也是有的,只是不像 Claude in Chrome 那样作为独立 MCP 工具单独暴露。
Tab 的生命周期通过 browser.tabs 管理,browser.user.claimTab() 可以接管用户已打开的标签页——这个能力 Claude in Chrome 没有,后者只在自己的 MCP tab 组里活动。
权限粒度上,每次访问新网站都会弹提示,用户选"本次 chat 有效"、“对此域名永久允许"或"拒绝”,历史记录访问需要每次单独授权。
使用场景
日常浏览辅助和重复任务,Claude in Chrome 更合适。侧边栏随时可用,shortcuts 降低重复操作的成本,定时任务能跑周期性的数据收集或内容处理。
企业 SaaS 工作流(往 Salesforce 录数据、处理 LinkedIn 潜在客户、跑邮件流程),两者都能做,但 Codex 的任务系统更擅长拆解和追踪多步骤任务。认证壁垒是它要解决的核心问题,所以这条路更成熟。
需要多浏览器 profile 的场景(比如同时操作个人和企业账号),目前只有 Claude in Chrome 有明确支持(list_connected_browsers / select_browser)。
深度浏览器自动化或调试 web 应用,Claude in Chrome 的 MCP 工具层更完整,读控制台日志和网络请求是内置的。Codex 的 Playwright API 在精确控制方面更强,但需要 AI 生成正确的 JS,出错率更高。
小结
Claude in Chrome 的工具设计是把浏览器当成 Claude 的读写外设——通过 MCP 工具统一管理,shortcuts 和定时任务让它能跑常驻的自动化例程。Codex Chrome 扩展的定位更窄:内置无头浏览器搞不定的认证网站,切到用户的真实 Chrome 来做,工具层不是 MCP,而是通过 Node REPL 直接写 JS,控制更精细,但也要求生成的代码没有 bug。
参考
- Get started with Claude in Chrome — Anthropic 官方文档
- Codex Chrome Extension — OpenAI 官方文档