使 OpenClaw 代理能够在无手机或 Mac 的情况下,通过安全 WebSocket 中继服务器收发 iMessage、RCS 和 SMS。
iMessage, RCS & SMS channel plugin for OpenClaw — no phone or Mac Mini required.
PublisherEmotion MachineHomepageclawmessenger.comSource codegithub.com/emotion-machine-org/claw-messengernpm@emotion-machine/claw-messengerIssuesGitHub IssuesPrivacy policyclawmessenger.com/privacyPricingclawmessenger.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.
text
OpenClaw Agent ←→ Plugin (local) ←→ Relay Server (WSS) ←→ iMessage / RCS / SMS
This plugin requires one credential: a Claw Messenger API key.
PropertyValueKey formatcm_live_{tag}_{secret}Obtain fromclawmessenger.com/dashboardSensitivity****Secret — treat like a password. Do not commit to version control.Storage locationStored locally in .openclaw.json at channels.claw-messenger.apiKeyRotationRevoke and rotate at any time from the dashboardScopeAuthorizes 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:
PropertyValueHostclaw-messenger.onrender.comProtocolwss:// (TLS-encrypted WebSocket)PurposeRelay server that bridges OpenClaw to iMessage/RCS/SMS carrier networksHostingHosted on Render (managed cloud platform) by Emotion Machine. The onrender.com subdomain is standard for Render deployments.Data handlingStateless 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 domainIf 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.
bash
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:
bash
npm pack @emotion-machine/claw-messenger --dry-run
After installing, add the plugin to your OpenClaw config ( .openclaw.json) under channels:
json5
{
"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
}
}
}
FieldRequiredDefaultDescriptionapiKeyYes—Your cm_live_* API key. Stored locally in .openclaw.json.serverUrlNowss://claw-messenger.onrender.comWebSocket relay server URL.preferredServiceNoiMessageDefault delivery service ( iMessage, RCS, or SMS).dmPolicyNopairingInbound DM policy: open, pairing, or allowlist.allowFromNo[]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:
ToolDescriptionclaw_messenger_statusCheck connection status, server URL, and preferred serviceclaw_messenger_switch_serviceSwitch the preferred messaging service at runtime
CommandDescription/cm-statusShow 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