forked from Selig/openclaw-skill
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.
24 lines
1.7 KiB
JSON
Executable File
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": []
|
|
} |