mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-09 05:19:32 +08:00
* feat: Make BlueBubbles the primary iMessage integration - Remove old imsg skill (skills/imsg/SKILL.md) - Create new BlueBubbles skill (skills/bluebubbles/SKILL.md) with message tool examples - Add keep-alive script documentation for VM/headless setups to docs/channels/bluebubbles.md - AppleScript that pokes Messages.app every 5 minutes - LaunchAgent configuration for automatic execution - Prevents Messages.app from going idle in VM environments - Update all documentation to prioritize BlueBubbles over legacy imsg: - Mark imsg channel as legacy throughout docs - Update README.md channel lists - Update wizard, hubs, pairing, and index docs - Update FAQ to recommend BlueBubbles for iMessage - Update RPC docs to note imsg as legacy pattern - Update Chinese documentation (zh-CN) - Replace imsg examples with generic macOS skill examples where appropriate BlueBubbles is now the recommended first-class iMessage integration, with the legacy imsg integration marked for potential future removal. * refactor: Update import paths and improve code formatting - Adjusted import paths in session-status-tool.ts, whatsapp-heartbeat.ts, and heartbeat-runner.ts for consistency. - Reformatted code for better readability by aligning and grouping related imports and function parameters. - Enhanced error messages and conditional checks for clarity in heartbeat-runner.ts. * skills: restore imsg skill and align bluebubbles skill * docs: update FAQ for clarity and formatting - Adjusted the formatting of the FAQ section to ensure consistent bullet point alignment. - No content changes were made, only formatting improvements for better readability. * style: oxfmt touched files * fix: preserve BlueBubbles developer reference (#8415) (thanks @tyler6204)
44 lines
1.4 KiB
Markdown
44 lines
1.4 KiB
Markdown
---
|
|
summary: "RPC adapters for external CLIs (signal-cli, legacy imsg) and gateway patterns"
|
|
read_when:
|
|
- Adding or changing external CLI integrations
|
|
- Debugging RPC adapters (signal-cli, imsg)
|
|
title: "RPC Adapters"
|
|
---
|
|
|
|
# RPC adapters
|
|
|
|
OpenClaw integrates external CLIs via JSON-RPC. Two patterns are used today.
|
|
|
|
## Pattern A: HTTP daemon (signal-cli)
|
|
|
|
- `signal-cli` runs as a daemon with JSON-RPC over HTTP.
|
|
- Event stream is SSE (`/api/v1/events`).
|
|
- Health probe: `/api/v1/check`.
|
|
- OpenClaw owns lifecycle when `channels.signal.autoStart=true`.
|
|
|
|
See [Signal](/channels/signal) for setup and endpoints.
|
|
|
|
## Pattern B: stdio child process (legacy: imsg)
|
|
|
|
> **Note:** For new iMessage setups, use [BlueBubbles](/channels/bluebubbles) instead.
|
|
|
|
- OpenClaw spawns `imsg rpc` as a child process (legacy iMessage integration).
|
|
- JSON-RPC is line-delimited over stdin/stdout (one JSON object per line).
|
|
- No TCP port, no daemon required.
|
|
|
|
Core methods used:
|
|
|
|
- `watch.subscribe` → notifications (`method: "message"`)
|
|
- `watch.unsubscribe`
|
|
- `send`
|
|
- `chats.list` (probe/diagnostics)
|
|
|
|
See [iMessage](/channels/imessage) for legacy setup and addressing (`chat_id` preferred).
|
|
|
|
## Adapter guidelines
|
|
|
|
- Gateway owns the process (start/stop tied to provider lifecycle).
|
|
- Keep RPC clients resilient: timeouts, restart on exit.
|
|
- Prefer stable IDs (e.g., `chat_id`) over display strings.
|