iMessage (legacy: imsg)
상태: 전통적인 외부 CLI 통합. 게이트웨이는imsg rpc를 스폰하며 stdio 상에서 JSON-RPC 를 통해 통신합니다 (별도의 데몬/포트 없음).
BlueBubbles (추천)
신규 설정에 추천되는 iMessage 경로.
페어링
iMessage 다이렉트 메시지는 디폴트로 페어링 모드를 사용합니다.
설정 참조
전체 iMessage 필드 참조.
빠른 설정
- 로컬 Mac (빠른 경로)
- SSH를 통한 원격 Mac
요구 사항 및 권한 (macOS)
imsg를 실행하는 Mac에서 Messages에 로그인되어 있어야 합니다.- OpenClaw/
imsg를 실행 중인 프로세스 컨텍스트에는 전체 디스크 접근 권한이 필요합니다 (Messages DB에 접근). - Messages.app을 통해 메시지를 보내기 위해 자동화 권한이 필요합니다.
접근 제어 및 라우팅
- DM 정책
- 그룹 정책 + 멘션
- 세션 및 결정적 응답
channels.imessage.dmPolicy는 다이렉트 메시지를 제어합니다:pairing(기본값)allowlistopen(allowFrom에"*"을 포함해야 함)disabled
channels.imessage.allowFrom.알로우 리스트 항목은 핸들 또는 채팅 대상(chat_id:*, chat_guid:*, chat_identifier:*) 일 수 있습니다.배포 패턴
전용 봇 macOS 사용자 (분리된 iMessage 계정)
전용 봇 macOS 사용자 (분리된 iMessage 계정)
봇 트래픽을 개인 메시지 프로필과 분리하기 위해 전용 Apple ID 및 macOS 사용자를 사용합니다.일반적인 흐름:
- 전용 macOS 사용자 생성/로그인.
- 해당 사용자에서 봇 Apple ID로 Messages 로그인.
- 해당 사용자에서
imsg설치. - OpenClaw가 해당 사용자 컨텍스트에서
imsg를 실행할 수 있도록 SSH 래퍼 생성. channels.imessage.accounts.<id>.cliPath및.dbPath를 해당 사용자 프로필로 가리킵니다.
Tailscale 을 통한 원격 Mac (예제)
Tailscale 을 통한 원격 Mac (예제)
일반적인 토폴로지:SSH 키를 사용하여 SSH 및 SCP가 비대화형으로 작동하도록 합니다.
먼저 호스트 키를 신뢰하세요 (예:
- 게이트웨이는 Linux/VM에서 실행
- iMessage +
imsg는 tailnet에 있는 Mac 에서 실행 cliPath래퍼는 SSH를 통해imsg를 실행remoteHost는 SCP 첨부 파일 가져오기를 활성화
ssh bot@mac-mini.tailnet-1234.ts.net) so known_hosts가 채워집니다.멀티 계정 패턴
멀티 계정 패턴
iMessage는
channels.imessage.accounts 하에 계정별 구성을 지원합니다.각 계정은 cliPath, dbPath, allowFrom, groupPolicy, mediaMaxMb, 히스토리 설정, 및 첨부 파일 루트 허용 목록과 같은 필드를 변경할 수 있습니다.미디어, 청킹, 및 전송 대상
첨부 파일 및 미디어
첨부 파일 및 미디어
- 인바운드 첨부 파일 수집은 선택 사항:
channels.imessage.includeAttachments - 원격 첨부 경로는
remoteHost가 설정된 경우 SCP를 통해 가져올 수 있음 - 첨부 파일 경로는 허용된 루트와 일치해야 합니다:
channels.imessage.attachmentRoots(로컬)channels.imessage.remoteAttachmentRoots(원격 SCP 모드)- 기본 루트 패턴:
/Users/*/Library/Messages/Attachments
- SCP는 엄격한 호스트 키 검사 사용 (
StrictHostKeyChecking=yes) - 아웃바운드 미디어 크기는
channels.imessage.mediaMaxMb사용 (기본값 16MB)
아웃바운드 청킹
아웃바운드 청킹
- 텍스트 청크 제한:
channels.imessage.textChunkLimit(기본값 4,000) - 청크 모드:
channels.imessage.chunkModelength(기본값)newline(단락 우선 분할)
주소 지정 형식
주소 지정 형식
선호되는 명시적 대상:
chat_id:123(안정적인 라우팅에 권장)chat_guid:...chat_identifier:...
imessage:+1555...sms:+1555...user@example.com
설정 쓰기
iMessage 는 기본적으로 채널에서 시작된/config set|unset에 의한 설정 업데이트 작성을 허용합니다 (commands.config: true 필요).
비활성화:
문제 해결
imsg 를 찾을 수 없음 또는 RPC 지원되지 않음
imsg 를 찾을 수 없음 또는 RPC 지원되지 않음
바이너리 및 RPC 지원을 확인하세요:프로브가 RPC가 지원되지 않는다고 보고하면,
imsg를 업데이트 하세요.다이렉트 메시지가 무시됨
다이렉트 메시지가 무시됨
확인하세요:
channels.imessage.dmPolicychannels.imessage.allowFrom- 페어링 승인 (
openclaw pairing list imessage)
그룹 메시지가 무시됨
그룹 메시지가 무시됨
확인하세요:
channels.imessage.groupPolicychannels.imessage.groupAllowFromchannels.imessage.groups알로우 리스트 동작- 멘션 패턴 구성 (
agents.list[].groupChat.mentionPatterns)
원격 첨부가 실패함
원격 첨부가 실패함
확인하세요:
channels.imessage.remoteHostchannels.imessage.remoteAttachmentRoots- 게이트웨이 호스트로부터 SSH/SCP 키 인증
- 게이트웨이 호스트의
~/.ssh/known_hosts에 호스트 키 존재 여부 - Messages 를 실행 중인 Mac에서 원격 경로의 가독성
macOS 권한 프롬프트를 놓침
macOS 권한 프롬프트를 놓침
동일한 사용자/세션 컨텍스트에서 대화형 GUI 터미널을 다시 실행하고 프롬프트를 승인하세요:OpenClaw/
imsg를 실행하는 프로세스 컨텍스트에 전체 디스크 접근 + 자동화가 부여 되었는지 확인하세요.