iMessage 채널 설정
기준일: 2026-06-06
난이도: 고급
공식 기준: iMessage, BlueBubbles removal, Coming from BlueBubbles
OpenClaw의 현재 iMessage 경로는 macOS Messages 호스트에서 imsg를 실행하고 Gateway가 channels.imessage 설정으로 JSON-RPC를 주고받는 방식입니다. BlueBubbles 채널은 지원 종료되었으므로 새 설정은 channels.bluebubbles가 아니라 channels.imessage로 시작해야 합니다.
핵심 개념
| 항목 | 설명 |
|---|---|
imsg |
macOS Messages 데이터베이스와 Messages 앱을 다루는 외부 CLI |
channels.imessage |
OpenClaw Gateway가 iMessage를 연결하는 현재 설정 키 |
cliPath |
Gateway가 실행할 imsg 바이너리 또는 SSH wrapper 경로 |
| pairing | 기본 DM 접근 제어. 첫 메시지는 승인 후 응답하도록 둡니다. |
| catchup | Gateway 다운타임 동안 도착한 메시지를 재생하는 선택 기능 |
| private API mode | reply, tapback, edit, unsend, effect, group 관리 같은 고급 동작 |
선택 기준
- macOS Messages에 로그인된 Mac이 있다면 로컬 Mac fast path로 시작합니다.
- Gateway가 Linux/Windows/VPS에 있으면
cliPath를 SSH wrapper로 지정해 Messages Mac에서imsg를 실행합니다. - 기본 송수신만 필요하면 SIP 변경 없이 시작하고, tapback/edit/unsend 같은 고급 동작이 필요할 때만 private API mode를 검토합니다.
- 기존 BlueBubbles 설정은 서버 URL이나 password를 유지하지 말고, 허용 발신자와 그룹 정책만
channels.imessage구조로 번역합니다.
실습
macOS Messages 호스트에서 imsg를 설치하고 확인합니다.
brew install steipete/tap/imsg
imsg --version
imsg rpc --help
고급 iMessage 동작을 쓸 경우 별도 위험 검토 후 private API bridge를 확인합니다.
imsg launch
openclaw channels status --probe
기본 설정 예시:
{
"channels": {
"imessage": {
"enabled": true,
"cliPath": "/opt/homebrew/bin/imsg",
"dbPath": "/Users/you/Library/Messages/chat.db",
"dmPolicy": "pairing",
"includeAttachments": false
}
}
}
첫 DM pairing 승인:
openclaw pairing list imessage
openclaw pairing approve imessage <CODE>
Gateway가 Messages Mac 밖에서 실행된다면 stdio를 투명하게 전달하는 wrapper를 둡니다.
#!/usr/bin/env bash
exec ssh -T messages-mac imsg "$@"
{
"channels": {
"imessage": {
"enabled": true,
"cliPath": "~/.openclaw/scripts/imsg-ssh",
"remoteHost": "you@messages-mac",
"includeAttachments": true
}
}
}
도구에 입력할 프롬프트
내 OpenClaw iMessage 설정을 검토해줘.
channels.bluebubbles가 남아 있는지, channels.imessage로 옮길 항목은 무엇인지,
pairing, includeAttachments, remoteHost, cliPath, private API mode 위험을 나눠서 점검해줘.
체크리스트
- Messages에 로그인된 macOS 호스트에서
imsg rpc --help가 동작한다. -
channels.bluebubbles설정을 새 설정에 남기지 않았다. -
channels.imessage.cliPath가 실제imsg또는 투명한 SSH wrapper를 가리킨다. - DM과 그룹 메시지에 pairing/allowlist 정책을 적용했다.
- 첨부파일을 쓰는 경우 attachment root와 원격 경로 접근을 검증했다.
- private API mode가 필요한 기능과 SIP 변경 위험을 분리해서 결정했다.
다음 단계
- BlueBubbles에서 iMessage로 이전에서 기존 설정을 옮깁니다.
- 접근 제어와 라우팅에서 sender, group, operator 범위를 제한합니다.
- Gateway 운영에서 channel 상태와 원격 접속을 점검합니다.