Signal

Mudabbir connects to Signal via the signal-cli REST API. Signal is ideal for users who prioritize privacy and end-to-end encryption.

Prerequisites

You need a running signal-cli-rest-api instance. This provides the HTTP API that Mudabbir communicates with.

Terminal window
# Run signal-cli REST API via Docker
docker run -d --name signal-api \
-p 8080:8080 \
-v ./signal-cli:/home/.local/share/signal-cli \
bbernhard/signal-cli-rest-api

Register your phone number with signal-cli before using it with Mudabbir.

Setup

Start signal-cli REST API

Ensure signal-cli-rest-api is running and your number is registered.

Configure

Terminal window
export MUDABBIR_SIGNAL_API_URL="http://localhost:8080"
export MUDABBIR_SIGNAL_PHONE_NUMBER="+1234567890"

Start

Terminal window
mudabbir --signal

Configuration

SettingEnv VariableDescription
API URLMUDABBIR_SIGNAL_API_URLsignal-cli REST API URL
Phone numberMUDABBIR_SIGNAL_PHONE_NUMBERYour registered Signal number
Allowed numbersMUDABBIR_SIGNAL_ALLOWED_NUMBERSComma-separated allowed numbers

How It Works

The Signal adapter uses HTTP polling:

  1. Every 2 seconds, it sends GET /v1/receive/{number} to the signal-cli API
  2. New messages are converted to InboundMessage events
  3. Responses are sent via POST /v2/send to the signal-cli API

No Streaming

Signal doesn’t support message editing, so responses are accumulated and sent as a complete message.

Installation

Signal support uses httpx (a core dependency), so no extra installation is needed:

Terminal window
curl -fsSL https://mudabbir.fly.dev/install.sh | sh