OpenClaw

OpenClaw iMessage (Legacy) 채널

메시징
고급

macOS의 imsg CLI 도구를 사용하여 OpenClaw를 Apple iMessage에 연결합니다. 이 레거시 통합은 JSON-RPC over stdio 인터페이스를 사용하여 네이티브 macOS 메시지 데이터베이스를 통해 iMessage를 읽고 보냅니다. 참고: 이 채널은 더 이상 사용되지 않습니다. 새로운 설정에는 더 강력한 REST API 기반 통합과 폭넓은 기능 지원을 제공하는 BlueBubbles 사용을 강력히 권장합니다.

기본 정보
난이도고급
카테고리메시징
지원 기능 수2 / 6

iMessage (Legacy) 지원 기능

텍스트 메시지

지원

미디어 및 파일

지원

리액션

미지원

스레드

미지원

음성 메시지

미지원

그룹 채팅

미지원

iMessage (Legacy) 사전 요구사항

  • 메시지 앱에서 Apple ID로 로그인된 macOS가 실행 중인 Mac
  • OpenClaw와 imsg 바이너리 모두에 '전체 디스크 접근' 권한 부여
  • 메시지 전송을 위한 자동화 권한 (macOS TCC 프롬프트를 통해 부여)
  • Homebrew를 통한 imsg CLI 설치: brew install steipete/tap/imsg
  • OpenClaw Gateway 설치 및 실행 중

iMessage (Legacy) 빠른 설정

1

imsg CLI 설치

'brew install steipete/tap/imsg'를 실행하여 iMessage CLI 도구를 설치합니다. 설치 후 GUI 터미널에서 'imsg'를 한 번 실행하여 macOS 권한 프롬프트(전체 디스크 접근 및 자동화)를 트리거합니다.

2

macOS 권한 부여

시스템 설정 > 개인정보 보호 및 보안을 엽니다. imsg 바이너리와 OpenClaw 프로세스 모두에 전체 디스크 접근 권한을 부여합니다. 메시지 앱의 자동화 권한은 imsg가 처음 메시지를 보내려 할 때 자동으로 프롬프트가 표시됩니다.

3

구성 및 시작

~/.openclaw/openclaw.json에 iMessage 채널 구성을 추가하고 cliPath와 dbPath를 설정합니다. 'openclaw start'로 Gateway를 시작하고 테스트 iMessage를 보내 연결을 확인합니다.

iMessage (Legacy) 구성 예시

config.json
{
  "channels": {
    "imessage": {
      "enabled": true,
      "cliPath": "/opt/homebrew/bin/imsg",
      "dbPath": "/Users/<username>/Library/Messages/chat.db"
    }
  }
}

iMessage (Legacy) 상세 문서

지원 중단 안내

iMessage 채널은 향후 OpenClaw 릴리스에서 제거될 수 있는 레거시 통합입니다. 서드파티 imsg CLI와 macOS 고유의 TCC 권한 시스템에 의존하며, OS 업데이트 후 호환성 문제가 발생할 수 있습니다. 새로운 배포에는 BlueBubbles 채널로의 마이그레이션을 강력히 권장합니다. BlueBubbles는 다음을 제공합니다: • REST API 기반 아키텍처 (CLI 의존성 없음) • 이모지 리액션 지원 • 그룹 채팅 지원 • Web UI를 통한 크로스 플랫폼 서버 관리 • 더 안정적인 Webhook 기반 메시지 전달 기존 iMessage 설정은 계속 작동하지만, 이 통합에 새로운 기능은 추가되지 않습니다.
이 채널은 더 이상 사용되지 않습니다. 새로운 iMessage 통합에는 BlueBubbles를 사용하세요.

아키텍처 개요

iMessage 통합은 JSON-RPC over stdio로 imsg CLI를 자식 프로세스로 실행하여 작동합니다: 1. Gateway가 'imsg rpc'를 서브프로세스로 시작하고 stdin/stdout으로 통신합니다. 2. imsg CLI가 SQLite를 사용하여 macOS 메시지 데이터베이스(chat.db)에서 새 메시지를 읽습니다. 3. 새 메시지가 도착하면 imsg가 JSON-RPC로 Gateway에 알립니다. 4. Gateway가 AI 에이전트로 메시지를 처리하고 imsg를 통해 응답을 전송합니다. imsg는 macOS 자동화를 사용하여 iMessage를 보냅니다. 이 아키텍처에서는 Gateway가 메시지 앱에 로그인된 동일한 Mac에서 실행되어야 합니다. 응답은 결정적으로 iMessage로 라우팅되며, 각 대화(DM 또는 그룹)는 독립된 세션 격리를 유지합니다.

DM 정책

DM 정책은 봇이 1:1 iMessage 대화를 처리하는 방법을 제어합니다. **pairing (기본값)** — 알 수 없는 발신자에게 페어링 코드가 전송되며, 확인 후에만 봇이 응답합니다. 무단 접근을 방지합니다. **allowlist** — allowFrom에 나열된 전화번호 또는 Apple ID만 봇과 상호작용할 수 있습니다. **open** — 모든 iMessage 발신자에게 응답합니다. allowFrom: ["*"] 설정이 필요합니다. **disabled** — 봇이 모든 DM을 무시합니다.
openclaw.json
{
  "channels": {
    "imessage": {
      "dmPolicy": "pairing",
      "allowFrom": ["+1234567890", "user@icloud.com"]
    }
  }
}

그룹 채팅 구성

그룹 채팅 정책은 iMessage 그룹 대화에서의 봇 동작을 제어합니다. **open** — 봇이 추가된 모든 그룹에서 모든 메시지에 응답합니다. **allowlist** — 봇이 구성에 명시적으로 나열된 그룹에서만 응답합니다. **disabled (기본값)** — 봇이 그룹 채팅에서 응답하지 않습니다. 그룹 채팅이 활성화되면 멘션 기반 게이팅을 구성하여 봇 이름이 언급될 때만 응답하도록 할 수 있어, 바쁜 그룹에서의 노이즈를 줄입니다.
openclaw.json
{
  "channels": {
    "imessage": {
      "groupPolicy": "allowlist",
      "mentionPattern": "@bot"
    }
  }
}

SSH를 통한 원격 Mac 설정

헤드리스 또는 원격 배포의 경우, imsg CLI를 SSH를 통해 다른 Mac에서 실행할 수 있습니다. Gateway가 SSH 연결을 통해 imsg 프로세스를 시작하고, 첨부 파일은 SCP로 전송됩니다. 이는 메시지 앱이 실행 중인 Mac이 다른 위치(예: Mac Mini 서버)에 있고, Gateway가 다른 곳에서 실행될 때 유용합니다. 요구사항: • SSH 키 기반 인증 (대화형 프롬프트 없음) • 원격 Mac에 imsg가 설치되고 권한이 부여되어 있어야 함 • 첨부 파일 전송에 SCP 사용 가능
openclaw.json
{
  "channels": {
    "imessage": {
      "remoteHost": "mac-server.local",
      "cliPath": "/usr/local/bin/imsg"
    }
  }
}
대화형 비밀번호 프롬프트를 피하기 위해 SSH 키 인증을 사용하세요.
Tailscale 같은 도구로 Mac 서버에 대한 원격 접근을 간소화할 수 있습니다.

macOS 권한 (TCC)

iMessage 통합에는 특정 macOS 개인정보 보호 권한(TCC 프레임워크로 관리)이 필요합니다: **전체 디스크 접근** — 메시지 데이터베이스(chat.db) 읽기에 필요합니다. imsg 바이너리와 OpenClaw 프로세스 모두 이 권한이 필요합니다. **자동화** — 메시지 앱을 통한 메시지 전송에 필요합니다. 이 권한은 보통 imsg가 처음 전송을 시도할 때 시스템 프롬프트로 부여됩니다. 헤드리스 환경(SSH 또는 launchd 경유)에서 실행하는 경우 권한 프롬프트가 나타나지 않을 수 있습니다. 이 경우 대화형 GUI 터미널 세션에서 'imsg'를 한 번 실행하여 프롬프트를 트리거한 후 헤드리스 운영으로 돌아가세요.
macOS 권한 프롬프트는 GUI 세션에서만 나타납니다. 헤드리스 배포 전에 최소 한 번 imsg를 대화형으로 실행하세요.

iMessage (Legacy) 구성 참조

enabled
Type: booleanDefault: true

iMessage 채널을 활성화 또는 비활성화

cliPath
Type: stringDefault: "/usr/local/bin/imsg"

imsg CLI 바이너리 경로. Homebrew는 Apple Silicon Mac에서는 /opt/homebrew/bin/imsg에, Intel Mac에서는 /usr/local/bin/imsg에 설치합니다

dbPath
Type: stringDefault: "~/Library/Messages/chat.db"

macOS 메시지 SQLite 데이터베이스 경로

dmPolicy
Type: stringDefault: "pairing"

DM 접근 정책: 'pairing', 'allowlist', 'open' 또는 'disabled'

groupPolicy
Type: stringDefault: "disabled"

그룹 채팅 정책: 'open', 'allowlist' 또는 'disabled'

allowFrom
Type: string[]Default: []

봇에 연락할 수 있는 전화번호 또는 Apple ID

includeAttachments
Type: booleanDefault: false

수신 메시지의 미디어 첨부 파일을 처리할지 여부

mediaMaxMb
Type: numberDefault: 10

미디어 첨부 파일의 최대 파일 크기 (MB)

textChunkLimit
Type: numberDefault: 4000

발신 메시지당 최대 문자 수

chunkMode
Type: stringDefault: "length"

텍스트 분할 모드: 'length' (문자 수 제한) 또는 'newline' (단락 경계)

historyLimit
Type: numberDefault: 20

대화 컨텍스트로 포함할 최대 이전 메시지 수

configWrites
Type: booleanDefault: true

iMessage를 통한 /config set|unset 명령 허용

remoteHost
Type: stringDefault: ""

원격 Mac에서 imsg를 실행하기 위한 SSH 호스트명

iMessage (Legacy) 자주 묻는 질문

iMessage (Legacy) 문제 해결

봇이 메시지를 주고받지 못함

imsg 바이너리 또는 OpenClaw 프로세스에 macOS 권한(전체 디스크 접근 또는 자동화)이 누락됨.

시스템 설정 > 개인정보 보호 및 보안을 엽니다. imsg와 OpenClaw 모두에 전체 디스크 접근 권한이 부여되었는지 확인합니다. GUI 터미널에서 'imsg'를 실행하여 누락된 권한 프롬프트를 트리거합니다. 권한 부여 후 Gateway를 재시작합니다.
권한 프롬프트가 나타나지 않음

프로세스가 헤드리스 환경(SSH, launchd)에서 실행되어 macOS가 TCC 프롬프트를 표시할 수 없음.

GUI 세션(화면 공유 또는 물리적 접근)으로 Mac에 로그인합니다. Terminal.app에서 'imsg'를 실행하여 프롬프트를 트리거합니다. 권한이 부여된 후 헤드리스 운영으로 돌아갈 수 있습니다.
오류: chat.db를 찾을 수 없거나 접근 거부

dbPath 구성이 올바르지 않거나 전체 디스크 접근 권한이 부여되지 않음.

dbPath가 올바른 메시지 데이터베이스(일반적으로 ~/Library/Messages/chat.db)를 가리키는지 확인합니다. 시스템 설정에서 OpenClaw 프로세스에 전체 디스크 접근 권한이 활성화되어 있는지 확인합니다.
원격 SSH 연결 실패

SSH 키 인증이 구성되지 않았거나 원격 호스트에 도달할 수 없음.

Gateway 호스트와 원격 Mac 사이에 SSH 키 인증이 설정되어 있는지 확인합니다. 'ssh <remoteHost> imsg --version'으로 수동 연결을 테스트합니다. 방화벽과 네트워크 연결을 확인합니다.