Skip to content
/ clawgo Public

Clawd node in go

License

Notifications You must be signed in to change notification settings

moltbot/clawgo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clawgo (Go Node)

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.

Build

cd clawgo
go build ./cmd/clawgo

Cross-compile for Pi:

GOOS=linux GOARCH=arm64 go build -o /tmp/clawgo-linux-arm64 ./cmd/clawgo

Key flags

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).

Pair

./clawgo pair \
  -bridge 100.88.46.29:18790 \
  -display-name "Razor Pi"

Approve via clawdbot nodes approve <requestId>.

Run (FIFO + TTS example)

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.

systemd example

Minimal steps:

  1. Install the binary as /home/pi/clawgo.
  2. Create a wrapper script that keeps a FIFO (/home/pi/.cache/clawdbot/voice.fifo) open and pipes it into clawgo run -stdin.
  3. Create /etc/systemd/system/clawgo.service pointing to that wrapper.

mDNS advertising

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

Notes

  • Node state (nodeId + token) lives in ~/.clawdbot/clawgo.json.
  • Caps default to voiceWake; override via -caps if you expose more commands.
  • Set bridge.bind: "tailnet" on the gateway to restrict the bridge to Tailscale.

About

Clawd node in go

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages