Minimal headless node client for Raspberry Pi / Linux. Connects to the gateway bridge, handles pairing, streams voice.transcript events (stdin/FIFO), subscribes to chat, and can speak responses via local TTS.
cd clawgo
go build ./cmd/clawgo
Cross-compile for Pi:
GOOS=linux GOARCH=arm64 go build -o /tmp/clawgo-linux-arm64 ./cmd/clawgo
| Flag | Description |
|---|---|
-session-key | Session for outgoing voice.transcript events (default main). |
-chat-session-key | Session to subscribe for chat replies (default mirrors -session-key). |
-chat-subscribe | Enable chat stream+TTS (default true). |
-tts-engine | system, piper, elevenlabs, or none (system = espeak-ng). |
-tts-system-voice | espeak voice id (default en-us). |
-tts-system-rate | Speech rate (wpm). |
-mdns-service | Bonjour service type (default _clawdbot-node._tcp). |
-stdin | Read transcripts from stdin (pipe/FIFO). |
-stdin-file | Read transcripts from a FIFO/file instead of stdin. |
-agent-request | Send transcripts as agent.request (uses agent + deliver). |
-deliver | Deliver agent responses to a provider (requires channel + to). |
-deliver-channel | Delivery provider (telegram/whatsapp/signal/imessage). |
-deliver-to | Delivery destination id. |
-quick-actions | Enable built-in quick actions (default true). |
-ping-message | Message used for telegram ping quick action. |
-router | Routing plugin name (default default). |
./clawgo pair \
-bridge 100.88.46.29:18790 \
-display-name "Razor Pi"
Approve via clawdbot nodes approve <requestId>.
mkfifo /tmp/voice.fifo
# in one terminal
tail -f /tmp/voice.fifo | ./clawgo run \
-bridge 100.88.46.29:18790 \
-stdin \
-chat-subscribe \
-tts-engine system
# elsewhere
printf hey computer turn on the lights
> /tmp/voice.fifo
Each line on the FIFO becomes a voice.transcript; chat responses from the main session are spoken via espeak-ng.
Minimal steps:
/home/pi/clawgo./home/pi/.cache/clawdbot/voice.fifo) open and pipes it into clawgo run -stdin./etc/systemd/system/clawgo.service pointing to that wrapper.The node advertises _clawdbot-node._tcp by default.
dns-sd -B _clawdbot-node._tcp local.
Override to _clawdbot-bridge._tcp if you intentionally want it to show up as a gateway beacon:
./clawgo run -mdns-service _clawdbot-bridge._tcp
nodeId + token) lives in ~/.clawdbot/clawgo.json.voiceWake; override via -caps if you expose more commands.bridge.bind: "tailnet" on the gateway to restrict the bridge to Tailscale.