iMessage (застаріле: imsg)
Стан: застаріла зовнішня інтеграція CLI. Gateway запускаєimsg rpc і обмінюється даними через JSON-RPC по stdio (без окремого демона/порту).
BlueBubbles (рекомендовано)
Бажаний шлях iMessage для нових налаштувань.
Прив’язка
Для приватних повідомлень iMessage типово використовується режим прив’язки.
Довідник з конфігурації
Повний довідник полів iMessage.
Швидке налаштування
- Локальний Mac (швидкий шлях)
- Віддалений Mac через SSH
Вимоги та дозволи (macOS)
- У Messages має бути виконано вхід на Mac, де працює
imsg. - Для контексту процесу, у якому працює OpenClaw/
imsg, потрібен Full Disk Access (доступ до бази даних Messages). - Для надсилання повідомлень через Messages.app потрібен дозвіл Automation.
Керування доступом і маршрутизація
- Політика приватних повідомлень
- Політика груп + згадки
- Сесії та детерміновані відповіді
channels.imessage.dmPolicy керує прямими повідомленнями:pairing(типово)allowlistopen(потрібно, щобallowFromвключав"*")disabled
channels.imessage.allowFrom.Записи allowlist можуть бути дескрипторами або цілями чату (chat_id:*, chat_guid:*, chat_identifier:*).Прив’язки розмов ACP
Застарілі чати iMessage також можна прив’язувати до сесій ACP. Швидкий операторський сценарій:- Виконайте
/acp spawn codex --bind hereу приватному повідомленні або дозволеному груповому чаті. - Подальші повідомлення в цій самій розмові iMessage маршрутизуються до створеної сесії ACP.
/newі/resetскидають цю саму прив’язану сесію ACP на місці./acp closeзакриває сесію ACP і видаляє прив’язку.
bindings[] з type: "acp" і match.channel: "imessage".
match.peer.id може використовувати:
- нормалізований дескриптор приватного повідомлення, наприклад
+15555550123абоuser@example.com chat_id:<id>(рекомендовано для стабільних групових прив’язок)chat_guid:<guid>chat_identifier:<identifier>
Сценарії розгортання
Виділений користувач macOS для бота (окрема ідентичність iMessage)
Виділений користувач macOS для бота (окрема ідентичність iMessage)
Використовуйте окремий Apple ID і користувача macOS, щоб трафік бота був ізольований від вашого особистого профілю Messages.Типовий сценарій:
- Створіть окремого користувача macOS і ввійдіть у нього.
- Увійдіть у Messages з Apple ID бота в цьому користувачі.
- Установіть
imsgу цього користувача. - Створіть SSH-обгортку, щоб OpenClaw міг запускати
imsgу контексті цього користувача. - Вкажіть
channels.imessage.accounts.<id>.cliPathі.dbPathна профіль цього користувача.
Віддалений Mac через Tailscale (приклад)
Віддалений Mac через Tailscale (приклад)
Поширена топологія:Використовуйте ключі SSH, щоб і SSH, і SCP були неінтерактивними.
Спочатку переконайтеся, що ключ хоста довірений (наприклад,
- gateway працює на Linux/VM
- iMessage +
imsgпрацює на Mac у вашій tailnet - обгортка
cliPathвикористовує SSH для запускуimsg remoteHostвмикає отримання вкладень через SCP
ssh bot@mac-mini.tailnet-1234.ts.net), щоб заповнити known_hosts.Шаблон із кількома обліковими записами
Шаблон із кількома обліковими записами
iMessage підтримує конфігурацію для кожного облікового запису окремо в
channels.imessage.accounts.Для кожного облікового запису можна перевизначити такі поля, як cliPath, dbPath, allowFrom, groupPolicy, mediaMaxMb, налаштування історії та allowlist коренів вкладень.Медіа, фрагментація та цілі доставки
Вкладення та медіа
Вкладення та медіа
- отримання вхідних вкладень є необов’язковим:
channels.imessage.includeAttachments - шляхи віддалених вкладень можна отримувати через SCP, коли задано
remoteHost - шляхи вкладень мають відповідати дозволеним кореням:
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.chunkModelength(типово)newline(розбиття спочатку за абзацами)
Формати адресації
Формати адресації
Бажані явні цілі:
chat_id:123(рекомендовано для стабільної маршрутизації)chat_guid:...chat_identifier:...
imessage:+1555...sms:+1555...user@example.com
Запис конфігурації
iMessage типово дозволяє ініційований каналом запис конфігурації (для/config set|unset, коли commands.config: true).
Вимкнення:
Усунення несправностей
imsg не знайдено або RPC не підтримується
imsg не знайдено або RPC не підтримується
Перевірте бінарний файл і підтримку RPC:Якщо probe повідомляє, що RPC не підтримується, оновіть
imsg.Приватні повідомлення ігноруються
Приватні повідомлення ігноруються
Перевірте:
channels.imessage.dmPolicychannels.imessage.allowFrom- підтвердження прив’язки (
openclaw pairing list imessage)
Групові повідомлення ігноруються
Групові повідомлення ігноруються
Перевірте:
channels.imessage.groupPolicychannels.imessage.groupAllowFrom- поведінку allowlist для
channels.imessage.groups - налаштування шаблонів згадок (
agents.list[].groupChat.mentionPatterns)
Віддалені вкладення не працюють
Віддалені вкладення не працюють
Перевірте:
channels.imessage.remoteHostchannels.imessage.remoteAttachmentRoots- автентифікацію ключами SSH/SCP з хоста gateway
- наявність ключа хоста в
~/.ssh/known_hostsна хості gateway - читабельність віддаленого шляху на Mac, де працює Messages
Підказки дозволів macOS були пропущені
Підказки дозволів macOS були пропущені
Повторно виконайте в інтерактивному GUI-терміналі в тому самому контексті користувача/сесії та підтвердьте підказки:Переконайтеся, що Full Disk Access і Automation надано для контексту процесу, у якому працює OpenClaw/
imsg.Вказівники на довідкові матеріали з конфігурації
Пов’язане
- Огляд каналів — усі підтримувані канали
- Прив’язка — автентифікація приватних повідомлень і сценарій прив’язки
- Групи — поведінка групового чату та керування згадками
- Маршрутизація каналів — маршрутизація сесій для повідомлень
- Безпека — модель доступу та посилення захисту