Skip to content

Repository files navigation

OpenClaw iMessage Integration & Setup

Linq OpenClaw iMessage plugin. Send and receive real iMessages (blue bubbles) through the Linq iMessage API, with no Mac required. Get setup in minutes.

Installation

openclaw plugins install github:linq-team/openclaw-linq-plugin

OpenClaw iMessage Plugin Setup

Run the interactive setup wizard:

openclaw configure --section channels

Select Linq (Messaging API) from the channel list.

The wizard will walk you through:

  1. API token — sign up at linqapp.com and copy your token from the dashboard
  2. Phone number — the Linq phone number shown in your dashboard (E.164 format, e.g. +15551234567)
  3. 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.

Usage

Start the gateway:

openclaw gateway run

Your agent will receive iMessages via webhook and respond through the Linq API.

Configuration

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"
    }
  }
}

Multi-account

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"
        }
      }
    }
  }
}

DM policy

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

Webhook security

Set a webhookSecret to enable HMAC signature verification on inbound webhooks:

{
  "channels": {
    "linq": {
      "webhookSecret": { "source": "env", "id": "LINQ_WEBHOOK_SECRET" }
    }
  }
}

Targets

Outbound targets use explicit Linq target grammar:

  • linq:+15556667777 for first contact by phone number
  • linq:chat:<chat_id> for an existing direct chat
  • linq:<accountId>:+15556667777 for an account-scoped phone send

Group targets are reserved but disabled in this version.

Features

  • 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

License

MIT

About

Linq's OpenClaw iMessage integration. Connect this plugin to integrate with our iMessage API, no Mac required.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages