Files
openclaw-skill/openclaw-knowhow-skill/output/openclaw-docs_data/pages/RPC_Adapters_e619e336be.json
Selig 4c966a3ad2 Initial commit: OpenClaw Skill Collection
6 custom skills (assign-task, dispatch-webhook, daily-briefing,
task-capture, qmd-brain, tts-voice) with technical documentation.
Compatible with Claude Code, OpenClaw, Codex CLI, and OpenCode.
2026-03-13 10:58:30 +08:00

24 lines
1.7 KiB
JSON
Executable File

{
"title": "RPC adapters",
"content": "OpenClaw integrates external CLIs via JSON-RPC. Two patterns are used today.\n\n## Pattern A: HTTP daemon (signal-cli)\n\n* `signal-cli` runs as a daemon with JSON-RPC over HTTP.\n* Event stream is SSE (`/api/v1/events`).\n* Health probe: `/api/v1/check`.\n* OpenClaw owns lifecycle when `channels.signal.autoStart=true`.\n\nSee [Signal](/channels/signal) for setup and endpoints.\n\n## Pattern B: stdio child process (legacy: imsg)\n\n> **Note:** For new iMessage setups, use [BlueBubbles](/channels/bluebubbles) instead.\n\n* OpenClaw spawns `imsg rpc` as a child process (legacy iMessage integration).\n* JSON-RPC is line-delimited over stdin/stdout (one JSON object per line).\n* No TCP port, no daemon required.\n\n* `watch.subscribe` → notifications (`method: \"message\"`)\n* `watch.unsubscribe`\n* `send`\n* `chats.list` (probe/diagnostics)\n\nSee [iMessage](/channels/imessage) for legacy setup and addressing (`chat_id` preferred).\n\n## Adapter guidelines\n\n* Gateway owns the process (start/stop tied to provider lifecycle).\n* Keep RPC clients resilient: timeouts, restart on exit.\n* Prefer stable IDs (e.g., `chat_id`) over display strings.",
"code_samples": [],
"headings": [
{
"level": "h2",
"text": "Pattern A: HTTP daemon (signal-cli)",
"id": "pattern-a:-http-daemon-(signal-cli)"
},
{
"level": "h2",
"text": "Pattern B: stdio child process (legacy: imsg)",
"id": "pattern-b:-stdio-child-process-(legacy:-imsg)"
},
{
"level": "h2",
"text": "Adapter guidelines",
"id": "adapter-guidelines"
}
],
"url": "llms-txt#rpc-adapters",
"links": []
}