Naar hoofdinhoud gaan

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Gebruik voor nieuwe iMessage-implementaties BlueBubbles.De imsg-integratie is verouderd en kan in een toekomstige release worden verwijderd.
Status: verouderde externe CLI-integratie. Gateway start imsg rpc en communiceert via JSON-RPC op stdio (geen aparte daemon/poort).

BlueBubbles (aanbevolen)

Voorkeurspad voor iMessage bij nieuwe configuraties.

Koppelen

iMessage-DM’s gebruiken standaard de koppelingsmodus.

Configuratiereferentie

Volledige veldreferentie voor iMessage.

Snelle configuratie

1

Installeer en verifieer imsg

brew install steipete/tap/imsg
imsg rpc --help
2

Configureer OpenClaw

{
  channels: {
    imessage: {
      enabled: true,
      cliPath: "/usr/local/bin/imsg",
      dbPath: "/Users/user/Library/Messages/chat.db",
    },
  },
}
3

Start Gateway

openclaw gateway
4

Keur eerste DM-koppeling goed (standaard dmPolicy)

openclaw pairing list imessage
openclaw pairing approve imessage <CODE>
Koppelingsverzoeken verlopen na 1 uur.

Vereisten en rechten (macOS)

  • Messages moet zijn aangemeld op de Mac waarop imsg draait.
  • Volledige schijftoegang is vereist voor de procescontext waarin OpenClaw/imsg draait (toegang tot de Messages-database).
  • Automatiseringsrecht is vereist om berichten via Messages.app te verzenden.
Rechten worden per procescontext verleend. Als Gateway headless draait (LaunchAgent/SSH), voer dan een eenmalige interactieve opdracht uit in diezelfde context om prompts te activeren:
imsg chats --limit 1
# or
imsg send <handle> "test"

Toegangscontrole en routering

channels.imessage.dmPolicy beheert directe berichten:
  • pairing (standaard)
  • allowlist
  • open (vereist dat allowFrom "*" bevat)
  • disabled
Allowlist-veld: channels.imessage.allowFrom.Allowlist-vermeldingen kunnen handles of chatdoelen zijn (chat_id:*, chat_guid:*, chat_identifier:*).

ACP-gespreksbindingen

Verouderde iMessage-chats kunnen ook aan ACP-sessies worden gebonden. Snelle operatorflow:
  • Voer /acp spawn codex --bind here uit in de DM of toegestane groepschat.
  • Toekomstige berichten in datzelfde iMessage-gesprek worden naar de gespawnde ACP-sessie gerouteerd.
  • /new en /reset resetten dezelfde gebonden ACP-sessie ter plaatse.
  • /acp close sluit de ACP-sessie en verwijdert de binding.
Geconfigureerde persistente bindingen worden ondersteund via top-level bindings[]-vermeldingen met type: "acp" en match.channel: "imessage". match.peer.id kan het volgende gebruiken:
  • genormaliseerde DM-handle zoals +15555550123 of user@example.com
  • chat_id:<id> (aanbevolen voor stabiele groepsbindingen)
  • chat_guid:<guid>
  • chat_identifier:<identifier>
Voorbeeld:
{
  agents: {
    list: [
      {
        id: "codex",
        runtime: {
          type: "acp",
          acp: { agent: "codex", backend: "acpx", mode: "persistent" },
        },
      },
    ],
  },
  bindings: [
    {
      type: "acp",
      agentId: "codex",
      match: {
        channel: "imessage",
        accountId: "default",
        peer: { kind: "group", id: "chat_id:123" },
      },
      acp: { label: "codex-group" },
    },
  ],
}
Zie ACP Agents voor gedeeld gedrag van ACP-bindingen.

Implementatiepatronen

Gebruik een toegewijde Apple ID en macOS-gebruiker zodat botverkeer is geïsoleerd van je persoonlijke Messages-profiel.Typische flow:
  1. Maak een toegewijde macOS-gebruiker aan/log daarmee in.
  2. Meld je in die gebruiker aan bij Messages met de Apple ID van de bot.
  3. Installeer imsg in die gebruiker.
  4. Maak een SSH-wrapper zodat OpenClaw imsg kan uitvoeren in die gebruikerscontext.
  5. Laat channels.imessage.accounts.<id>.cliPath en .dbPath verwijzen naar dat gebruikersprofiel.
De eerste uitvoering kan GUI-goedkeuringen vereisen (Automatisering + Volledige schijftoegang) in die botgebruikerssessie.
Veelgebruikte topologie:
  • Gateway draait op Linux/VM
  • iMessage + imsg draait op een Mac in je tailnet
  • cliPath-wrapper gebruikt SSH om imsg uit te voeren
  • remoteHost maakt het ophalen van bijlagen via SCP mogelijk
Voorbeeld:
{
  channels: {
    imessage: {
      enabled: true,
      cliPath: "~/.openclaw/scripts/imsg-ssh",
      remoteHost: "bot@mac-mini.tailnet-1234.ts.net",
      includeAttachments: true,
      dbPath: "/Users/bot/Library/Messages/chat.db",
    },
  },
}
#!/usr/bin/env bash
exec ssh -T bot@mac-mini.tailnet-1234.ts.net imsg "$@"
Gebruik SSH-sleutels zodat zowel SSH als SCP niet-interactief zijn. Zorg ervoor dat de hostsleutel eerst wordt vertrouwd (bijvoorbeeld ssh bot@mac-mini.tailnet-1234.ts.net), zodat known_hosts wordt gevuld.
iMessage ondersteunt configuratie per account onder channels.imessage.accounts.Elk account kan velden overschrijven zoals cliPath, dbPath, allowFrom, groupPolicy, mediaMaxMb, geschiedenisinstellingen en allowlists voor bijlagenroots.

Media, chunking en bezorgdoelen

  • inkomende bijlage-inname is optioneel: channels.imessage.includeAttachments
  • paden naar externe bijlagen kunnen via SCP worden opgehaald wanneer remoteHost is ingesteld
  • paden naar bijlagen moeten overeenkomen met toegestane roots:
    • channels.imessage.attachmentRoots (lokaal)
    • channels.imessage.remoteAttachmentRoots (externe SCP-modus)
    • standaard rootpatroon: /Users/*/Library/Messages/Attachments
  • SCP gebruikt strikte host-sleutelcontrole (StrictHostKeyChecking=yes)
  • grootte van uitgaande media gebruikt channels.imessage.mediaMaxMb (standaard 16 MB)
  • limiet voor tekstchunks: channels.imessage.textChunkLimit (standaard 4000)
  • chunkmodus: channels.imessage.chunkMode
    • length (standaard)
    • newline (splitsing met alinea’s eerst)
Voorkeur voor expliciete doelen:
  • chat_id:123 (aanbevolen voor stabiele routering)
  • chat_guid:...
  • chat_identifier:...
Handle-doelen worden ook ondersteund:
  • imessage:+1555...
  • sms:+1555...
  • user@example.com
imsg chats --limit 20

Configuratiewijzigingen

iMessage staat standaard door kanalen geïnitieerde configuratiewijzigingen toe (voor /config set|unset wanneer commands.config: true). Uitschakelen:
{
  channels: {
    imessage: {
      configWrites: false,
    },
  },
}

Probleemoplossing

Valideer de binary en RPC-ondersteuning:
imsg rpc --help
openclaw channels status --probe
Als de probe meldt dat RPC niet wordt ondersteund, werk imsg bij.
Controleer:
  • channels.imessage.dmPolicy
  • channels.imessage.allowFrom
  • koppelingsgoedkeuringen (openclaw pairing list imessage)
Controleer:
  • channels.imessage.groupPolicy
  • channels.imessage.groupAllowFrom
  • allowlist-gedrag van channels.imessage.groups
  • configuratie van vermeldingspatronen (agents.list[].groupChat.mentionPatterns)
Controleer:
  • channels.imessage.remoteHost
  • channels.imessage.remoteAttachmentRoots
  • SSH/SCP-sleutelauthenticatie vanaf de Gateway-host
  • hostsleutel bestaat in ~/.ssh/known_hosts op de Gateway-host
  • leesbaarheid van extern pad op de Mac waarop Messages draait
Voer opnieuw uit in een interactieve GUI-terminal in dezelfde gebruikers-/sessiecontext en keur prompts goed:
imsg chats --limit 1
imsg send <handle> "test"
Bevestig dat Volledige schijftoegang + Automatisering zijn verleend voor de procescontext waarin OpenClaw/imsg draait.

Verwijzingen naar configuratiereferentie

Gerelateerd