OpenClaw iMessage (Legacy) 채널
macOS의 imsg CLI 도구를 사용하여 OpenClaw를 Apple iMessage에 연결합니다. 이 레거시 통합은 JSON-RPC over stdio 인터페이스를 사용하여 네이티브 macOS 메시지 데이터베이스를 통해 iMessage를 읽고 보냅니다. 참고: 이 채널은 더 이상 사용되지 않습니다. 새로운 설정에는 더 강력한 REST API 기반 통합과 폭넓은 기능 지원을 제공하는 BlueBubbles 사용을 강력히 권장합니다.
iMessage (Legacy) 지원 기능
텍스트 메시지
지원
미디어 및 파일
지원
리액션
미지원
스레드
미지원
음성 메시지
미지원
그룹 채팅
미지원
iMessage (Legacy) 사전 요구사항
- 메시지 앱에서 Apple ID로 로그인된 macOS가 실행 중인 Mac
- 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 프로세스 모두에 전체 디스크 접근 권한을 부여합니다. 메시지 앱의 자동화 권한은 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) 상세 문서
지원 중단 안내
아키텍처 개요
DM 정책
{
"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" | DM 접근 정책: '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 데이터베이스 경로
DM 접근 정책: '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 키 인증이 구성되지 않았거나 원격 호스트에 도달할 수 없음.