部署模式
与已登录的 Messages 账户一起运行 imsg 的拓扑,以及每种拓扑所需的配置。
部署模式¶
专用机器人 macOS 用户(独立的 iMessage 身份)
使用专用的 Apple ID 和 macOS 用户,以便将机器人流量与个人 Messages 配置文件隔离。
典型流程:
- 创建/登录专用的 macOS 用户。
- 在该用户中,使用机器人 Apple ID 登录 Messages。
- 在该用户中安装
imsg。 - 创建一个 SSH 包装器,以便 OpenClaw 可以在该用户上下文中运行
imsg。 - 将
channels.imessage.accounts.<id>.cliPath和.dbPath指向该用户配置文件。
首次运行时,可能需要在该机器人用户会话中完成 GUI 审批(自动化 + 完全磁盘访问权限)。
通过 Tailscale 连接远程 Mac(示例)
常见拓扑:
- gateway 运行在 Linux/VM 上
- iMessage +
imsg运行在 tailnet 中的一台 Mac 上 cliPath包装器使用 SSH 运行imsgremoteHost通过 SSH/SCP 启用入站获取和仅限所有者的出站暂存
示例:
{
channels: {
imessage: {
enabled: true,
cliPath: "/home/openclaw/.openclaw/scripts/imsg-ssh",
remoteHost: "bot@mac-mini.tailnet-1234.ts.net",
includeAttachments: true,
dbPath: "/Users/bot/Library/Messages/chat.db",
},
},
}
cliPath 是 Gateway 本地的绝对包装器路径。remoteHost 和 dbPath 指向 Messages Mac;不要使用 Gateway 用户的主目录重写远程数据库路径。
使用 SSH 密钥,使 SSH 和 SCP 均为非交互式。
先确保主机密钥受信任(例如 ssh bot@mac-mini.tailnet-1234.ts.net),以便填充 known_hosts。
多账户模式
在 channels.imessage.accounts 下,iMessage 支持按账户配置。
每个账户都可以覆盖诸如 cliPath、dbPath、allowFrom、dmPolicy、groupPolicy、mediaMaxMb、历史记录设置以及附件根目录允许列表等字段。省略的账户策略继承通道根配置;显式账户策略优先。如果两个作用域都未设置,则直接消息使用 pairing,群组使用 allowlist。
直接消息历史记录
设置 channels.imessage.dmHistoryLimit,以便用该对话最近解码的 imsg 历史记录为新的直接消息会话填充初始数据。使用 channels.imessage.dms["<sender>"].historyLimit 进行按发送者覆盖,包括使用 0 禁用某个发送者的历史记录。
iMessage 直接消息历史记录会按需从 imsg 获取。保持 dmHistoryLimit 未设置会禁用全局直接消息历史记录填充,但按发送者设置的正值 channels.imessage.dms["<sender>"].historyLimit 仍会为该发送者启用填充。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw