Skip to main content
OpenClaw는 imsg CLI를 통해 macOS의 iMessage를 제어할 수 있습니다. “엄마한테 메시지 보내줘”라고 말하면 실제로 iMessage가 전송됩니다.

사전 준비

# imsg CLI 설치
brew install nicklama/tap/imsg

# 버전 확인
imsg --version  # v0.4.0+
imsg는 Full Disk Access(FDA) 권한이 필요합니다. 시스템 설정 → 개인정보 보호 → 전체 디스크 접근에서 터미널 앱을 추가하세요. OpenClaw Gateway에는 별도로 FDA를 부여해야 합니다.

기본 사용법

메시지 보내기

"엄마한테 '오늘 늦게 들어가요' 보내줘"
"김철수한테 iMessage로 회의 시간 변경 알려줘"
OpenClaw가 실행하는 명령:
# 전화번호로 전송
imsg send --to "+821012345678" --text "오늘 늦게 들어가요"

# SMS 폴백 (상대방이 iMessage가 아닐 때)
imsg send --to "+821012345678" --text "메시지" --service sms

메시지 확인

"최근 메시지 보여줘"
"엄마한테서 온 마지막 메시지 뭐야?"
# 최근 메시지 조회
imsg history --limit 20

# 특정 대화 조회
imsg history --with "+821012345678" --limit 10

# 안 읽은 메시지
imsg history --unread

실시간 모니터링

# 새 메시지 감시 (하트비트에서 활용)
imsg watch --timeout 30

실전 패턴

하트비트에서 메시지 체크

# HEARTBEAT.md
## iMessage
- `imsg history --unread` 실행
- 중요한 메시지가 있으면 Telegram으로 알림
- "읽음" 표시는 하지 않음 (사용자가 직접 확인)

자동 응답 워크플로우

사용자: "엄마한테서 메시지 오면 알려줘"

OpenClaw 하트비트 동작:
1. imsg history --unread 주기적 체크
2. 엄마 번호에서 새 메시지 감지
3. Telegram으로 내용 전달
4. 사용자가 답장 지시하면 imsg send 실행

단체 알림

"프로젝트 팀원들한테 '내일 회의 10시로 변경' 보내줘"

→ TOOLS.md에 연락처 매핑을 저장해두면 편리합니다:
김철수 → +821011112222
이영희 → +821033334444
자기 번호로는 메시지를 보낼 수 없습니다 (iMessage 제한). 연락처 이름과 번호 매핑은 TOOLS.md에 저장해두면 “엄마”라고만 말해도 올바른 번호로 전송합니다.
iMessage 연동이 잘 안 되면 imsg doctor로 환경을 진단하세요. FDA 권한, macOS 버전, chat.db 접근 여부를 확인합니다.