Linq OpenClaw iMessage plugin. Send and receive real iMessages (blue bubbles) through the Linq iMessage API, with no Mac required. Get setup in minutes.
openclaw plugins install github:linq-team/openclaw-linq-pluginRun the interactive setup wizard:
openclaw configure --section channelsSelect Linq (Messaging API) from the channel list.
The wizard will walk you through:
- API token — sign up at linqapp.com and copy your token from the dashboard
- Phone number — the Linq phone number shown in your dashboard (E.164 format, e.g.
+15551234567) - Webhook config — URL for inbound message delivery; the local route path is derived from the URL path (defaults to
http://localhost:3100/linq-webhook)
Prefer a SecretRef for credentials. LINQ_API_TOKEN is still supported as a default-account setup convenience.
Start the gateway:
openclaw gateway runYour agent will receive iMessages via webhook and respond through the Linq API.
After running the wizard, your openclaw.json will contain:
{
"channels": {
"linq": {
"enabled": true,
"apiToken": { "source": "env", "id": "LINQ_API_TOKEN" },
"fromPhone": "+15551234567",
"dmPolicy": "open",
"webhookUrl": "http://localhost:3100/linq-webhook",
"webhookPath": "/linq-webhook"
}
}
}Multiple Linq accounts are supported via the accounts field:
{
"channels": {
"linq": {
"enabled": true,
"accounts": {
"sales": {
"enabled": true,
"apiToken": { "source": "env", "id": "LINQ_SALES_TOKEN" },
"fromPhone": "+15551111111"
},
"support": {
"enabled": true,
"apiToken": { "source": "env", "id": "LINQ_SUPPORT_TOKEN" },
"fromPhone": "+15552222222"
}
}
}
}
}Control who can message your agent:
"open"(default in this version) — anyone can message"pairing"— new senders must enter a pairing code once durable pairing setup is enabled"disabled"— no inbound DMs
Set a webhookSecret to enable HMAC signature verification on inbound webhooks:
{
"channels": {
"linq": {
"webhookSecret": { "source": "env", "id": "LINQ_WEBHOOK_SECRET" }
}
}
}Outbound targets use explicit Linq target grammar:
linq:+15556667777for first contact by phone numberlinq:chat:<chat_id>for an existing direct chatlinq:<accountId>:+15556667777for an account-scoped phone send
Group targets are reserved but disabled in this version.
- Real iMessage blue bubbles via Linq API
- Interactive onboarding wizard
- Inbound message debouncing
- Typing indicators and read receipts
- Media (image) support
- Webhook signature verification (HMAC-SHA256)
- Webhook event dedupe by Linq
event_id - Multi-account support
- DM policy and allowlist controls
- Pairing code flow for new contacts
MIT