OpenClaw

OpenClaw iMessage (Legacy) チャンネル

メッセージング
上級

macOS 上の imsg CLI ツールを使用して OpenClaw を Apple iMessage に接続します。このレガシー統合は JSON-RPC over stdio インターフェースを使用し、ネイティブの macOS メッセージデータベースを通じて iMessage の読み書きを行います。注意:このチャンネルは非推奨です。新規セットアップには、より堅牢な REST API ベースの統合を提供する BlueBubbles の使用を強く推奨します。

基本情報
難易度上級
カテゴリメッセージング
対応機能数2 / 6

iMessage (Legacy) 対応機能

テキストメッセージ

対応

メディア・ファイル

対応

リアクション

非対応

スレッド

非対応

音声メッセージ

非対応

グループチャット

非対応

iMessage (Legacy) 前提条件

  • macOS を実行し、メッセージ app で Apple ID にサインインした Mac
  • OpenClaw と imsg バイナリの両方に「フルディスクアクセス」権限を付与
  • メッセージ送信のためのオートメーション権限(macOS TCC プロンプトで付与)
  • Homebrew で imsg CLI をインストール:brew install steipete/tap/imsg
  • OpenClaw Gateway がインストール・稼働中であること

iMessage (Legacy) クイックセットアップ

1

imsg CLI をインストール

'brew install steipete/tap/imsg' を実行して iMessage CLI ツールをインストールします。インストール後、GUI ターミナルで一度 'imsg' を実行し、macOS の権限プロンプト(フルディスクアクセスとオートメーション)をトリガーします。

2

macOS 権限を付与

システム設定 > プライバシーとセキュリティを開きます。imsg バイナリと OpenClaw プロセスの両方にフルディスクアクセスを付与します。メッセージ app のオートメーション権限は、imsg が初めてメッセージを送信しようとした時に自動的にプロンプトが表示されます。

3

設定して起動

~/.openclaw/openclaw.json に iMessage チャンネル設定を追加し、cliPath と dbPath を設定します。'openclaw start' で Gateway を起動し、テスト iMessage を送信して接続を確認します。

iMessage (Legacy) 設定例

config.json
{
  "channels": {
    "imessage": {
      "enabled": true,
      "cliPath": "/opt/homebrew/bin/imsg",
      "dbPath": "/Users/<username>/Library/Messages/chat.db"
    }
  }
}

iMessage (Legacy) 詳細ドキュメント

非推奨のお知らせ

iMessage チャンネルは、将来の OpenClaw リリースで削除される可能性のあるレガシー統合です。サードパーティの imsg CLI と macOS 固有の TCC 権限システムに依存しており、OS アップデート後に互換性の問題が発生する可能性があります。 新規デプロイでは、BlueBubbles チャンネルへの移行を強く推奨します。BlueBubbles は以下を提供します: • REST API ベースのアーキテクチャ(CLI 依存なし) • 絵文字リアクション対応 • グループチャット対応 • Web UI によるクロスプラットフォームサーバー管理 • より信頼性の高い Webhook ベースのメッセージ配信 既存の iMessage セットアップは引き続き動作しますが、この統合に新機能は追加されません。
このチャンネルは非推奨です。新しい iMessage 統合には BlueBubbles をご利用ください。

アーキテクチャ概要

iMessage 統合は、JSON-RPC over stdio で imsg CLI を子プロセスとして起動して動作します: 1. Gateway が 'imsg rpc' をサブプロセスとして起動し、stdin/stdout で通信します。 2. imsg CLI が SQLite を使用して macOS メッセージデータベース(chat.db)から新しいメッセージを読み取ります。 3. 新しいメッセージが到着すると、imsg が JSON-RPC で Gateway に通知します。 4. Gateway がメッセージを AI エージェントで処理し、imsg を通じて返信を送信します。imsg は macOS オートメーションを使用して iMessage を送信します。 このアーキテクチャでは、Gateway がメッセージ app にサインインした同じ Mac 上で実行される必要があります。返信は確定的に iMessage にルーティングされ、各会話(DM またはグループ)は独立したセッション分離を維持します。

DM ポリシー

DM ポリシーは、ボットが 1 対 1 の iMessage 会話をどう処理するかを制御します。 **pairing(デフォルト)** — 未知の送信者にペアリングコードが送られ、確認後にボットが応答します。不正アクセスを防止します。 **allowlist** — allowFrom にリストされた電話番号または Apple ID のみがボットと対話できます。 **open** — すべての iMessage 送信者に応答します。allowFrom: ["*"] の設定が必要です。 **disabled** — ボットはすべての DM を無視します。
openclaw.json
{
  "channels": {
    "imessage": {
      "dmPolicy": "pairing",
      "allowFrom": ["+1234567890", "user@icloud.com"]
    }
  }
}

グループチャット設定

グループチャットポリシーは、iMessage グループ会話でのボットの動作を制御します。 **open** — ボットは追加されたすべてのグループですべてのメッセージに応答します。 **allowlist** — ボットは設定で明示的にリストされたグループでのみ応答します。 **disabled(デフォルト)** — ボットはグループチャットで応答しません。 グループチャットを有効にすると、メンションベースのゲーティングを設定して、ボット名がメンションされた時のみ応答させることができ、忙しいグループでのノイズを低減できます。
openclaw.json
{
  "channels": {
    "imessage": {
      "groupPolicy": "allowlist",
      "mentionPattern": "@bot"
    }
  }
}

SSH 経由のリモート Mac セットアップ

ヘッドレスまたはリモートデプロイの場合、imsg CLI は SSH 経由で別の Mac 上で実行できます。Gateway が SSH 接続を通じて imsg プロセスを起動し、添付ファイルは SCP で転送されます。 これは、メッセージ app が実行されている Mac が別の場所(例:Mac Mini サーバー)にあり、Gateway が別の場所で実行されている場合に便利です。 要件: • SSH キーベースの認証(対話式プロンプトなし) • リモート Mac に imsg がインストールされ、権限が付与されていること • 添付ファイル転送に SCP が利用可能であること
openclaw.json
{
  "channels": {
    "imessage": {
      "remoteHost": "mac-server.local",
      "cliPath": "/usr/local/bin/imsg"
    }
  }
}
対話式パスワードプロンプトを避けるため、SSH キー認証を使用してください。
Tailscale などのツールで Mac サーバーへのリモートアクセスを簡素化できます。

macOS 権限(TCC)

iMessage 統合には、特定の macOS プライバシー権限(TCC フレームワークで管理)が必要です: **フルディスクアクセス** — メッセージデータベース(chat.db)の読み取りに必要。imsg バイナリと OpenClaw プロセスの両方にこの権限が必要です。 **オートメーション** — メッセージ app 経由でのメッセージ送信に必要。この権限は通常、imsg が初めて送信を試みた時にシステムプロンプトで付与されます。 ヘッドレス環境(SSH や launchd 経由)で実行している場合、権限プロンプトが表示されないことがあります。その場合、対話式 GUI ターミナルセッションで一度 'imsg' を実行してプロンプトをトリガーし、その後ヘッドレス運用に戻ってください。
macOS 権限プロンプトは GUI セッションでのみ表示されます。ヘッドレスデプロイ前に少なくとも一度 imsg を対話的に実行してください。

iMessage (Legacy) 設定リファレンス

enabled
Type: booleanDefault: true

iMessage チャンネルを有効または無効にする

cliPath
Type: stringDefault: "/usr/local/bin/imsg"

imsg CLI バイナリのパス。Homebrew は Apple Silicon Mac では /opt/homebrew/bin/imsg に、Intel Mac では /usr/local/bin/imsg にインストールします

dbPath
Type: stringDefault: "~/Library/Messages/chat.db"

macOS メッセージ SQLite データベースのパス

dmPolicy
Type: stringDefault: "pairing"

DM アクセスポリシー:'pairing'、'allowlist'、'open'、または 'disabled'

groupPolicy
Type: stringDefault: "disabled"

グループチャットポリシー:'open'、'allowlist'、または 'disabled'

allowFrom
Type: string[]Default: []

ボットに連絡できる電話番号または Apple ID

includeAttachments
Type: booleanDefault: false

受信メッセージのメディア添付ファイルを処理するかどうか

mediaMaxMb
Type: numberDefault: 10

メディア添付ファイルの最大ファイルサイズ(MB)

textChunkLimit
Type: numberDefault: 4000

送信メッセージあたりの最大文字数

chunkMode
Type: stringDefault: "length"

テキスト分割モード:'length'(文字数制限)または 'newline'(段落境界)

historyLimit
Type: numberDefault: 20

会話コンテキストとして含める最大メッセージ履歴数

configWrites
Type: booleanDefault: true

iMessage 経由での /config set|unset コマンドを許可

remoteHost
Type: stringDefault: ""

リモート Mac 上で imsg を実行するための SSH ホスト名

iMessage (Legacy) よくある質問

iMessage (Legacy) トラブルシューティング

ボットがメッセージを送受信できない

imsg バイナリまたは OpenClaw プロセスに macOS 権限(フルディスクアクセスまたはオートメーション)が不足している。

システム設定 > プライバシーとセキュリティを開きます。imsg と OpenClaw の両方にフルディスクアクセスが付与されていることを確認します。GUI ターミナルで 'imsg' を実行して不足している権限プロンプトをトリガーします。権限付与後に Gateway を再起動します。
権限プロンプトが表示されない

プロセスがヘッドレス環境(SSH、launchd)で実行されており、macOS が TCC プロンプトを表示できない。

GUI セッション(画面共有または物理アクセス)で Mac にログインします。Terminal.app で 'imsg' を実行してプロンプトをトリガーします。権限が付与された後、ヘッドレス運用に戻れます。
エラー:chat.db が見つからないかアクセスが拒否された

dbPath 設定が正しくないか、フルディスクアクセスが付与されていない。

dbPath が正しいメッセージデータベース(通常 ~/Library/Messages/chat.db)を指していることを確認します。システム設定で OpenClaw プロセスのフルディスクアクセスが有効になっていることを確認します。
リモート SSH 接続に失敗する

SSH キー認証が設定されていないか、リモートホストに到達できない。

Gateway ホストとリモート Mac の間で SSH キー認証が設定されていることを確認します。'ssh <remoteHost> imsg --version' で手動接続をテストします。ファイアウォールとネットワーク接続を確認します。