安装之前

Companion / macOS Apple Silicon

OpenMake Companion 0.2.6

一个菜单栏应用,专为桌面端真正必要的那一件事而生:让一个智能体任务在你自己机器上的某个文件夹内工作,并置于一道它无法绕过的确认之后。聊天以及更深层的一切都留在浏览器里。Companion 连接到一个 OpenMake 服务 — 它并不打包服务器、数据库或 GPU 后端。

安装之前

该构建面向 macOS 14 或更高版本的 Apple Silicon,且未签名(ad-hoc),因此 Gatekeeper 会在首次启动时将其隔离,并报告它已损坏。它并没有损坏;macOS 是在说它不认识签名者。

先把 OpenMake Companion.app 拖到 /Applications,然后把隔离属性清除一次。该应用刻意没有 Dock 图标 — 打开之后,请在菜单栏里找那个文件夹图标。

shell
xattr -dr com.apple.quarantine '/Applications/OpenMake Companion.app'
下一步它做什么,以及它刻意不做什么

它做什么,以及它刻意不做什么

Companion 是一个执行节点,而非第二个 OpenMake 客户端。它只管一件事 — 做那台智能体任务能够触达的机器 — 其余一切都交回给浏览器。这条边界正是要点所在:Web 新增的功能不必再造第二遍。

  • 连接与断开工作文件夹,并读取每一个的实时状态
  • 回应那道 shell 命令无法绕过的执行确认对话框
  • 任务结束时收到通知,点击它即可在 Web 中落到那个任务上
  • 没有聊天界面 —「在 Web 中打开」会把对话交回给浏览器
下一步连接一个本地文件夹

连接一个本地文件夹

从菜单栏挑选一个文件夹。只有它的名字会到达服务器,完整路径永远不会,从此一个智能体任务就能通过桥接请求在其中工作。可以同时连接多个根目录 — 每一个都在一个派生出的设备 id 下拥有独立的桥接连接,因此作用域、沙箱和一次性批准会按文件夹各自分开。默认情况下,一个用户最多连接三台设备。

  • 访问由一份固定的 RPC 白名单和 realpath 检查来限定作用域,因此符号链接无法走出该文件夹
  • 明显危险的命令会被立即拒绝
  • 其余每一条 shell 命令都需要用户确认,且无法绕过
  • sandbox-exec 会阻止在所连接文件夹之外写入,以及从机密路径读取
下一步认证与后端

认证与后端

Companion 使用一个带 bridge 作用域的 API 密钥进行认证,该密钥从 Web 设置里的 API 密钥处签发。密钥保存在 macOS 钥匙串中,并通过辅助进程的环境变量而非其命令行传递给它,因此不会出现在进程列表里。后端选择器可在托管服务与端口 52416 上的本地实例之间切换。

下一步经过校验的更新

经过校验的更新

更新器读取服务器清单的 native 通道,只接受 HTTPS 或回环源,并在替换正在运行的应用之前校验下载文件的 SHA-256。

下一步仍在运行桌面版 1.10.0?

仍在运行桌面版 1.10.0?

Electron 桌面应用已停止分发,macOS 今后只通过 Companion 提供支持。其构建不再提供下载,更新清单改为指向 Companion,也无法再通过它连接本地文件夹——本地智能体工作请使用 Companion 或 openmake-code CLI。

已安装的应用仍会在窗口中打开 Web 工作台,但不会再收到更新。聊天请使用浏览器,本地工作请安装上方的 Companion。