OpenClaw iMessage (Legacy) 頻道
透過 macOS 上的 imsg CLI 工具將 OpenClaw 連接到 Apple iMessage。此舊版整合使用 JSON-RPC over stdio 介面,透過原生 macOS 訊息資料庫讀取和傳送 iMessage。注意:此頻道已棄用——對於新部署,我們強烈建議使用 BlueBubbles,它提供了更穩健的基於 REST API 的整合方案,並支援更多功能。
iMessage (Legacy) 支援功能
文字訊息
支援
媒體與檔案
支援
表情回應
不支援
討論串
不支援
語音訊息
不支援
群組聊天
不支援
iMessage (Legacy) 前置條件
- 一台執行 macOS 的 Mac,且已在訊息 app 中登入 Apple ID
- 為 OpenClaw 和 imsg 二進位檔授予「完整磁碟存取權限」
- 傳送訊息的自動化權限(透過 macOS TCC 彈窗授予)
- 透過 Homebrew 安裝 imsg CLI:brew install steipete/tap/imsg
- OpenClaw Gateway 已安裝並執行
iMessage (Legacy) 快速設定
安裝 imsg CLI
執行 'brew install steipete/tap/imsg' 安裝 iMessage CLI 工具。安裝後,在 GUI 終端機中執行一次 'imsg' 以觸發 macOS 的權限授權彈窗(完整磁碟存取和自動化權限)。
授予 macOS 權限
開啟系統設定 > 隱私權與安全性。為 imsg 二進位檔和 OpenClaw 程序授予「完整磁碟存取權限」。訊息 app 的自動化權限會在 imsg 首次嘗試傳送訊息時自動彈出授權提示。
設定並啟動
在 ~/.openclaw/openclaw.json 中新增 iMessage 頻道設定,設定 cliPath 和 dbPath。執行 'openclaw start' 啟動 Gateway,然後傳送一條測試 iMessage 來驗證連線。
iMessage (Legacy) 設定範例
{
"channels": {
"imessage": {
"enabled": true,
"cliPath": "/opt/homebrew/bin/imsg",
"dbPath": "/Users/<username>/Library/Messages/chat.db"
}
}
}iMessage (Legacy) 深入了解
棄用說明
架構概述
私訊策略
{
"channels": {
"imessage": {
"dmPolicy": "pairing",
"allowFrom": ["+1234567890", "user@icloud.com"]
}
}
}群組聊天設定
{
"channels": {
"imessage": {
"groupPolicy": "allowlist",
"mentionPattern": "@bot"
}
}
}透過 SSH 遠端 Mac 部署
{
"channels": {
"imessage": {
"remoteHost": "mac-server.local",
"cliPath": "/usr/local/bin/imsg"
}
}
}macOS 權限(TCC)
iMessage (Legacy) 設定參考
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | 啟用或停用 iMessage 頻道 |
| cliPath | string | "/usr/local/bin/imsg" | imsg CLI 二進位檔的路徑。Homebrew 在 Apple Silicon Mac 上安裝到 /opt/homebrew/bin/imsg,在 Intel Mac 上安裝到 /usr/local/bin/imsg |
| dbPath | string | "~/Library/Messages/chat.db" | macOS 訊息 SQLite 資料庫的路徑 |
| dmPolicy | string | "pairing" | 私訊存取策略:'pairing'、'allowlist'、'open' 或 'disabled' |
| groupPolicy | string | "disabled" | 群組聊天策略:'open'、'allowlist' 或 'disabled' |
| allowFrom | string[] | [] | 允許聯繫機器人的手機號碼或 Apple ID |
| includeAttachments | boolean | false | 是否處理傳入訊息中的媒體附件 |
| mediaMaxMb | number | 10 | 媒體附件的最大檔案大小(MB) |
| textChunkLimit | number | 4000 | 每條傳送訊息的最大字元數 |
| chunkMode | string | "length" | 文字分割模式:'length'(按字元數)或 'newline'(按段落) |
| historyLimit | number | 20 | 作為對話上下文包含的最大歷史訊息數 |
| configWrites | boolean | true | 允許透過 iMessage 使用 /config set|unset 命令 |
| remoteHost | string | "" | 用於在遠端 Mac 上執行 imsg 的 SSH 主機名稱 |
啟用或停用 iMessage 頻道
imsg CLI 二進位檔的路徑。Homebrew 在 Apple Silicon Mac 上安裝到 /opt/homebrew/bin/imsg,在 Intel Mac 上安裝到 /usr/local/bin/imsg
macOS 訊息 SQLite 資料庫的路徑
私訊存取策略:'pairing'、'allowlist'、'open' 或 'disabled'
群組聊天策略:'open'、'allowlist' 或 'disabled'
允許聯繫機器人的手機號碼或 Apple ID
是否處理傳入訊息中的媒體附件
媒體附件的最大檔案大小(MB)
每條傳送訊息的最大字元數
文字分割模式:'length'(按字元數)或 'newline'(按段落)
作為對話上下文包含的最大歷史訊息數
允許透過 iMessage 使用 /config set|unset 命令
用於在遠端 Mac 上執行 imsg 的 SSH 主機名稱
iMessage (Legacy) 常見問題
iMessage (Legacy) 故障排除
imsg 二進位檔或 OpenClaw 程序缺少 macOS 權限(完整磁碟存取或自動化)。
程序執行在無頭環境中(SSH、launchd),macOS 無法顯示 TCC 彈窗。
dbPath 設定不正確,或未授予完整磁碟存取權限。
未設定 SSH 金鑰驗證,或遠端主機不可達。