iMessage(旧版:imsg)
状态:旧版外部 CLI 集成。Gateway(网关) 生成imsg rpc 并通过 stdio 上的 JSON-RPC 进行通信(没有单独的守护进程/端口)。
BlueBubbles (推荐)
新设置首选的 BlueBubbles 路径。
配对
iMessage 私信默认为配对模式。
配置参考
Full iMessage field reference.
快速设置
- 本地 Mac(快速路径)
- Remote Mac over SSH
要求和权限 (macOS)
- 必须在运行
imsg的 Mac 上登录 Messages。 - 运行 OpenClaw/
imsg的进程上下文需要“完全磁盘访问”权限(访问 Messages 数据库)。 - 需要“自动化”权限才能通过 Messages.app 发送消息。
访问控制和路由
- 私信 policy
- Group policy + mentions
- 会话和确定性回复
channels.imessage.dmPolicy 控制私信(私信):pairing(默认)allowlistopen(需要allowFrom包含"*")disabled
channels.imessage.allowFrom。允许列表条目可以是句柄或聊天目标(chat_id:*, chat_guid:*, chat_identifier:*)。部署模式
专用机器人 macOS 用户(独立的 iMessage 身份)
专用机器人 macOS 用户(独立的 iMessage 身份)
使用专用的 Apple ID 和 macOS 用户,以便机器人流量与您的个人 Messages 资料隔离。典型流程:
- 创建/登录专用的 macOS 用户。
- 在该用户中使用机器人 Apple ID 登录 Messages。
- 在该用户中安装
imsg。 - 创建 SSH 包装器,以便 OpenClaw 可以在该用户上下文中运行
imsg。 - 将
channels.imessage.accounts.<id>.cliPath和.dbPath指向该用户配置文件。
通过 Tailscale 连接远程 Mac(示例)
通过 Tailscale 连接远程 Mac(示例)
常见拓扑结构:使用 SSH 密钥,以便 SSH 和 SCP 均为非交互式。
确保首先信任主机密钥(例如
- 网关运行在 Tailscale/VM 上
- iMessage +
imsg运行在您 tailnet 中的 Mac 上 cliPath包装器使用 SSH 来运行imsgremoteHost启用通过 SCP 获取附件
ssh bot@mac-mini.tailnet-1234.ts.net),以便 known_hosts 被填充。多账户模式
多账户模式
iMessage 支持在
channels.imessage.accounts 下进行逐账户配置。每个账户可以覆盖诸如 cliPath、dbPath、allowFrom、groupPolicy、mediaMaxMb、历史记录设置和附件根目录允许列表等字段。媒体、分块和投递目标
附件和媒体
附件和媒体
- 接收附件摄取是可选的:
channels.imessage.includeAttachments - 当设置了
remoteHost时,可以通过 SCP 获取远程附件路径 - 附件路径必须匹配允许的根目录:
channels.imessage.attachmentRoots(本地)channels.imessage.remoteAttachmentRoots(远程 SCP 模式)- 默认根目录模式:
/Users/*/Library/Messages/Attachments
- SCP 使用严格的主机密钥检查(
StrictHostKeyChecking=yes) - 外发媒体大小使用
channels.imessage.mediaMaxMb(默认 16 MB)
出站分块
出站分块
- 文本分块限制:
channels.imessage.textChunkLimit(默认 4000)- 分块模式:channels.imessage.chunkMode-length(默认)-newline(段落优先分割)
寻址格式
寻址格式
首选的显式目标:
chat_id:123(推荐用于稳定路由)chat_guid:...chat_identifier:...
imessage:+1555...sms:+1555...user@example.com
配置写入
iMessage 默认允许渠道发起的配置写入(当commands.config: true 时用于 /config set|unset)。
禁用:
故障排除
未找到 imsg 或不支持 RPC
未找到 imsg 或不支持 RPC
验证二进制文件和 RPC 支持:如果探测报告不支持 RPC,请更新
imsg。私信被忽略
私信被忽略
检查:
channels.imessage.dmPolicychannels.imessage.allowFrom- 配对批准(
openclaw pairing list imessage)
群组消息被忽略
群组消息被忽略
检查:
channels.imessage.groupPolicychannels.imessage.groupAllowFromchannels.imessage.groups许可名单行为- 提及模式配置(
agents.list[].groupChat.mentionPatterns)
远程附件失败
远程附件失败
检查:
channels.imessage.remoteHostchannels.imessage.remoteAttachmentRoots- 网关主机的 SSH/SCP 密钥认证
- 网关主机的
~/.ssh/known_hosts中存在主机密钥 - 运行“信息”应用的 Mac 上的远程路径可读性
macOS 权限提示被遗漏
macOS 权限提示被遗漏
在相同的用户/会话上下文中,以交互方式在 GUI 终端中重新运行,并批准提示:确认为运行 OpenClaw/
imsg 的进程上下文授予了完全磁盘访问权限 + 自动化权限。配置参考指针
本页面源自 openclaw/openclaw,由 BeaversLab 翻译,遵循 MIT 协议 发布。