让 Codex 浏览器控制支持 Arc 的补丁工具
Show HN: A patch to make Codex's browser control work in Arc
一个开源项目通过在本机重新构建 OpenAI ChatGPT 扩展的轻量补丁版,让 Codex 的浏览器控制功能在 Arc 中可用。原因是该扩展加载每个标签页前会等待 Chrome 的 tab-group API,而 Arc 从不响应这一调用,导致 Codex 打开的首个标签页卡住。
让 Codex 的浏览器功能在 Arc 中正常工作。
Codex 通过 ChatGPT 桌面应用中的 Chrome 插件控制浏览器。在 Arc 中,这个连接会在 Codex 打开的第一个标签页处卡住。本项目通过在你的 Mac 上构建一份经过轻微修补的 OpenAI ChatGPT 扩展副本,来解决这个问题。
Codex 另一个独立的 Computer Use 插件通过点击和输入来操作 Mac 应用,不需要本项目。
工作原理
Codex 通过三个部分连接到浏览器:
- ChatGPT 桌面应用中的 Chrome 插件。
- 插件安装的一个原生连接器。Arc 会在与 Chrome 相同的位置找到它,即使没有安装 Chrome。
- 在浏览器内运行的 OpenAI ChatGPT 扩展。
只有扩展需要修改。它在加载每个标签页之前会等待 Chrome 的标签组 API,而 Arc 从不响应该 API。arc_browser_use.py build 会做这些事:
- 它从 Chrome 应用商店下载扩展并检查其签名。
- 它应用两个小补丁,列在 补丁改动了什么 中。
- 它把构建产物写入
~/Library/Application Support/Arc Browser Use/extension。
你只需将该文件夹加载到 Arc 一次。之后,Codex 就会把 Arc 列为可用的浏览器。
使用智能体进行设置
把这段内容粘贴到 Codex 中,或粘贴到任何能在你的 Mac 上运行命令的编码智能体中:
Set up Arc for Codex browser use by following
https://github.com/brianlzhou/arc-browser-use/blob/main/SETUP.md
智能体会运行这些命令,并在需要在 Arc 中点击时询问你。
手动设置
你需要这些东西:
- macOS 和 Arc。
- ChatGPT 桌面应用,并从其插件列表中安装 Chrome 插件。你不需要 Google Chrome 本身。
- Python 3.9 或更高版本。它随 Apple 的命令行工具一起提供。如果缺失,运行
python3会让 macOS 提示安装它。
git clone https://github.com/brianlzhou/arc-browser-use.git
cd arc-browser-use
python3 arc_browser_use.py build然后,在 Arc 中:
- 打开
arc://extensions并开启开发者模式。 - 如果列出了 ChatGPT 扩展,点击其上的 移除。
- 点击加载已解压的扩展程序。按 ⇧⌘G,粘贴
~/Library/Application Support/Arc Browser Use/extension,按 Return,然后点击选择。
检查设置:
python3 arc_browser_use.py doctor
每一行都应以 ok 开头。然后问 Codex:“用我的 Arc 浏览器打开 example.com,并告诉我页面标题。” Codex 应回答“Example Domain”。
更新
构建产物不会自行更新。当 doctor 报告 FAIL The build is the latest store version 时,运行这个:
git pull python3 arc_browser_use.py build
然后,在 arc://extensions 中,将 ChatGPT 扩展关闭再重新打开。不要使用重新加载。它不会重新连接到 ChatGPT 应用,因此 Codex 会继续与旧副本通信。
以下是 OpenAI 更改扩展时会发生的情况:
- 常规发布。补丁通过方法和属性名称来定位目标,这些名称在 OpenAI 的压缩器处理后仍会保留。如果新版本未改动这些部分,则无需更改即可构建。
- 某个必需补丁不再适用。
build会停止并指出该补丁。你的构建文件夹保持原样。SETUP.md 说明了如何更新补丁。 - 只有可选补丁不再适用。该补丁让 Codex 按名称列出 Arc。
build会跳过它、发出警告并完成。随后 Codex 会将 Arc 列为“Chrome”。
每周的 CI 任务会构建商店中的最新版本。如果某个补丁失败或该版本未经测试,它会在本仓库中开一个 issue。
补丁改动了什么
| 补丁 | 改动 | 原因 |
|---|---|---|
skip-tab-groups(必需) |
ensureAgentTabGroup 立即返回。 |
扩展会在加载 Codex 打开的每个标签页之前,将其放入一个标签组。Arc 从不响应标签组调用,因此标签页永远不会加载。 |
arc-display-name(可选) |
浏览器将其名称报告为“Arc”。 | 没有它,Codex 会将 Arc 列为“Chrome”。 |
build 还会更改 background.js 之外的两处内容:
- 它将发布者的公钥作为
key添加到manifest.json中。副本随后保留官方扩展 ID,而原生连接器只接受该 ID。 - 它移除了
_metadata,即商店的验证数据,这些数据不适用于修改后的副本。
此仓库不包含任何 OpenAI 代码。每个用户在自己的 Mac 上构建自己的副本。
限制
- 当开发者模式关闭时,Arc 会停用未打包的扩展。请保持开发者模式开启。
- 该扩展的侧边栏在 Arc 中无法打开,因为 Arc 不支持 Chrome 侧边栏。请改用 ChatGPT 应用进行聊天。浏览器使用不受影响。
- 仅支持 macOS。
- CHANGELOG.md 列出了每个版本测试时所用的扩展版本。
卸载
python3 arc_browser_use.py uninstall
然后在 arc://extensions 中移除 ChatGPT 扩展。要恢复为官方扩展,请从 Chrome 应用商店安装它。
致谢
- claude-arc-patch 在 Claude 的扩展中发现了相同的标签组问题。
- Claude-in-Arc 将 Claude 的扩展适配到 Arc。
- codex-computer-use-firefox-zen 将 Codex 浏览器使用功能带到 Firefox 和 Zen。
免责声明
此项目与 OpenAI 或 The Browser Company 无关联。ChatGPT 和 Codex 是 OpenAI 的商标。你运行 OpenAI 扩展的修改版本需自行承担风险。
许可证
来源:Hacker News · github.com