AI 编码智能体已经变成了一张拥挤的桌子。如果你使用不止一个——一个终端里是 Claude Code,另一个终端里是 Codex,每个都有各自的登录和使用限制——你已经感受到切换的代价:丢失的上下文、独立的窗口,以及哪个智能体真正掌握给定任务正确答案的持续疑问。

Offrun 是一款免费的 Mac 应用,旨在用单个工作区取代那张桌子。它并不托管智能体本身。它在你的 Mac 上运行你已使用的命令行接口(CLIs)——Claude Code、Codex 和 Grok Build 等,Pi 和 OpenCode 列为即将推出——以你的身份登录。你自带账户和订阅;Offrun 提供编排服务并免费。

Offrun 工作区视图,展示五个编码智能体头像
Offrun 将你运行的每个智能体呈现在一个工作区中,因此你可以看到谁在工作、谁需要你的关注。offrun.dev

本文解释说,AI 编码智能体已经变成了一张拥挤的桌子,充满独立的终端和登录,而 Offrun 用单个工作区取代了它,在你自己账户下运行 Claude Code、Codex 和 Grok Build。这是该产品对该工作区的自身视图,在一个位置展示了多个智能体头像。

设置刻意保持轻量。下载应用,将其拖到 Applications,然后在设置 → 智能体下连接每个智能体,如果你有多个账户,可以为同一智能体添加多个。该应用需要一台运行 macOS 14 Sonoma 或更高版本的 Apple Silicon Mac(M1 或更新),外加至少一个你已使用的智能体 CLI。用 Offrun 自己的话说:它并不取代 Claude Code 或 Codex——它运行它们,而你保留自己的账户和订阅。

最具特色的结构特性是 worktree。git worktree 是一个链接的工作目录,可让你在单独的文件夹中检出不同的分支,而不影响主检出。Offrun 为项目中的每个智能体提供各自的 worktree,因此两个操作同一仓库的智能体绝不会触及相同文件。实际效果是:一个智能体可以重构解析器,同时另一个修复不稳定的测试,由于它们在独立分支上操作,它们不会互相干扰对方的更改。该网站的表述很直接——同时运行重构和 bug 修复,并按你自己的时间表合并。

同行评审是最有可能改变日常工作的功能。与其自己审查你的 diff——即提议的更改集合——你选择第二个智能体先来读它。它的发现会在工作尚未提交时进入对话,因此你可以在任何内容发送前要求修正。关键在于,任何内容都不会自行合并;此后的每个决定都由你做出。评审在你自己的某个智能体账户上运行,因此没有第二个订阅,也没有机器人被添加到你的 pull request 中。评审者只能读取 diff 并发布它发现的内容;它不能修改你的代码。

该网站通过一个具体示例展示了评审发现的样子。一个智能体被要求将重试退避限制在 30 秒以内并添加抖动,结果产生了以下内容:

// Shortened excerpt rendered from the example on offrun.dev async function retry(req, n) { const wait = Math.min(2 ** n * 100, 30_000) const jitter = wait * 0.2 * Math.random() await sleep(wait + jitter) }

评审者标记了一个问题:30 秒的上限比网关 25 秒的超时更长,因此最后一次重试在完成前被截断。

Offrun 对账户的处理解决了一个真实的运维难题。你可以将每个智能体指向不同的登录——该网站显示,例如 Claude Code 的工作和个人账户,以及 Codex 的多个账户。当一个登录达到其使用限制时,Offrun 会将活跃聊天移动到仍有空间的登录并告知你;你再次发送消息,新的登录就会接续整个对话。如果你完全用尽了登录,它会改为提供另一个智能体。

该网站并未确定的是,Offrun 是否在你派发任务前向你显示剩余空间,还是仅在智能体遇到限制时才发现。所描述的行为是被动的:限制在任务中途被检测到,对话被迁移。这种交接在实践中是否无缝,以及是否有任何警告在其之前出现,所提供的材料并未回答。

Offrun 对智能体在会话间遗忘上下文问题的解决方案是项目记忆。它将仓库范围的约定保存在一个地方,将每个智能体自身的目标、计划和死胡同保存在另一个地方。智能体在每个会话开始时读取该上下文,并在进行中写回,因此第四个会话知道第一个已经尝试过什么。记忆以纯文件形式保存在你的项目文件夹中——conventions.md、plan.md、dead-ends.md——因此你可以自行打开、编辑和版本化它们。

Offrun 监控你 Mac 上任何位置的编码智能体,包括在从未由它启动的终端中运行的那些。当智能体完成或停下来提问时,你会收到通知,即使该窗口被埋在四个空格深处。在对话旁边,预览窗格显示更改的文件、带行号的 diff、渲染的 markdown 和表格、图像和 PDF,外加一个带地址栏的小浏览器——因此你可以不离开聊天就阅读工作。

两种模式让你控制智能体获得多少自由度。构建模式做出更改并运行以证明其有效。规划模式推导出方法并写下来,而不更改文件。你可以随时在两种模式之间切换任何聊天。

听写让你说出提示:按住一个键说话,Offrun 会在你的 Mac 上转录。它保持标识符的拼写与代码中的拼写一致——从你录制的语音样本中学习诸如 'retryBackoffHelper' 和 'Kubernetes' 之类的词汇——并在光标所在位置插入干净文本。转录完全在你的 Mac 上运行;不记录任何内容,也不上传任何内容。它仅在设置期间需要网络连接。

该网站对离开你机器的内容异常明确。听写和你的项目文件保存在你的 Mac 上。智能体提示和代码直接发送到你的提供商——Anthropic、OpenAI、Google 或 xAI——使用你自己的账户,绝不经过 Offrun。Offrun 声明该路径中没有它的服务器,且绝不处理你的密钥。

Offrun 是免费的——所有功能,无限制,无需计算席位数,无需信用卡。你继续为智能体提供商的订阅付费;Offrun 对其添加的层不收取任何费用。

一个自然的问题是 Offrun 提供了哪些类似工具没有的东西,以及具体来说它与 Herdr 相比如何。所提供的来源未提及 Herdr 或任何竞争产品,因此无法从该材料中得出比较。来源确实确立的关于 Offrun 定位的内容是具体的:它是免费的,不需要新账户或 API 密钥,在你自己的订阅下在你的机器本地运行智能体,将听写和项目记忆保存在设备上,并明确将智能体流量直接路由到你的提供商而非通过其自己的服务器。

仍然不清楚的范围有限但真实。来源未说明 Offrun 何时普遍可用。它描述了并发 worktree,但未详细说明其结果如何在用户自己的时间表之外合并。被动式账户故障转移被描述而非演示,且该网站未对其自身的声明之外的性能、可靠性或隐私保证进行量化。产品是否在其声明的范围内交付,取决于着陆页尚未提供的细节。