OpenClaw iMessage 配置指南

状态

推荐: 新 iMessage 设置使用 BlueBubbles

imsg 频道是旧版外部 CLI 集成,可能在未来版本中删除。


快速设置(初学者)

  • 确保在此 Mac 上登录 Messages
  • 安装 imsg:
    brew install steipete/tap/imsg
  • 使用 channels.imessage.cliPathchannels.imessage.dbPath 配置 OpenClaw
  • 启动网关并批准任何 macOS 提示(自动化 + 完全磁盘访问)

最小配置:

{
  "channels": {
    "imessage": {
      "enabled": true,
      "cliPath": "/usr/local/bin/imsg",
      "dbPath": "/Users/<you>/Library/Messages/chat.db"
    }
  }
}

要求

  • 登录 Messages 的 macOS
  • OpenClaw + imsg 的完全磁盘访问(Messages DB 访问)
  • 发送时的自动化权限
  • channels.imessage.cliPath 可以指向代理 stdin/stdout 的任何命令(例如,包装脚本通过 SSH 到另一台 Mac 并运行 imsg rpc

故障排除 macOS 隐私和安全 TCC

如果发送/接收失败(例如,imsg rpc 以非零退出、超时或网关似乎挂起),常见原因是 macOS 权限提示从未被批准。

检查清单:

  • 完全磁盘访问: 允许运行 OpenClaw 的进程访问(和任何执行 imsg 的 shell/SSH 包装器)
  • 自动化 → Messages: 允许运行 OpenClaw 的进程控制 Messages.app

提示: 如果 OpenClaw 以 headless 运行(LaunchAgent/systemd/SSH),macOS 提示可能很容易错过。在 GUI 终端中运行一次性交互式命令以强制提示,然后重试:

imsg chats --limit 1
# 或
imsg send <handle> "test"

专用机器人 macOS 用户(用于隔离身份)

如果您希望机器人从单独的 iMessage 身份发送(并保持个人 Messages 干净),使用专用 Apple ID + 专用 macOS 用户。

  1. 创建专用 Apple ID
  2. 创建 macOS 用户并登录
  3. 在该 macOS 用户中打开 Messages 并使用机器人 Apple ID 登录 iMessage
  4. 启用远程登录(系统设置 → 通用 → 共享 → 远程登录)
  5. 安装 imsg: brew install steipete/tap/imsg
  6. 设置 SSH 以便 ssh <user>@localhost true 无需密码工作
  7. channels.imessage.accounts.bot.cliPath 指向运行 imsg 作为机器人用户的 SSH 包装器

访问控制(DM + 群组)

DM

  • 默认: channels.imessage.dmPolicy = "pairing"
  • 未知发送者接收配对代码;消息被忽略直到批准
  • 通过以下方式批准:
    openclaw pairing list imessage
    openclaw pairing approve imessage <code>

群组

  • channels.imessage.groupPolicy = open | allowlist | disabled
  • channels.imessage.groupAllowFrom 控制 allowlist 设置时谁可以在群组中触发

来源: https://docs.openclaw.ai/channels/imessage

作者:十一张  创建时间:2026-03-08 22:33
最后编辑:十一张  更新时间:2026-03-28 11:55