nightly-labs / openbot

本文为原文前 6,000 字符的节选翻译,完整内容请查看原文。

nightly-labs / openbot

OpenBot is a local-first desktop workspace for persistent AI teammates. It supports the local Codex App Server and Claude Code, plus Grok CLI, OpenCode, Gemini, Cursor CLI, and Cline CLI through ACP. It gives every agent its own workspace and conversation, and provides local queues, file transfers, an embedded browser, and agent-to-agent messaging in one desktop app.

OpenBot 是一个以本地优先的桌面工作区,用于持久化的 AI 队友。它支持本地 Codex 应用服务器和 Claude Code,以及通过 ACP 支持的 Grok CLI、OpenCode、Gemini、Cursor CLI 和 Cline CLI。它为每个智能体提供独立的工作区和对话,并在一个桌面应用中集成了本地队列、文件传输、嵌入式浏览器和智能体间通信功能。

Warning: OpenBot is a development preview. Agents currently run with danger-full-access and approvalPolicy: never. They can read and modify files, run commands, use the network, and control the embedded browser without per-action confirmations after the explicit first-launch consent. Run only agents and tasks you trust, keep backups, and review Security before use.

警告:OpenBot 目前处于开发预览阶段。智能体当前以“危险完全访问”(danger-full-access)权限运行,且审批策略(approvalPolicy)设置为“从不”(never)。在首次启动明确授权后,它们无需针对每项操作进行确认即可读取和修改文件、运行命令、使用网络以及控制嵌入式浏览器。请仅运行您信任的智能体和任务,保持备份,并在使用前查阅安全说明。

What works: Prompt-driven agent creation and editing on desktop and mobile, with editable instructions, avatar, and section review before saving. Persistent agents backed by independent Codex, Claude, Grok, OpenCode, Gemini, Cursor, or Cline sessions and local workspaces. Custom OpenAI-compatible endpoints and custom ACP agents, with detection of local model servers (Ollama, LM Studio) and installed agents. Per-agent context monitoring with automatic compaction before long threads exhaust the model window. FIFO message queues with pause, resume, cancellation, and crash-safe persistence. Agent-to-agent messages, replies, reactions, images, and managed file transfers. Shared desktop channel chats with one task owner, explicit delegation, shared history, and Stop, Resume, Reassign, Archive, and Restore controls. A persistent embedded browser that agents can open, inspect, and control. Optional Computer Use on macOS, Windows and Linux through the cua-driver binary in the release, which OpenBot starts as its own child process and gives to every provider. Per-agent model, reasoning, profile, notification, browser, and panel state. Local data and privacy-safe diagnostics exports from the account menu. Optional OpenBot accounts through one-time email codes. The account API runs on Cloudflare Workers and D1. OpenBot is local-first, not offline-only. Codex connects to OpenAI, Claude connects to Anthropic, Grok connects to xAI, Gemini connects to Google, Cursor connects to Cursor, Cline connects to Cline, visited pages use the network, and installed plugins may connect to their own services.

功能特性:支持在桌面和移动端通过提示词创建和编辑智能体,并可在保存前编辑指令、头像及查看各部分内容。持久化智能体由独立的 Codex、Claude、Grok、OpenCode、Gemini、Cursor 或 Cline 会话及本地工作区支持。支持自定义 OpenAI 兼容端点和自定义 ACP 智能体,并可检测本地模型服务器(Ollama、LM Studio)及已安装的智能体。具备针对每个智能体的上下文监控功能,在长对话耗尽模型窗口前自动压缩。提供支持暂停、恢复、取消和崩溃安全持久化的 FIFO 消息队列。支持智能体间的消息、回复、反应、图像和托管文件传输。提供共享桌面频道聊天功能,包含任务所有者、明确的委派、共享历史记录,以及停止、恢复、重新分配、归档和恢复控制。包含一个智能体可打开、检查和控制的持久化嵌入式浏览器。通过发行版中的 cua-driver 二进制文件,在 macOS、Windows 和 Linux 上提供可选的“计算机使用”(Computer Use)功能,OpenBot 将其作为子进程启动并提供给每个提供商。支持针对每个智能体的模型、推理、配置文件、通知、浏览器和面板状态管理。可通过账户菜单导出本地数据和隐私安全的诊断信息。支持通过一次性电子邮件验证码创建可选的 OpenBot 账户。账户 API 运行在 Cloudflare Workers 和 D1 上。OpenBot 是本地优先的,而非仅限离线使用。Codex 连接到 OpenAI,Claude 连接到 Anthropic,Grok 连接到 xAI,Gemini 连接到 Google,Cursor 连接到 Cursor,Cline 连接到 Cline;访问页面会使用网络,已安装的插件可能会连接到它们自己的服务。

Install: OpenBot supports macOS 13 or newer on Apple silicon or Intel, Windows 10 or newer on x64 systems, and x64 or arm64 Linux as an AppImage.

安装:OpenBot 支持 Apple Silicon 或 Intel 芯片的 macOS 13 及以上版本,x64 系统的 Windows 10 及以上版本,以及作为 AppImage 运行的 x64 或 arm64 Linux。

macOS: Download the latest OpenBot--arm64.dmg (or OpenBot--x64.dmg on an Intel Mac) from GitHub Releases. Drag OpenBot to Applications and open it.

macOS:从 GitHub Releases 下载最新的 OpenBot--arm64.dmg(Intel Mac 请下载 OpenBot--x64.dmg)。将 OpenBot 拖入“应用程序”文件夹并打开。

Windows: Download the latest OpenBot-*-x64.exe from GitHub Releases. Run the installer and open OpenBot.

Windows:从 GitHub Releases 下载最新的 OpenBot-*-x64.exe。运行安装程序并打开 OpenBot。

Linux: Download the latest OpenBot--x86_64.AppImage (or OpenBot--arm64.AppImage on arm64) from GitHub Releases. Make it executable with chmod +x OpenBot-*.AppImage, then run it. The AppImage does not need libfuse2, so it also runs on Arch Linux and Omarchy. It mounts itself with fusermount3 from the fuse3 package. On Ubuntu 23.10 or newer and on Debian 13, unprivileged user namespaces are restricted by AppArmor and OpenBot exits during launch until you install an AppArmor profile: sudo install -m 0644 build/linux/openbot.apparmor /etc/apparmor.d/openbot sudo systemctl reload apparmor. The same file ships inside the AppImage at resources/linux/openbot.apparmor. Edit the attachment path in the profile if you keep the AppImage outside the usual locations. Do not start OpenBot with —no-sandbox: that removes the boundary between a renderer and the rest of the computer. On the first start from an AppImage, OpenBot writes ~/.local/share/applications/openbot.desktop and ~/.local/share/icons/openbot.png, which is what lets an openbot:// link - an invitation, or a plugin listing - open the app and gives the launcher an icon that stays after the app exits. Delete the two files to undo it. Remote desktop works on Linux x64 in an X11 session, such as Xorg or Xvfb. It does not work under Wayland, and the arm64 AppImage does not include it. For Gemini sign-in, install a desktop browser and xdg-utils. Open the sign-in page in a desktop session on the same host or VM. Google sends the callback to that host through 127.0.0.1; a server with no desktop cannot complete this sign-in. See Gemini setup.

Linux:从 GitHub Releases 下载最新的 OpenBot--x86_64.AppImage(arm64 请下载 OpenBot--arm64.AppImage)。使用 chmod +x OpenBot-*.AppImage 使其可执行,然后运行。该 AppImage 不需要 libfuse2,因此也可以在 Arch Linux 和 Omarchy 上运行。它通过 fuse3 包中的 fusermount3 自行挂载。在 Ubuntu 23.10 或更新版本以及 Debian 13 上,非特权用户命名空间受到 AppArmor 的限制,OpenBot 在启动时会退出,除非您安装 AppArmor 配置文件:sudo install -m 0644 build/linux/openbot.apparmor /etc/apparmor.d/openbot,然后执行 sudo systemctl reload apparmor。该文件也包含在 AppImage 内部的 resources/linux/openbot.apparmor 中。如果您将 AppImage 存放在非标准位置,请编辑配置文件中的附件路径。请勿使用 —no-sandbox 启动 OpenBot:这会移除渲染器与计算机其余部分之间的边界。首次从 AppImage 启动时,OpenBot 会写入 ~/.local/share/applications/openbot.desktop 和 ~/.local/share/icons/openbot.png,这使得 openbot:// 链接(如邀请或插件列表)能够打开应用,并为启动器提供一个在应用退出后依然存在的图标。删除这两个文件即可撤销此操作。远程桌面功能适用于 Linux x64 的 X11 会话(如 Xorg 或 Xvfb)。它在 Wayland 下无法工作,且 arm64 AppImage 不包含此功能。对于 Gemini 登录,请安装桌面浏览器和 xdg-utils。在同一主机或虚拟机上的桌面会话中打开登录页面。Google 会通过 127.0.0.1 将回调发送到该主机;没有桌面的服务器无法完成此登录。请参阅 Gemini 设置。

Linux server with no screen: To run OpenBot as an always-on server of your account on a VPS or home server (Ubuntu 24.04 or 26.04 with systemd), install it from a terminal and sign in with an email code: curl -fsSL https://raw.githubusercontent.com/nightly-labs/openbot/main/scripts/install-server.sh | sudo bash sudo openbot login. Then use it from the desktop app, the iPhone app or openbot.run/app. See self-hosted servers for the options and the openbot commands.

无屏幕 Linux 服务器:若要将 OpenBot 作为您账户的常驻服务器运行在 VPS 或家庭服务器(Ubuntu 24.04 或 26.04,需 systemd)上,请从终端安装并使用电子邮件验证码登录:curl -fsSL https://raw.githubusercontent.com/nightly-labs/openbot/main/scripts/install-server.sh | sudo bash,然后执行 sudo openbot login。之后即可通过桌面应用、iPhone 应用或 openbot.run/app 使用。有关选项和 openbot 命令,请参阅自托管服务器说明。

Docker: The same server runs as a container (linux/amd64 and linux/arm64). The seccomp profile lets the Electron sandbox stay on: curl -fsSLO https://raw.githubusercontent.com/nightly-labs/openbot/main/docker/seccomp.json docker run -d —name openbot —restart unless-stopped —security-opt seccomp=seccomp.json —security-opt no-new-privileges:true —shm-size 1g —stop-timeout 60 -v openbot-data:/data ghcr.io/nightly-labs/openbot:latest docker exec -it openbot openbot login. See Docker for Compose, the data volume, upgrades and the security limits. For Amazon ECS, see AWS ECS.

Docker:同一服务器可作为容器运行(支持 linux/amd64 和 linux/arm64)。seccomp 配置文件允许保持 Electron 沙盒开启:curl -fsSLO https://raw.githubusercontent.com/nightly-labs/openbot/main/docker/seccomp.json,随后运行 docker run -d —name openbot —restart unless-stopped —security-opt seccomp=seccomp.json —security-opt no-new-privileges:true —shm-size 1g —stop-timeout 60 -v openbot-data:/data ghcr.io/nightly-labs/openbot:latest,最后执行 docker exec -it openbot openbot login。有关 Compose、数据卷、升级和安全限制,请参阅 Docker 说明。对于 Amazon ECS,请参阅 AWS ECS。

Nix: The flake installs the desktop app from the latest release on x64 or arm64 Linux and on Apple silicon: nix run github:nightly-labs/openbot nix profile install github:nightly-labs/openbot overlays.default adds pkgs.openbot. OpenBot is not free software, so your nixpkgs must allow it, for example with nixpkgs.config.allowUnfreePredicate = pkg: lib.getName pkg == “openbot”;. Nix installs OpenBot updates. OpenBot does not update itself from the Nix store. On Linux, the Nix package does not include the remote desktop runtime, because nixpkgs does not have a library that it needs.

Nix:该 flake 可在 x64 或 arm64 Linux 以及 Apple Silicon 上从最新版本安装桌面应用:nix run github:nightly-labs/openbot,nix profile install github:nightly-labs/openbot,overlays.default 会添加 pkgs.openbot。OpenBot 不是自由软件,因此您的 nixpkgs 必须允许它,例如设置 nixpkgs.config.allowUnfreePredicate = pkg: lib.getName pkg == “openbot”;。Nix 会安装 OpenBot 更新。OpenBot 不会从 Nix store 自行更新。在 Linux 上,Nix 包不包含远程桌面运行时,因为 nixpkgs 缺少其所需的库。