Complete guide to connecting iMessage with OpenClaw (formerly Moltbot, Clawdbot) on macOS
New to channel setup? For a hands-on, step-by-step tutorial, check out our Channel Setup Tutorial. This page is a comprehensive reference covering all iMessage features and configuration options.
iMessage is Apple's native messaging platform integrated into macOS. OpenClaw (formerly Moltbot, Clawdbot) connects to iMessage using the imsg library, enabling seamless integration with your Messages app for direct messages and group chats.
Setting up iMessage requires macOS and a signed-in Messages app:
iMessage integration is macOS only. This feature requires:
Before configuring OpenClaw, ensure Messages is properly set up:
Configure iMessage in your OpenClaw configuration file:
{
"channels": {
"imessage": {
"enabled": true
}
}
}
iMessage requires minimal configuration. Simply enable it in your config file. OpenClaw will automatically detect and connect to your Messages app.
Control which group chats OpenClaw responds to:
{
"channels": {
"imessage": {
"enabled": true,
"groups": ["group-id-1", "group-id-2"]
}
}
}
When groups is set, it becomes a group allowlist. Only groups listed will receive responses. To allow all groups, include "*" in the array:
{
"channels": {
"imessage": {
"enabled": true,
"groups": ["*"]
}
}
}
OpenClaw supports various iMessage features:
Control which groups OpenClaw responds to using the groups configuration option. This is important for privacy and to prevent unwanted responses in group chats.
To add a group to the allowlist, you need its group ID. Group IDs are typically long strings that identify the group chat. You can find them in OpenClaw logs when a message is received from a group.
iMessage integration uses macOS's native Messages framework, providing:
OpenClaw may require certain macOS permissions:
Grant these permissions in System Settings → Privacy & Security if prompted.
If messages aren't being received:
If you encounter permission errors:
If group messages aren't working:
groups configuration includes the group ID"*" is in groups array if you want all groupsIf Messages app integration fails: