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

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages