macOS 应用是 OpenClaw 的菜单栏伴侣应用,负责权限管理、Gateway 生命周期,并将 macOS 能力作为节点暴露给 Agent。

核心功能

  • 显示原生通知和菜单栏状态
  • 管理 TCC 权限(通知、辅助功能、屏幕录制、麦克风、语音识别、AppleScript)
  • 运行或连接 Gateway(本地或远程)
  • 暴露 macOS 专属工具:Canvas、Camera、Screen Recording、system.run
  • 可选托管 PeekabooBridge 用于 UI 自动化

本地 vs 远程模式

  • 本地模式(默认):连接已运行的本地 Gateway,否则通过 openclaw gateway install 启用 launchd 服务
  • 远程模式:通过 SSH/Tailscale 连接远程 Gateway,不启动本地进程;Gateway 发现优先使用 Tailscale MagicDNS 名称

Launchd 控制

# 重启 Gateway
launchctl kickstart -k gui/$UID/ai.openclaw.gateway
 
# 停止 Gateway
launchctl bootout gui/$UID/ai.openclaw.gateway

使用 --profile 时,标签改为 ai.openclaw.<profile>。

节点能力(macOS)

命令族示例命令
Canvascanvas.present, canvas.navigate, canvas.eval, canvas.snapshot
Cameracamera.snap, camera.clip
Screenscreen.snapshot, screen.record
Systemsystem.run, system.notify

Exec 审批(system.run)

system.run 由 Settings → Exec approvals 控制,配置存储在 ~/.openclaw/exec-approvals.json:

{
  "version": 1,
  "defaults": { "security": "deny", "ask": "on-miss" },
  "agents": {
    "main": {
      "security": "allowlist",
      "ask": "on-miss",
      "allowlist": [{ "pattern": "/opt/homebrew/bin/rg" }]
    }
  }
}
  • allowlist 条目为已解析二进制路径的 glob 模式
  • 包含 shell 控制字符(&&, ||, ;, | 等)的命令视为 allowlist miss

应用注册 openclaw:// URL scheme:

open 'openclaw://agent?message=Hello%20from%20deep%20link'

无 key 时需用户确认;有效 key 时无人值守运行。

State 目录建议

避免将 OpenClaw state 目录放在 iCloud 或其他云同步文件夹中:

OPENCLAW_STATE_DIR=~/.openclaw

openclaw doctor 会检测并警告 iCloud 路径。

调试 Gateway 连接

cd apps/macos
swift run openclaw-mac connect --json
swift run openclaw-mac discover --timeout 3000 --json

相关链接