Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.wednesdayai.dev/llms.txt

Use this file to discover all available pages before exploring further.

Signal

WednesdayAI connects to Signal via signal-cli, an external CLI tool that the gateway manages as a child process. You need a Signal-capable phone number (or a linked Signal account) to use this channel.

Prerequisites

  • signal-cli installed on the gateway host
  • A phone number that can receive SMS (or Signal QR linking to an existing account)
  • Java Runtime Environment (JRE 25+) if using the JVM build of signal-cli, or the native binary

Install signal-cli

VERSION=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/AsamK/signal-cli/releases/latest | sed -e 's/^.*\/v//')
curl -L -O "https://github.com/AsamK/signal-cli/releases/download/v${VERSION}/signal-cli-${VERSION}-Linux-native.tar.gz"
sudo tar xf "signal-cli-${VERSION}-Linux-native.tar.gz" -C /opt
sudo ln -sf /opt/signal-cli /usr/local/bin/
signal-cli --version
Use this if you want to connect your existing Signal account to the bot without registering a new number.
signal-cli link -n "WednesdayAI"
# Scan the displayed QR code with your Signal app
Then configure OpenClaw with your Signal number:
{
  channels: {
    signal: {
      enabled: true,
      account: "+15551234567",    // E.164 phone number
      cliPath: "signal-cli",
      dmPolicy: "pairing",
    },
  },
}
Use a separate phone number for the bot — this avoids de-authenticating your personal Signal account.
# Register the number
signal-cli -a +15551234567 register

# If captcha required:
# Open https://signalcaptchas.org/registration/generate.html
# Complete the captcha and copy the signalcaptcha:// URL
signal-cli -a +15551234567 register --captcha 'signalcaptcha://...'

# Verify with the SMS code
signal-cli -a +15551234567 verify 123456
Then configure and restart:
{
  channels: {
    signal: {
      enabled: true,
      account: "+15551234567",
      cliPath: "signal-cli",
      dmPolicy: "pairing",
      allowFrom: ["+15557654321"],
    },
  },
}
systemctl --user restart openclaw-gateway
openclaw doctor
openclaw channels status --probe

Access control

{
  channels: {
    signal: {
      dmPolicy: "pairing",             // pairing | allowlist | open | disabled
      allowFrom: ["+15557654321"],     // E.164 or uuid:<signal-uuid>
      groupPolicy: "allowlist",        // open | allowlist | disabled
      groupAllowFrom: ["+15557654321"],
    },
  },
}
Approve DM pairing requests:
openclaw pairing list signal
openclaw pairing approve signal <CODE>

Using an external signal-cli daemon

If you prefer to manage signal-cli separately (not auto-spawned by the gateway):
{
  channels: {
    signal: {
      httpUrl: "http://127.0.0.1:8080",
      autoStart: false,
    },
  },
}

Troubleshooting

Check that signal-cli is in PATH: which signal-cliUpdate cliPath in config if installed to a non-standard location:
{ channels: { signal: { cliPath: "/opt/signal-cli/bin/signal-cli" } } }
  1. Check pairing: openclaw pairing list signal
  2. Verify the account is registered: signal-cli -a +15551234567 listIdentities
  3. Check logs: openclaw logs --follow | grep signal
Complete the captcha at https://signalcaptchas.org/registration/generate.html and pass the signalcaptcha:// URL to the register command.