跳转至

部署模式

与已登录的 Messages 账户一起运行 imsg 的拓扑,以及每种拓扑所需的配置。

部署模式

专用机器人 macOS 用户(独立的 iMessage 身份)

使用专用的 Apple ID 和 macOS 用户,以便将机器人流量与个人 Messages 配置文件隔离。

典型流程:

  1. 创建/登录专用的 macOS 用户。
  2. 在该用户中,使用机器人 Apple ID 登录 Messages。
  3. 在该用户中安装 imsg。
  4. 创建一个 SSH 包装器,以便 OpenClaw 可以在该用户上下文中运行 imsg。
  5. 将 channels.imessage.accounts.<id>.cliPath 和 .dbPath 指向该用户配置文件。

首次运行时,可能需要在该机器人用户会话中完成 GUI 审批(自动化 + 完全磁盘访问权限)。

通过 Tailscale 连接远程 Mac(示例)

常见拓扑:

  • gateway 运行在 Linux/VM 上
  • iMessage + imsg 运行在 tailnet 中的一台 Mac 上
  • cliPath 包装器使用 SSH 运行 imsg
  • remoteHost 通过 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",
    },
  },
}
#!/usr/bin/env bash
exec ssh -T bot@mac-mini.tailnet-1234.ts.net imsg "$@"

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