Skip to main content
profClaw connects to Signal via signald, an unofficial Signal daemon that exposes a local UNIX socket API. All messages are end-to-end encrypted by Signal’s protocol.

Capabilities

FeatureSupported
Direct messagesYes
Group messagesYes
End-to-end encryptionYes (Signal protocol)
Media messagesYes
Voice/video callsNo
Phone number allowlistYes

Requirements

  • A dedicated phone number for the bot
  • signald running on the same machine as profClaw

Setup

1

Install signald

# Ubuntu/Debian
apt install signald

# Or run via Docker
docker run -v /var/run/signald:/var/run/signald signald/signald
2

Register a phone number

signaldctl account register +1234567890
# Receive SMS verification code
signaldctl account verify +1234567890 CODE
3

Configure profClaw

SIGNAL_SOCKET_PATH=/var/run/signald/signald.sock
SIGNAL_PHONE_NUMBER=+1234567890
# Optional: restrict to specific numbers
SIGNAL_ALLOWED_NUMBERS=+0987654321,+1122334455
4

Verify

profclaw doctor --provider signal

Environment Variables

SIGNAL_SOCKET_PATH
string
required
Path to the signald UNIX socket. Default: /var/run/signald/signald.sock
SIGNAL_PHONE_NUMBER
string
required
Bot phone number in E.164 format (e.g., +12125551234).
SIGNAL_ALLOWED_NUMBERS
string
Comma-separated allowlist of phone numbers that can interact with the bot.

Configuration Example

SIGNAL_SOCKET_PATH=/var/run/signald/signald.sock
SIGNAL_PHONE_NUMBER=+12125551234
SIGNAL_ALLOWED_NUMBERS=+19876543210

Notes

  • Status: Beta
  • signald is an unofficial Signal client - it may break when Signal updates its protocol.
  • The SIGNAL_ALLOWED_NUMBERS allowlist is strongly recommended for security.
  • Signal requires a real phone number capable of receiving SMS.
  • signald stores Signal keys locally - keep signald_data secure.