OpenMausBot 是个开源的多机器人工作台:一个聊天窗口里排着一队 bot,每个 bot 有独立的模型、记忆和一台电脑,跑在你本机已登录的 claude / codex / grok CLI 上。Apache-2.0,TypeScript,当前 v0.1.142,13,839 星。

这篇只讲工程侧:怎么装、两个进程各管什么、四级审批的默认值是什么、以及几处会咬人的边界。

一、它是什么

项情况
版本 / 许可v0.1.142 / Apache-2.0
技术栈TypeScript(4,972 个 ts/tsx 文件)、React + Tailwind、Electron
形态桌面端(macOS / Windows / Ubuntu 24.04 x64)+ iOS + 本地服务
运行要求Node 24+、pnpm、至少一个已登录的 agent CLI
星数 / issue13,839★、474 个 open issue(2026-11-06)
默认审批级别Full access

架构上是两个进程:界面(开发模式 127.0.0.1:5199)自己不持有任何传输层,只向本地 本地服务 服务(127.0.0.1:8799)发 HTTP 命令,再把一条 SSE 事件流折叠成界面状态。所有 agent 进程都由 本地服务 拥有,各 provider 的原生协议在 server/drivers/ 里归一到一条规范事件流,按线程落 NDJSON。数据在 ~/.openmausbot。

在这里插入图片描述

二、三条安装路径

发布包最省事,本地服务 是内置的,不用单独起服务:

macOS(Apple silicon / Intel) → .dmg
Windows x64                 → setup.exe(未签名,走 SmartScreen「仍要运行」)
Ubuntu 24.04 x64            → .deb 或 AppImage(beta,GNOME)

已经装了 Node 的,用 npm 包,第一次启动会引导选 AI 接入方式:

npm install -g openmausbot
openmausbot            # 加 --no-open 可跳过自动开浏览器
# 或 npx openmausbot

要改代码就源码跑,三个终端各起一个:

git clone <项目仓库地址> && cd OpenMausBot
pnpm install
pnpm dev:server        # 本地服务 → 127.0.0.1:8799
pnpm dev               # 界面   → 127.0.0.1:5199
pnpm dev:desktop       # Electron 壳,上面两个保持运行

要跑在服务器上,仓库自带 compose,两个服务:omb(健康检查打 /api/health)与 caddy(默认只绑 127.0.0.1,端口取 OMB_HTTP_PORT,默认 8080):

docker compose up -d

镜像与引擎可用环境变量覆盖:OMB_BASE_IMAGE、ENGINES(默认 @anthropic-ai/claude-code @openai/codex)。没有界面也能干活,CLI 支持从文件建队和单任务运行:

openmausbot team apply team.yaml
openmausbot run "Room Lead" "跑一遍发布前检查" --export ./out

三、审批分级:默认是全权

这是最容易踩的一节。审批一共四档,另有一个 Codex 专用的 Custom:

级别行为
Ask for approval命令与文件改动都要你批
Auto-accept edits自动批文件改动,其他动作仍可能问
Approve for me用 provider 自己的自动审查代批常规动作(Codex / Claude / Cursor / Grok),没有等价机制的 provider 退化成询问
Full access放行命令、改动与选定电脑上的操作,残留的原生权限弹窗代你回答
Custom(config.toml)仅 Codex:读取并复用你 Codex 配置里的审批与沙箱设置

文档写明:每个 bot 与每条会话初始就是 Full access,你选中它的那一刻生效,没有确认框。Full access 下,profile 变更、例行任务、建队、删 bot、技能编写都不再二次确认;通过已连接应用往外发(邮件、消息、帖子、支付)才回到 bot 的 Sending on your behalf 设置:选「每次询问」就每次都要授权,选「允许每日额度」就吃额度上限。应用代码执行始终要审批。

一个例外值得记:托管的企业工作区默认是 Ask,因为那边的 Full access 只能由运维策略下发。

收紧的做法很简单:bot 设置里把级别改成 Ask for approval,注意它对该 bot 的所有已有线程一起生效;只要改单条线程,就在输入框那里改。

四、机器人电脑的三种选择

每个 bot 的工作位置可以选:

  • 云 Linux 桌面(Boat):在应用里点开自建,有实时画面,可接管到浏览器
  • 本地隔离 VM:本机容器里的一张桌面
  • 你自己的电脑:macOS 与 Ubuntu Xorg 需要显式开启;Wayland 下这项被安全闸关着(issue #345)

自备 VPS 也行,走 docker -H ssh:// 把容器开到远端,本机不需要 docker 守护进程,只要 CLI(18.09+),VPS 上要有 dockerd,SSH 用户得在 docker 组里。文档自己写了一句要看清的话:docker 组成员在那台机器上等价于 root。

想让 agent 真的能动手又不至于碰你的主力环境,组合是:Ask for approval + 工作位置设成云桌面或本地 VM。

五、接别的模型

除了三个内置 CLI,任何说 ACP 的 CLI,或者 OpenAI 兼容端点(DeepSeek、OpenRouter、Fireworks、Cline 等)都能接,配置在 apps/docs/content/docs/providers/model-providers.mdx。自定义引擎看 docs/custom-engines.md,加一个 provider 就是一个文件加一行注册(server/contracts.ts 的 driver SPI 很薄)。另外它自带一个 stdio MCP server,可以被 Claude Desktop、Cursor 这类外部客户端调,但暴露面是刻意收敛的:不给审批授权、不给删除、不给凭据、不给电脑生命周期。

六、几个坑

中文没翻完:issue 记录简体中文缺 1,280 个键。

订阅额度:issue 里有 Codex 在订阅用量 100% 时被挡住、尽管账号还有积分的案例。多 bot 并行的消耗远高于单窗口。

桌面互连:有 pair 403 一类的连接故障,作者的路线图里移动端与桌面互连还在完善,webhook 触发器目前用本地接收端而不是常驻中继。

Windows 安装包未签名,Ubuntu 是 beta,Wayland 限制见上。

接 OpenAI 兼容端点的 bot 在 Local VM 里可能拿不到电脑与浏览器工具(issue 有记录),同一个 bot 换 Claude 引擎正常。

七、小结

  • 只想用:下发布包,装完在设置里选模型来源(用你已有的 CLI 登录)
  • 想稳:权限改 Ask for approval,工作位置设云桌面或本地 VM,代为发送设成每次询问
  • 想自托管:compose 或 npm 包,OMB_HTTP_PORT 与 ENGINES 按需覆盖
  • 想改造:driver SPI 在 server/contracts.ts,自定义引擎零代码接 ACP / OpenAI 兼容端点

它的价值不在模型,在"每个 bot 有自己的会话与电脑"这层隔离;它的风险也不在模型,在默认那一档 Full access。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐