

























@@ -11,6 +11,22 @@ The bundled `imessage` plugin now reaches the same private API surface as BlueBu
11111212BlueBubbles support was removed. OpenClaw supports iMessage through `imsg` only. This guide is for migrating old `channels.bluebubbles` configs to `channels.imessage`; there is no other supported migration path.
131314+<Note>
15+For the short announcement and operator summary, see [BlueBubbles removal and the imsg iMessage path](/announcements/bluebubbles-imessage).
16+</Note>
17+18+## Migration checklist
19+20+Use this checklist when you already know your old BlueBubbles config and want the shortest safe path:
21+22+1. Verify `imsg` directly on the Mac that runs Messages.app (`imsg chats`, `imsg history`, `imsg send`, and `imsg rpc --help`).
23+2. Copy behavior keys from `channels.bluebubbles` to `channels.imessage`: `dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`, `groups`, `includeAttachments`, `attachmentRoots`, `mediaMaxMb`, `textChunkLimit`, `coalesceSameSenderDms`, and `actions`.
24+3. Drop transport keys that no longer exist: `serverUrl`, `password`, webhook URLs, and BlueBubbles server setup.
25+4. If the Gateway is not running on the Messages Mac, set `channels.imessage.cliPath` to an SSH wrapper and set `remoteHost` for remote attachment fetches.
26+5. With the Gateway stopped, enable `channels.imessage`, then run `openclaw channels status --probe --channel imessage`.
27+6. Test one DM, one allowed group, attachments if enabled, and every private API action you expect the agent to use.
28+7. Delete the BlueBubbles server and old `channels.bluebubbles` config after the iMessage path is verified.
29+1430## When this migration makes sense
15311632- You already run `imsg` on the same Mac (or one reachable over SSH) where Messages.app is signed in.
@@ -60,13 +76,13 @@ BlueBubbles support was removed. OpenClaw supports iMessage through `imsg` only.
60766177`imsg launch` requires SIP to be disabled. Basic send, history, and watch work without `imsg launch`; advanced actions do not.
627863-4. Verify the bridge through OpenClaw:
79+4. After you add an enabled `channels.imessage` config, verify the bridge through OpenClaw:
64806581```bash
6682 openclaw channels status --probe
6783```
688469- You want `imessage.privateApi.available: true`. If it reports `false`, fix that first — see [Capability detection](/channels/imessage#private-api-actions).
85+ You want `imessage.privateApi.available: true`. If it reports `false`, fix that first — see [Capability detection](/channels/imessage#private-api-actions). `channels status --probe` only probes configured, enabled accounts.
708671875. Snapshot your config:
7288@@ -143,7 +159,7 @@ If the gateway logs `imessage: dropping group message from chat_id=<id>` or the
143159144160## Step-by-step
145161146-1. Add an iMessage block alongside the existing BlueBubbles block. Keep the old block only as a copy source until the new path is verified:
162+1. Add an iMessage block alongside the existing BlueBubbles block. Keep it disabled while the Gateway is still routing BlueBubbles traffic:
147163148164```json5
149165 {
@@ -153,7 +169,7 @@ If the gateway logs `imessage: dropping group message from chat_id=<id>` or the
153169// ... existing config ...
154170 },
155171 imessage: {
156- enabled: false, // turn on after the dry run below
172+ enabled: false,
157173 cliPath: "/opt/homebrew/bin/imsg",
158174 dmPolicy: "pairing",
159175 allowFrom: ["+15555550123"], // copy from bluebubbles.allowFrom
@@ -173,17 +189,17 @@ If the gateway logs `imessage: dropping group message from chat_id=<id>` or the
173189 }
174190```
175191176-2. **Dry-run probe** — start the gateway and confirm iMessage reports healthy:
192+2. **Probe before traffic matters** — stop the Gateway, temporarily enable the iMessage block, and confirm iMessage reports healthy from the CLI:
177193178194```bash
179- openclaw gateway
180-openclaw channels status
181- openclaw channels status --probe # expect imessage.privateApi.available: true
195+ openclaw gateway stop
196+# edit config: channels.imessage.enabled = true
197+ openclaw channels status --probe --channel imessage # expect imessage.privateApi.available: true
182198```
183199184-Because `imessage.enabled` is still `false`, no inbound iMessage traffic is routed yet — but `--probe` exercises the bridge so you catch permission/install issues before the cutover.
200+`channels status --probe` only probes configured, enabled accounts. Do not restart the Gateway with both BlueBubbles and iMessage enabled unless you intentionally want both channel monitors running. If you are not cutting over immediately, set `channels.imessage.enabled` back to `false` before restarting the Gateway. Use the direct `imsg` commands in [Before you start](#before-you-start) to validate the Mac before enabling OpenClaw traffic.
185201186-3. **Cut over.** Remove the BlueBubbles config and enable iMessage in one config edit:
202+3. **Cut over.** Once the enabled iMessage account reports healthy, remove the BlueBubbles config and keep iMessage enabled:
187203188204```json5
189205 {
@@ -236,6 +252,7 @@ The reply cache lives at `~/.openclaw/state/imessage/reply-cache.jsonl` (mode `0
236252237253## Related
238254255+- [BlueBubbles removal and the imsg iMessage path](/announcements/bluebubbles-imessage) — short announcement and operator summary.
239256- [iMessage](/channels/imessage) — full iMessage channel reference, including `imsg launch` setup and capability detection.
240257- `/channels/bluebubbles` — legacy URL that redirects to this migration guide.
241258- [Pairing](/channels/pairing) — DM authentication and pairing flow.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。