消息平台

iMessage

⚠️ 新部署 iMessage 请使用 BlueBubblesimsg 集成属于旧版功能,未来版本可能会移除。

状态:旧版外部 CLI 集成。网关(gateway)会启动 imsg rpc 进程,通过 stdio 上的 JSON-RPC 进行通信(无需单独的守护进程或端口)。

快速设置

brew install steipete/tap/imsg
imsg rpc --help

要求和权限(macOS)

在 macOS 上运行 iMessage 频道,需要满足以下条件:

  • 运行 imsg 的 Mac 必须已在 Messages 中登录。
  • 运行 OpenClaw 或 imsg 的进程上下文需要"完全磁盘访问"权限(Full Disk Access),这是为了访问 Messages 数据库。
  • 需要授予"自动化"权限(Automation),以便通过 Messages.app 发送消息。

💡 权限是按进程上下文授予的。如果你的网关以无头模式(headless)运行——比如通过 LaunchAgent 或 SSH——需要在同一上下文中运行一次交互式命令来触发权限提示:

复制

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

访问控制与路由

channels.imessage.dmPolicy 字段控制直接消息(direct messages)的处理方式:

  • pairing(默认值)——需要配对批准后才能交互
  • allowlist——只允许白名单中的发送者
  • open——开放模式,但要求 allowFrom 包含 "*"
  • disabled——禁用直接消息

白名单字段是 channels.imessage.allowFrom。白名单条目可以是用户句柄(handle)或聊天目标,支持的格式包括 chat_id:*chat_guid:*chat_identifier:*

部署模式

媒体、分块与发送目标

配置写入

iMessage 频道默认允许通过频道发起配置写入(当 commands.config: true 时,支持 /config set|unset 命令)。如果需要禁用此功能:

{
  channels: {
    imessage: {
      configWrites: false,
    },
  },
}

故障排除

配置参考链接

Google ChatIRC