openclaw - 💡(How to fix) Fix iMessage outbound sends should prefer configurable IMCore transport when available [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#84329Fetched 2026-05-20 03:41:28
View on GitHub
Comments
1
Participants
2
Timeline
8
Reactions
1
Timeline (top)
labeled ×7commented ×1

OpenClaw's normal iMessage outbound reply path currently sends through JSON-RPC send without choosing a transport. On one macOS deployment, that path stalled because AppleScript delivery timed out, while the IMCore/private-API path was healthy and imsg send-rich queued immediately.

It would be safer if OpenClaw either defaulted normal outbound iMessage sends to transport: "auto" when supported by imsg, or exposed a config option so operators can force auto, bridge, or applescript.

Root Cause

OpenClaw's normal iMessage outbound reply path currently sends through JSON-RPC send without choosing a transport. On one macOS deployment, that path stalled because AppleScript delivery timed out, while the IMCore/private-API path was healthy and imsg send-rich queued immediately.

Fix Action

Fix / Workaround

  • extensions/imessage/src/send.ts builds the JSON-RPC send params and calls client.request("send", params, ...).
  • extensions/imessage/src/actions.runtime.ts already routes richer message actions through imsg send-rich.
  • imsg RPC send supports a transport option (auto, bridge, applescript), so OpenClaw could pass a preferred transport without requiring a local wrapper workaround.
RAW_BUFFERClick to expand / collapse

Summary

OpenClaw's normal iMessage outbound reply path currently sends through JSON-RPC send without choosing a transport. On one macOS deployment, that path stalled because AppleScript delivery timed out, while the IMCore/private-API path was healthy and imsg send-rich queued immediately.

It would be safer if OpenClaw either defaulted normal outbound iMessage sends to transport: "auto" when supported by imsg, or exposed a config option so operators can force auto, bridge, or applescript.

Environment

  • OpenClaw: 2026.5.18
  • imsg: 0.9.0
  • macOS: 26.5
  • iMessage channel configured through a custom cliPath wrapper running in a signed-in Messages user context
  • imsg launch had succeeded; imsg status --json reported advanced/private API support

Observed Behavior

  • Gateway/channel health could show iMessage as OK.
  • Normal OpenClaw outbound iMessage replies could still fail or time out.
  • Direct AppleScript-backed sends stalled in Messages/AppleEvent delivery.
  • Direct IMCore/private API sends with imsg send-rich --chat ... --text ... --json returned quickly with a queued message.

Expected Behavior

When the imsg private API bridge is available, normal OpenClaw iMessage sends should be able to avoid the AppleScript path, or operators should be able to configure that explicitly.

Code Pointers

  • extensions/imessage/src/send.ts builds the JSON-RPC send params and calls client.request("send", params, ...).
  • extensions/imessage/src/actions.runtime.ts already routes richer message actions through imsg send-rich.
  • imsg RPC send supports a transport option (auto, bridge, applescript), so OpenClaw could pass a preferred transport without requiring a local wrapper workaround.

Possible Fix

  • Add a config setting such as channels.imessage.sendTransport / account-level equivalent with values like auto, bridge, and applescript.
  • Default to auto when the installed imsg supports it.
  • Pass the selected transport into the normal JSON-RPC send params.
  • Keep a compatibility fallback for older imsg builds that do not accept the option.

I can follow up with a PR if this direction sounds acceptable.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix iMessage outbound sends should prefer configurable IMCore transport when available [1 comments, 2 participants]