OpenClaw macOS IPC 架构

当前模型: 一个本地 Unix 套接字将节点主机服务连接到 macOS 应用,用于 exec 审批 + system.run。存在一个 openclaw-mac 调试 CLI 用于发现/连接检查;智能体操作仍通过 Gateway 网关 WebSocket 和 node.invoke 流转。UI 自动化使用 PeekabooBridge。 目标 单个 GUI 应用实例拥有所有面向 TCC 的工作(通知、屏幕录制、麦克风、语音、AppleScript)。 小型自动化接口:Gateway 网关 + 节点命令,加上用于 UI 自动化的 PeekabooBridge。 可预测的权限:始终是同一个签名的 bundle ID,由 launchd 启动,因此 TCC 授权保持有效。 工作原理 Gateway 网关 + 节点传输 应用运行 Gateway 网关(本地模式)并作为节点连接到它。 智能体操作通过 node.invoke 执行(例如 system.run、system.notify、canvas.*)。 节点服务 + 应用 IPC 一个无头节点主机服务连接到 Gateway 网关 WebSocket。 system.run 请求通过本地 Unix 套接字转发到 macOS 应用。 应用在 UI 上下文中执行 exec,必要时提示,并返回输出。 图示(SCI): ...

OpenClaw macOS 发布(Sparkle)

本应用现已支持 Sparkle 自动更新。发布构建必须经过 Developer ID 签名、压缩,并发布包含签名的 appcast 条目。 前提条件 已安装 Developer ID Application 证书(示例:Developer ID Application: <Developer Name> (<TEAMID>))。 环境变量 SPARKLE_PRIVATE_KEY_FILE 已设置为 Sparkle ed25519 私钥路径(公钥已嵌入 Info.plist)。如果缺失,请检查 ~/.profile。 用于 xcrun notarytool 的公证凭据(钥匙串配置文件或 API 密钥),以实现通过 Gatekeeper 安全分发的 DMG/zip。 我们使用名为 openclaw-notary 的钥匙串配置文件,由 shell 配置文件中的 App Store Connect API 密钥环境变量创建: APP_STORE_CONNECT_API_KEY_P8、APP_STORE_CONNECT_KEY_ID、APP_STORE_CONNECT_ISSUER_ID echo "$APP_STORE_CONNECT_API_KEY_P8" | sed 's/\\n/\n/g' > /tmp/openclaw-notary.p8 xcrun notarytool store-credentials "openclaw-notary" --key /tmp/openclaw-notary.p8 --key-id "$APP_STORE_CONNECT_KEY_ID" --issuer "$APP_STORE_CONNECT_ISSUER_ID" 已安装 pnpm 依赖(pnpm install --config.node-linker=hoisted)。 Sparkle 工具通过 SwiftPM 自动获取,位于 apps/macos/.build/artifacts/sparkle/Sparkle/bin/(sign_update、generate_appcast 等)。 构建与打包 注意事项: ...

OpenClaw macOS 配套应用(菜单栏 + Gateway 网关代理)

macOS 应用是 OpenClaw 的菜单栏配套应用。它拥有权限,在本地管理/附加到 Gateway 网关(launchd 或手动),并作为节点向智能体暴露 macOS 功能。 功能 在菜单栏中显示原生通知和状态。 拥有 TCC 提示(通知、辅助功能、屏幕录制、麦克风、语音识别、自动化/AppleScript)。 运行或连接到 Gateway 网关(本地或远程)。 暴露 macOS 专用工具(Canvas、相机、屏幕录制、system.run)。 在远程模式下启动本地节点主机服务(launchd),在本地模式下停止它。 可选地托管 PeekabooBridge 用于 UI 自动化。 根据请求通过 npm/pnpm 安装全局 CLI(openclaw)(不建议使用 bun 作为 Gateway 网关运行时)。 本地 vs 远程模式 本地(默认):如果存在运行中的本地 Gateway 网关,应用附加到它;否则通过 openclaw gateway install 启用 launchd 服务。 远程:应用通过 SSH/Tailscale 连接到 Gateway 网关,从不启动本地进程。 应用启动本地节点主机服务,以便远程 Gateway 网关可以访问此 Mac。 应用不会将 Gateway 网关作为子进程生成。 Launchd 控制 应用管理一个标记为 bot.molt.gateway 的每用户 LaunchAgent(使用 --profile/OPENCLAW_PROFILE 时为 bot.molt.<profile>;旧版 com.openclaw.* 仍会卸载)。 launchctl kickstart -k gui/$UID/bot.molt.gateway launchctl bootout gui/$UID/bot.molt.gateway 运行命名配置文件时,将标签替换为 bot.molt.<profile>。 ...

Peekaboo Bridge(macOS UI 自动化)

OpenClaw 可以将 PeekabooBridge 作为本地的、权限感知的 UI 自动化代理进行托管。这使得 peekaboo CLI 能够驱动 UI 自动化,同时复用 macOS 应用的 TCC 权限。 这是什么(以及不是什么) 宿主:OpenClaw.app 可以作为 PeekabooBridge 宿主。 客户端:使用 peekaboo CLI(无需单独的 openclaw ui ... 界面)。 界面:视觉叠加层保留在 Peekaboo.app 中;OpenClaw 只是一个轻量代理宿主。 启用桥接 在 macOS 应用中: 设置 → 启用 Peekaboo Bridge 启用后,OpenClaw 会启动一个本地 UNIX 套接字服务器。如果禁用,宿主会停止,peekaboo 将回退到其他可用宿主。 客户端发现顺序 Peekaboo 客户端通常按以下顺序尝试宿主: Peekaboo.app(完整用户体验) Claude.app(如已安装) OpenClaw.app(轻量代理) 使用 peekaboo bridge status --verbose 查看当前活跃的宿主及使用的套接字路径。你可以通过以下方式覆盖: export PEEKABOO_BRIDGE_SOCKET=/path/to/bridge.sock 安全与权限 桥接会验证调用方的代码签名;强制执行 TeamID 白名单(Peekaboo 宿主 TeamID + OpenClaw 应用 TeamID)。 请求在约 10 秒后超时。 如果缺少所需权限,桥接会返回清晰的错误信息,而不是启动系统设置。 快照行为(自动化) 快照存储在内存中,并在短暂窗口期后自动过期。如果需要更长的保留时间,请从客户端重新捕获。 ...

Skills(macOS)

macOS 应用通过 Gateway 网关展示 OpenClaw Skills;它不会在本地解析 Skills。 数据来源 skills.status(Gateway 网关)返回所有 Skills 以及资格和缺失的要求 (包括内置 Skills 的允许列表阻止情况)。 要求来源于每个 SKILL.md 中的 metadata.openclaw.requires。 安装操作 metadata.openclaw.install 定义安装选项(brew/node/go/uv)。 应用调用 skills.install 在 Gateway 网关主机上运行安装器。 当提供多个安装器时,Gateway 网关仅展示一个首选安装器 (如果可用则使用 brew,否则使用来自 skills.install 的 node 管理器,默认 npm)。 环境变量/API 密钥 应用将密钥存储在 ~/.openclaw/openclaw.json 的 skills.entries.<skillKey> 下。 skills.update 更新 enabled、apiKey 和 env。 远程模式 安装 + 配置更新发生在 Gateway 网关主机上(不是本地 Mac)。

WebChat(macOS 应用)

macOS 菜单栏应用将 WebChat UI 嵌入为原生 SwiftUI 视图。它连接到 Gateway 网关,默认使用所选智能体的主会话(带有会话切换器用于其他会话)。 本地模式:直接连接到本地 Gateway 网关 WebSocket。 远程模式:通过 SSH 转发 Gateway 网关控制端口,并使用该隧道作为数据平面。 启动和调试 手动:Lobster 菜单 → “Open Chat”。 测试时自动打开: dist/OpenClaw.app/Contents/MacOS/OpenClaw --webchat 日志:./scripts/clawlog.sh(子系统 bot.molt,类别 WebChatSwiftUI)。 工作原理 数据平面:Gateway 网关 WS 方法 chat.history、chat.send、chat.abort、chat.inject 和事件 chat、agent、presence、tick、health。 会话:默认为主会话(main,或当范围为全局时为 global)。UI 可以在会话之间切换。 新手引导使用专用会话,以将首次运行设置分开。 安全面 远程模式仅通过 SSH 转发 Gateway 网关 WebSocket 控制端口。 已知限制 UI 针对聊天会话优化(不是完整的浏览器沙箱)。

Windows (WSL2)

Windows 上的 OpenClaw 推荐通过 WSL2(推荐 Ubuntu)。CLI + Gateway 网关在 Linux 内运行,这保持了运行时的一致性并使工具兼容性大大提高(Node/Bun/pnpm、Linux 二进制文件、Skills)。原生 Windows 可能更棘手。WSL2 给你完整的 Linux 体验——一条命令安装:wsl --install。 原生 Windows 配套应用已在计划中。 安装(WSL2) 入门指南(在 WSL 内使用) 安装和更新 官方 WSL2 指南(Microsoft):https://learn.microsoft.com/windows/wsl/install Gateway 网关 Gateway 网关操作手册 配置 Gateway 网关服务安装(CLI) 在 WSL2 内: openclaw onboard --install-daemon 或: openclaw gateway install 或: openclaw configure 出现提示时选择 Gateway service。 修复/迁移: openclaw doctor 高级:通过 LAN 暴露 WSL 服务(portproxy) WSL 有自己的虚拟网络。如果另一台机器需要访问在 WSL 内运行的服务(SSH、本地 TTS 服务器或 Gateway 网关),你必须将 Windows 端口转发到当前的 WSL IP。WSL IP 在重启后会改变,因此你可能需要刷新转发规则。 ...

在 DigitalOcean 上运行 OpenClaw

目标 以 $6/月(或使用预留定价 $4/月)在 DigitalOcean 上运行持久的 OpenClaw Gateway 网关。 如果你想要 $0/月的选项且不介意 ARM + 特定提供商的设置,请参阅 Oracle Cloud 指南。 成本比较(2026) 提供商 方案 配置 价格/月 备注 Oracle Cloud Always Free ARM 最高 4 OCPU、24GB RAM $0 ARM,容量有限 / 注册有坑 Hetzner CX22 2 vCPU、4GB RAM €3.79 (~$4) 最便宜的付费选项 DigitalOcean Basic 1 vCPU、1GB RAM $6 界面简单,文档完善 Vultr Cloud Compute 1 vCPU、1GB RAM $6 多地区可选 Linode Nanode 1 vCPU、1GB RAM $5 现为 Akamai 旗下 选择提供商: DigitalOcean:最简单的用户体验 + 可预测的设置(本指南) Hetzner:性价比高(参见 Hetzner 指南) Oracle Cloud:可以 $0/月,但更麻烦且仅限 ARM(参见 Oracle 指南) 前提条件 DigitalOcean 账户(注册可获 $200 免费额度) SSH 密钥对(或愿意使用密码认证) 约 20 分钟 1) 创建 Droplet 登录 DigitalOcean 点击 Create → Droplets 选择: Region: 离你(或你的用户)最近的地区 Image: Ubuntu 24.04 LTS Size: Basic → Regular → $6/mo(1 vCPU、1GB RAM、25GB SSD) Authentication: SSH 密钥(推荐)或密码 点击 Create Droplet 记下 IP 地址 2) 通过 SSH 连接 ssh root@YOUR_DROPLET_IP 3) 安装 OpenClaw # Update system apt update && apt upgrade -y # Install Node.js 22 curl -fsSL https://deb.nodesource.com/setup_22.x | bash - apt install -y nodejs # Install OpenClaw curl -fsSL https://openclaw.ai/install.sh | bash # Verify openclaw --version 4) 运行新手引导 openclaw onboard --install-daemon 向导将引导你完成: ...

在 Oracle Cloud(OCI)上运行 OpenClaw

目标 在 Oracle Cloud 的 Always Free ARM 层上运行持久化的 OpenClaw Gateway 网关。 Oracle 的免费层非常适合 OpenClaw(特别是如果你已经有 OCI 账户),但有一些权衡: ARM 架构(大多数东西都能工作,但某些二进制文件可能仅支持 x86) 容量和注册可能比较麻烦 成本比较(2026) 提供商 方案 配置 价格/月 说明 Oracle Cloud Always Free ARM 最多 4 OCPU,24GB RAM $0 ARM,容量有限 Hetzner CX22 2 vCPU,4GB RAM ~ $4 最便宜的付费选项 DigitalOcean Basic 1 vCPU,1GB RAM $6 易用的 UI,文档完善 Vultr Cloud Compute 1 vCPU,1GB RAM $6 多个地区 Linode Nanode 1 vCPU,1GB RAM $5 现为 Akamai 的一部分 先决条件 Oracle Cloud 账户(注册)——如果遇到问题请参阅社区注册指南 Tailscale 账户(在 tailscale.com 免费) 约 30 分钟 1) 创建 OCI 实例 登录 Oracle Cloud Console 导航到 Compute → Instances → Create Instance 配置: Name: openclaw Image: Ubuntu 24.04 (aarch64) Shape: VM.Standard.A1.Flex(Ampere ARM) OCPUs: 2(或最多 4) Memory: 12 GB(或最多 24 GB) Boot volume: 50 GB(最多 200 GB 免费) SSH key: 添加你的公钥 点击 Create 记录公网 IP 地址 提示: 如果实例创建失败并显示"Out of capacity",尝试不同的可用性域或稍后重试。免费层容量有限。 ...

在 Raspberry Pi 上运行 OpenClaw

目标 在 Raspberry Pi 上运行持久、常驻的 OpenClaw Gateway 网关,一次性成本约 $35-80(无月费)。 适用于: 24/7 个人 AI 助手 家庭自动化中心 低功耗、随时可用的 Telegram/WhatsApp 机器人 硬件要求 Pi 型号 内存 是否可用? 说明 Pi 5 4GB/8GB ✅ 最佳 最快,推荐 Pi 4 4GB ✅ 良好 大多数用户的最佳选择 Pi 4 2GB ✅ 可以 可用,添加交换空间 Pi 4 1GB ⚠️ 紧张 使用交换空间可行,最小配置 Pi 3B+ 1GB ⚠️ 慢 可用但较慢 Pi Zero 2 W 512MB ❌ 不推荐 最低配置: 1GB 内存,1 核,500MB 磁盘 推荐: 2GB+ 内存,64 位系统,16GB+ SD 卡(或 USB SSD) ...