OpenClaw Signal 채널
signal-cli를 사용하여 OpenClaw를 Signal에 연결합니다. signal-cli는 Signal 프로토콜을 위한 서드파티 오픈소스 커맨드라인 인터페이스입니다. 이 통합은 완전한 종단간 암호화를 갖춘 프라이버시 우선 AI 메시징을 제공합니다. OpenClaw는 HTTP JSON-RPC 및 Server-Sent Events를 통해 signal-cli 데몬과 통신하여 AI 어시스턴트가 Signal에서 메시지를 주고받을 수 있도록 합니다. 봇 계정에는 전용 전화번호가 필요합니다.
Signal 지원 기능
텍스트 메시지
지원
미디어 및 파일
지원
리액션
지원
스레드
미지원
음성 메시지
미지원
그룹 채팅
지원
Signal 사전 요구사항
- Signal 봇 계정용 전용 전화번호 (개인 번호와 분리)
- 서버에 Java Runtime Environment (JRE 25+) 설치
- signal-cli 설치 및 PATH에 등록
- OpenClaw Gateway 실행 및 구성 완료
- 봇을 연결할 기존 Signal 계정 (또는 새 등록)
Signal 빠른 설정
signal-cli 설치
공식 GitHub 저장소에서 signal-cli를 다운로드하여 설치합니다. Java 25 이상이 필요합니다. 터미널에서 'signal-cli --version'을 실행하여 설치를 확인하세요.
Signal 계정 연결 또는 등록
'signal-cli link -n "OpenClaw"'를 실행하여 기존 Signal 계정에 연결하고 다른 기기에서 QR 코드를 스캔합니다. 또는 'signal-cli -a +15551234567 register'로 새 계정을 등록할 수 있습니다. 전용 번호를 사용하세요 — 개인 계정에서 실행하면 자체 메시지 루프가 발생합니다.
Signal 채널 구성 추가
~/.openclaw/openclaw.json에 Signal 채널 구성을 추가합니다. 'account' 필드를 봇의 E.164 형식 전화번호로 설정하고 dmPolicy(pairing, allowlist 또는 open)를 구성하여 어시스턴트에게 메시지를 보낼 수 있는 사용자를 제어합니다.
Gateway 시작 및 테스트 메시지 전송
Gateway 프로세스를 시작합니다. OpenClaw가 자동으로 signal-cli 데몬을 시작합니다. 다른 Signal 계정에서 봇 번호로 메시지를 보냅니다. 기본 pairing 정책을 사용하는 경우 'openclaw pairing approve signal <code>'로 발신자를 승인하세요.
Signal 구성 예시
{
"channels": {
"signal": {
"enabled": true,
"account": "+15551234567",
"dmPolicy": "pairing"
}
}
}Signal 상세 문서
아키텍처 개요
Signal 계정 설정
{
"channels": {
"signal": {
"account": "+15551234567",
"cliPath": "/usr/local/bin/signal-cli"
}
}
}외부 데몬 모드
{
"channels": {
"signal": {
"account": "+15551234567",
"httpUrl": "http://127.0.0.1:8080/api/v1/rpc"
}
}
}DM 정책
{
"channels": {
"signal": {
"dmPolicy": "allowlist",
"allowFrom": ["+15551234567", "uuid:a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
}
}
}그룹 채팅 관리
{
"channels": {
"signal": {
"groupPolicy": "open",
"historyLimit": 50
}
}
}프라이버시 및 종단간 암호화
리액션
{
"channels": {
"signal": {
"reactionLevel": "minimal"
}
}
}미디어 및 첨부파일
{
"channels": {
"signal": {
"mediaMaxMb": 8,
"ignoreAttachments": false
}
}
}타이핑 표시기 및 읽음 확인
{
"channels": {
"signal": {
"sendReadReceipts": true
}
}
}텍스트 청킹 및 전달
{
"channels": {
"signal": {
"textChunkLimit": 4000,
"chunkMode": "newline"
}
}
}Signal 구성 참조
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Signal 채널 활성화 또는 비활성화 |
| account | string | "" | E.164 형식의 봇 전화번호 (예: +15551234567). 필수 |
| cliPath | string | "signal-cli" | signal-cli 실행 파일 경로 |
| httpUrl | string | "" | 외부 signal-cli 데몬의 전체 URL. 설정 시 자동 시작 비활성화 |
| httpHost | string | "127.0.0.1" | 자동 시작 signal-cli 데몬이 바인딩할 호스트 주소 |
| httpPort | number | 8080 | 자동 시작 signal-cli 데몬이 바인딩할 포트 |
| autoStart | boolean | true | Gateway 시작 시 signal-cli 데몬 자동 생성 여부 |
| startupTimeoutMs | number | 30000 | signal-cli 데몬이 사용 가능해질 때까지 대기하는 최대 시간(ms). 최대 120000 |
| dmPolicy | string | "pairing" | 봇에 DM을 보낼 수 있는 사용자 제어. 옵션: pairing, allowlist, open, disabled |
| allowFrom | string[] | [] | 봇에 메시지를 보낼 수 있는 전화번호(E.164) 또는 uuid:<id> 식별자 |
| dmHistoryLimit | number | 50 | 대화별 AI 컨텍스트에 포함할 최근 DM 메시지 수 |
| groupPolicy | string | "disabled" | 그룹 채팅 정책. 옵션: disabled, allowlist, open |
| groupAllowFrom | string[] | [] | 그룹에서 봇을 트리거할 수 있는 전화번호 또는 UUID (groupPolicy가 allowlist일 때) |
| historyLimit | number | 50 | AI 컨텍스트에 포함할 최대 그룹 메시지 수. 0으로 설정하면 비활성화 |
| sendReadReceipts | boolean | false | 승인된 DM 연락처에 대해 읽음 확인 신호 전달 여부 |
| textChunkLimit | number | 4000 | 청킹 전 발신 메시지당 최대 문자 수 |
| chunkMode | string | "length" | 텍스트 청킹 모드. 옵션: length (강제 분할), newline (단락 인식) |
| mediaMaxMb | number | 8 | 수신/발신 첨부파일의 최대 미디어 파일 크기(MB) |
| ignoreAttachments | boolean | false | 수신 미디어 첨부파일 다운로드 건너뛰기 |
| ignoreStories | boolean | false | Signal 스토리 이벤트 완전 무시 |
| receiveMode | string | "" | 메시지 수신 모드. 옵션: on-start (시작 시 가져오기), manual |
| configWrites | boolean | true | 런타임에 /config 명령으로 채널 설정 수정 허용 |
| reactionLevel | string | "ack" | 봇 리액션 기능. 옵션: off, ack, minimal, extensive |
Signal 채널 활성화 또는 비활성화
E.164 형식의 봇 전화번호 (예: +15551234567). 필수
signal-cli 실행 파일 경로
외부 signal-cli 데몬의 전체 URL. 설정 시 자동 시작 비활성화
자동 시작 signal-cli 데몬이 바인딩할 호스트 주소
자동 시작 signal-cli 데몬이 바인딩할 포트
Gateway 시작 시 signal-cli 데몬 자동 생성 여부
signal-cli 데몬이 사용 가능해질 때까지 대기하는 최대 시간(ms). 최대 120000
봇에 DM을 보낼 수 있는 사용자 제어. 옵션: pairing, allowlist, open, disabled
봇에 메시지를 보낼 수 있는 전화번호(E.164) 또는 uuid:<id> 식별자
대화별 AI 컨텍스트에 포함할 최근 DM 메시지 수
그룹 채팅 정책. 옵션: disabled, allowlist, open
그룹에서 봇을 트리거할 수 있는 전화번호 또는 UUID (groupPolicy가 allowlist일 때)
AI 컨텍스트에 포함할 최대 그룹 메시지 수. 0으로 설정하면 비활성화
승인된 DM 연락처에 대해 읽음 확인 신호 전달 여부
청킹 전 발신 메시지당 최대 문자 수
텍스트 청킹 모드. 옵션: length (강제 분할), newline (단락 인식)
수신/발신 첨부파일의 최대 미디어 파일 크기(MB)
수신 미디어 첨부파일 다운로드 건너뛰기
Signal 스토리 이벤트 완전 무시
메시지 수신 모드. 옵션: on-start (시작 시 가져오기), manual
런타임에 /config 명령으로 채널 설정 수정 허용
봇 리액션 기능. 옵션: off, ack, minimal, extensive
Signal 자주 묻는 질문
Signal 문제 해결
Java가 설치되지 않았거나 설치된 버전이 너무 오래되었습니다. signal-cli는 Java 25 이상이 필요합니다.
account 필드가 올바르지 않거나, signal-cli 데몬이 실행되지 않거나, 발신자가 페어링을 통해 승인되지 않았을 수 있습니다.
발신자가 allowFrom 목록에 없거나(allowlist 정책 사용 시) 발신자의 식별자 형식이 일치하지 않을 수 있습니다.
groupPolicy가 'disabled'(기본값)로 설정되어 있거나 그룹이 허용 목록에 없습니다.
signal-cli 데몬이 실행되지 않거나, URL이 올바르지 않거나, 방화벽이 연결을 차단하고 있습니다.