RPC 어댑터
OpenClaw는 JSON-RPC를 통해 외부 CLI와 통합합니다. 현재는 두 가지 패턴을 사용합니다.패턴 A: HTTP daemon (signal-cli)
signal-cli는 JSON-RPC over HTTP로 동작하는 daemon으로 실행됩니다.- 이벤트 스트림은 SSE (
/api/v1/events)입니다. - 헬스 프로브:
/api/v1/check channels.signal.autoStart=true이면 OpenClaw가 lifecycle을 소유합니다.
패턴 B: stdio child process (legacy: imsg)
Note: 새 iMessage 설정에서는 BlueBubbles를 사용하세요.
- OpenClaw는
imsg rpc를 child process로 실행합니다(legacy iMessage 통합). - JSON-RPC는 stdin/stdout을 통해 line-delimited 방식으로 전달됩니다. 한 줄에 JSON object 하나입니다.
- TCP port나 daemon은 필요하지 않습니다.
watch.subscribe→ 알림(method: "message")watch.unsubscribesendchats.list(probe/diagnostics)
chat_id 권장)은 iMessage 문서를 참고하세요.
어댑터 가이드라인
- Gateway가 process를 소유해야 합니다. start/stop은 provider lifecycle과 연결되어야 합니다.
- RPC client는 timeout과 exit 후 restart를 포함해 resilient하게 유지하세요.
- display string보다 안정적인 ID(예:
chat_id)를 선호하세요.