Install
openclaw skills install claw-messenger-imessageEnables OpenClaw agents to send and receive iMessage, RCS, and SMS without a phone or Mac by connecting via a secure WebSocket relay server.
openclaw skills install claw-messenger-imessageiMessage, RCS & SMS channel plugin for OpenClaw — no phone or Mac Mini required.
| Publisher | Emotion Machine |
| Homepage | clawmessenger.com |
| Source code | github.com/emotion-machine-org/claw-messenger |
| npm | @emotion-machine/claw-messenger |
| Issues | GitHub Issues |
| Privacy policy | clawmessenger.com/privacy |
| Pricing | clawmessenger.com/pricing |
Claw Messenger routes messages between your OpenClaw agent and iMessage/RCS/SMS networks. The plugin connects to the Claw Messenger relay server over a WebSocket and authenticates with your API key. The relay server handles carrier-level delivery and inbound routing, then forwards messages back to your agent in real time.
OpenClaw Agent ←→ Plugin (local) ←→ Relay Server (WSS) ←→ iMessage / RCS / SMS
This plugin requires one credential: a Claw Messenger API key.
| Property | Value |
|---|---|
| Key format | cm_live_{tag}_{secret} |
| Obtain from | clawmessenger.com/dashboard |
| Sensitivity | Secret — treat like a password. Do not commit to version control. |
| Storage location | Stored locally in .openclaw.json at channels.claw-messenger.apiKey |
| Rotation | Revoke and rotate at any time from the dashboard |
| Scope | Authorizes sending and receiving messages on your account only |
No other credentials, environment variables, or secrets are required.
All plugin configuration is stored in a single location:
.openclaw.json → channels.claw-messenger
This is the only file the plugin reads or writes. The full config schema is documented in the Configuration Reference below and declared in the plugin manifest (openclaw.plugin.json → configSchema).
The plugin makes exactly one external connection:
| Property | Value |
|---|---|
| Host | claw-messenger.onrender.com |
| Protocol | wss:// (TLS-encrypted WebSocket) |
| Purpose | Relay server that bridges OpenClaw to iMessage/RCS/SMS carrier networks |
| Hosting | Hosted on Render (managed cloud platform) by Emotion Machine. The onrender.com subdomain is standard for Render deployments. |
| Data handling | Stateless bridge — message content passes through in transit but is not persisted on the relay server. Message metadata (sender, recipient, timestamps) is logged for delivery tracking and billing per the Privacy Policy. |
| Custom domain | If your organization requires a custom domain or self-hosted deployment, contact hello@emotionmachine.ai |
No other external connections are made.
The plugin's openclaw.plugin.json manifest declares the following (reproduced here for transparency):
apiKey (marked sensitive: true, placeholder cm_live_...).openclaw.json → channels.claw-messengerwss://claw-messenger.onrender.com (relay server)apiKey (required string), serverUrl (optional string), preferredService (optional enum), dmPolicy (optional enum), allowFrom (optional array)All credentials and config paths used at runtime are declared in the manifest. There are no undeclared secrets, env vars, or config files.
openclaw plugins install @emotion-machine/claw-messenger
The package is published to npm as @emotion-machine/claw-messenger. You can verify the package contents before installing:
npm pack @emotion-machine/claw-messenger --dry-run
After installing, add the plugin to your OpenClaw config (.openclaw.json) under channels:
{
"channels": {
"claw-messenger": {
"enabled": true,
"apiKey": "cm_live_XXXXXXXX_YYYYYYYYYYYYYY", // required — your API key
"serverUrl": "wss://claw-messenger.onrender.com", // default relay server
"preferredService": "iMessage", // "iMessage" | "RCS" | "SMS"
"dmPolicy": "pairing", // "open" | "pairing" | "allowlist"
"allowFrom": ["+15551234567"] // only used with "allowlist" policy
}
}
}
| Field | Required | Default | Description |
|---|---|---|---|
apiKey | Yes | — | Your cm_live_* API key. Stored locally in .openclaw.json. |
serverUrl | No | wss://claw-messenger.onrender.com | WebSocket relay server URL. |
preferredService | No | iMessage | Default delivery service (iMessage, RCS, or SMS). |
dmPolicy | No | pairing | Inbound DM policy: open, pairing, or allowlist. |
allowFrom | No | [] | Phone numbers to accept when using allowlist policy. |
cm_live_* API key is a secret credential. Add .openclaw.json to .gitignore to avoid committing it to version control.wss://). Message content is not stored on the relay server.The plugin registers two tools your agent can call:
| Tool | Description |
|---|---|
claw_messenger_status | Check connection status, server URL, and preferred service |
claw_messenger_switch_service | Switch the preferred messaging service at runtime |
| Command | Description |
|---|---|
/cm-status | Show connection state, server URL, and preferred service |
/cm-switch <service> | Switch preferred service (iMessage, RCS, or SMS) |
openclaw plugins install @emotion-machine/claw-messenger.openclaw.json out of version control)UNLICENSED