Workshop

Offrun 实战:把多个编码 Agent 装进一个工作台

5 min read ·

10 月 3 日,一款叫 Offrun 的 macOS 应用登上了 Hacker News 首页。它解决的问题非常具体:当你同时开着 Claude Code、Codex 和其他编码 Agent,每个都占一个终端窗口、各自的会话互不知情、两个 Agent 改同一个仓库时还会互相覆盖文件。Offrun 的答案是把这些 Agent 装进同一个工作台,用 git worktree 做物理隔离。这篇实战带你从安装跑通到多 Agent 并行。

一、Offrun 是什么,不是什么

先说定位。Offrun 不提供模型,不要求新账号,也不碰你的 API key。它在你的 Mac 上运行你已经登录的 Agent CLI——Claude Code、Codex、Gemini CLI 等都可以接入,签名身份就是你自己。你的代码从本机直达 Anthropic、OpenAI、Google 或 xAI 的服务器,Offrun 在这条路径上没有服务器存在。

它免费,全部功能无限制:不限 Agent 数量、不限项目、不限本机听写、不限评审。商业模式显然是先占住「多 Agent 工作台」这个入口,这也意味着现在上手没有成本门槛。

它不是 IDE,也不是 Agent 框架。没有代码补全,没有自定义 Agent 运行时。你可以把它理解为「编码 Agent 的窗口管理器 + 仲裁者」。

二、安装与接入 Agent

安装是标准的 macOS 流程:从官网下载,拖进 Applications。首次启动后进入 Settings 的 Agents 页,添加你要接管的 Agent CLI。因为 Offrun 直接调用本机已装好的 CLI 并复用你的登录态,这一步通常只是「识别到已有 Agent」然后确认,不需要粘贴任何凭据。

接入完成后,主界面按项目组织。选定一个项目,挑一个 Agent,给它任务,第一次运行就结束了——真正的价值从第二个 Agent 开始。

三、worktree 隔离:两个 Agent 不再踩脚

Offrun 的核心机制是 git worktree。每个 Agent 在项目里开工时,都会获得一个独立的 worktree 目录,位于项目的 .worktrees 文件夹下。worktree 是 git 的原生能力:同一个仓库可以同时检出多个工作目录,各自对应独立的分支与未提交修改,但共享同一份对象库。

这意味着你可以同时跑一个重构和一个缺陷修复,两者的文件修改完全隔离,各自形成独立的 diff,由你自己决定合并顺序与节奏。对习惯在终端里手动开 worktree 的人来说,这是把一套熟练的手工流程产品化了;对没玩过 worktree 的人来说,这是最低成本理解「Agent 并行为什么需要隔离」的方式。

实操上有两个建议。第一,给每个 Agent 的任务起清晰的名字,因为 worktree 目录会按此命名,多任务并行时目录列表就是你的任务看板。第二,合并前先看 diff 面板——Offrun 内置了带行号的 diff 视图、渲染后的 Markdown 与表格、图片和 PDF 预览,甚至还有一个小型浏览器,你可以在不离开对话的情况下审完改动。

四、同行评审:让第二个 Agent 先读 diff

Offrun 最有意思的设计是评审闭环。你可以指定另一个 Agent 作为评审者,它在执行 Agent 的工作尚未提交时就读取 diff,把发现直接发进对话。你可以在评审结论到达后要求执行 Agent 修复,修完再送评审,循环到你满意为止。

关键约束有三条,都值得复述:评审者运行在你自己的某个 Agent 账号上,不产生新订阅;评审者只能读 diff、发结论,不能改代码;没有任何东西会自动合并。这三条把「AI 评审」从风险操作变成了纯粹的提前介入——最坏情况不过是浪费一点用量。

实践中的组合建议:执行用强模型,评审用便宜快速的模型。评审的价值在于先于人类发现明显问题,不需要最强的推理能力,但需要快和便宜,因为你可能会循环好几轮。

五、账号轮换:撞限额不停工

重度使用编码 Agent 的人都知道限额的痛。Offrun 的处理方式是账号池:给每类 Agent 配置多个登录,当某个账号触顶,Offrun 把整段对话迁移到仍有余量的账号,并明确告诉你迁移发生了。你重发一次消息,新账号接住全部上下文继续干。

如果所有同类账号都耗尽,它会提议换成另一个 Agent 接手。这在实践中意味着「换模型续跑」变成默认动作而不是手动折腾——上下文在对话层,切换的是执行者。

六、项目记忆:让第四次会话记得第一次试过什么

Offrun 的记忆分两层:仓库级约定放在一处,每个 Agent 自己的目标、计划与死胡同记录放在另一处。Agent 在会话开始时读取这些文件,过程中写回。因为是纯文本文件,存放在项目的 .offrun 目录下,你完全可以打开编辑、提交进 git、在团队间共享。

这套设计跟当前流行的 AGENTS.md 运动一脉相承:约定与经验不放在厂商的云端,而是作为仓库资产被版本控制。第四个会话能读到第一个会话踩过的坑,这在长周期项目里的收益会持续复利。

七、听写与隐私边界

Offrun 内置按住说话的听写,转写完全在本机完成,不录音、不上传,并且会按你代码里的拼写习惯保持标识符大小写。隐私模型一句话概括:你的 Mac 就是边界。语音不出机、项目文件不出机、提示词直连模型厂商,Offrun 自己不在任何一条数据路径上。

八、什么人应该现在就试

三类人收益最大:同时在多个项目里跑多个 Agent、需要手动协调的人;想给 AI 产出加一道机器评审但不想改 CI 的人;以及被限额打断过工作流的人。如果你只用一个 Agent、一个项目,收益有限——但当你开始并行,隔离与评审这两个能力几乎立刻回本。

工具地址是 offrun.dev,要求 Apple Silicon 与 macOS 14 以上,外加至少一个你已在用的 Agent CLI。带上你现有的订阅即可,没有隐性成本。

Frequently asked questions

Offrun 会取代 Claude Code 吗?
不会。Offrun 的定位是运行器与工作台,它直接在你本机运行你已登录的 Agent CLI,不提供自己的模型,也不需要新的 API key。你的订阅、账号、计费全部保持原样,Offrun 只负责隔离、调度、评审与记忆这些外围能力。
多个 Agent 同时改一个仓库,为什么会冲突?
两个 Agent 如果在同一个工作目录里跑,会互相覆盖未提交的修改,git 状态也会混在一起。Offrun 给每个 Agent 分配独立的 git worktree,相当于各自拿到一份可编辑的分支副本,完成后各自形成 diff,由你决定合并顺序,物理上杜绝了踩脚。
同行评审 Agent 能直接改我的代码吗?
不能。评审 Agent 只读取当前未提交的 diff,并把发现以消息形式发回主对话,所有修改决策都由你确认后由执行 Agent 实施。Offrun 明确承诺没有任何东西会自动合并,评审结论也只是在工作尚未提交时提前到达。
项目记忆存在哪里?会不会上云?
项目记忆就是仓库文件夹里的普通文件,位于 .offrun 目录下,包括仓库级约定与每个 Agent 的目标、计划和死胡同记录。它不上传任何服务器,你可以直接打开编辑、提交进版本控制,第四次会话能读到第一次试过什么。
Agent 撞到用量限额怎么办?
如果你给同一类 Agent 配置了多个登录账号,Offrun 会在某个账号触顶时把整个对话迁移到仍有余量的账号上,并明确告知你。你重发一次消息,新账号就能接上完整上下文;如果所有账号都用尽,它会建议切换到另一个 Agent 接手。
// next.txt ›

Some outbound links in this post are affiliate links — see disclosure.