跳到正文
Hacker News· piplupness·· 9 天前AI 评分22

让 Codex 浏览器控制支持 Arc 的补丁工具

Show HN: A patch to make Codex's browser control work in Arc

AI 导读

一个开源项目通过在本机重新构建 OpenAI ChatGPT 扩展的轻量补丁版,让 Codex 的浏览器控制功能在 Arc 中可用。原因是该扩展加载每个标签页前会等待 Chrome 的 tab-group API,而 Arc 从不响应这一调用,导致 Codex 打开的首个标签页卡住。

正文 · AI 翻译

让 Codex 的浏览器功能在 Arc 中正常工作。

Codex 通过 ChatGPT 桌面应用中的 Chrome 插件控制浏览器。在 Arc 中,这个连接会在 Codex 打开的第一个标签页处卡住。本项目通过在你的 Mac 上构建一份经过轻微修补的 OpenAI ChatGPT 扩展副本,来解决这个问题。

Codex 另一个独立的 Computer Use 插件通过点击和输入来操作 Mac 应用,不需要本项目。

工作原理

Codex 通过三个部分连接到浏览器:

  1. ChatGPT 桌面应用中的 Chrome 插件。
  2. 插件安装的一个原生连接器。Arc 会在与 Chrome 相同的位置找到它,即使没有安装 Chrome。
  3. 在浏览器内运行的 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 中:

  1. 打开 arc://extensions 并开启开发者模式。
  2. 如果列出了 ChatGPT 扩展,点击其上的 移除。
  3. 点击加载已解压的扩展程序。按 ⇧⌘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 应用商店安装它。

致谢

免责声明

此项目与 OpenAI 或 The Browser Company 无关联。ChatGPT 和 Codex 是 OpenAI 的商标。你运行 OpenAI 扩展的修改版本需自行承担风险。

许可证

MIT

来源:Hacker News · github.com