NanoClaw now supports Signal via signal-cli's JSON-RPC interface. Can run alongside WhatsApp or replace it entirely.
Signal's E2E encryption pairs well with NanoClaw's container isolation. Voice transcription runs locally too, so nothing leaves the machine unless intended.
What's supported:
Typing indicators, reactions, quoted replies, polls
Signal text styling (bold, italic, strikethrough, spoiler, monospace) with UTF-16 offset handling
Image/audio/file attachments (send and receive)
Voice message transcription (local, via Whisper)
Group metadata (members, admins, description)
All existing NanoClaw features (scheduled tasks, per-group isolation, etc.)
How it works: signal-cli runs in JSON-RPC mode. Newline-delimited JSON from stdout gets parsed, messages route to the right group queue, a container spawns, and responses go back via stdin RPC calls. The Signal channel is ~800 lines.Setup: run /add-signal in Claude Code, or set SIGNAL_ONLY=true to drop WhatsApp. Needs Java 21+ and signal-cli, no npm dependencies.
Upstream skill PR: https://github.com/qwibitai/nanoclaw/pull/490