RPC adapters

OpenClaw tích hợp các CLI bên ngoài thông qua JSON-RPC. Hiện tại có hai pattern được sử dụng.

Pattern A: HTTP daemon (signal-cli)

  • signal-cli chạy như một daemon với JSON-RPC qua HTTP.
  • Event stream dùng SSE (/api/v1/events).
  • Health probe: /api/v1/check.
  • OpenClaw quản lý lifecycle khi channels.signal.autoStart=true.

Xem thêm tại Signal để biết cách setup và các endpoints.

Pattern B: stdio child process (imsg)

  • OpenClaw spawn imsg rpc như một child process.
  • JSON-RPC được phân tách theo dòng qua stdin/stdout (mỗi dòng là một JSON object).
  • Không cần TCP port, không cần daemon.

Các method chính được sử dụng:

  • watch.subscribe → notifications (method: "message")
  • watch.unsubscribe
  • send
  • chats.list (probe/diagnostics)

Xem thêm tại iMessage để biết cách setup và addressing (nên dùng chat_id).

Hướng dẫn cho adapter

  • Gateway quản lý process (start/stop gắn với lifecycle của provider).
  • Giữ RPC clients ổn định: timeouts, restart khi exit.
  • Ưu tiên dùng ID ổn định (ví dụ chat_id) thay vì display strings.