Back to Eliza

Signal Plugin

packages/docs/plugin-registry/platform/signal.md

2.0.13.0 KB
Original Source

The Signal plugin connects Eliza agents to Signal via signal-cli running in HTTP or JSON-RPC mode, enabling private and group messaging with attachment and reaction support.

Package: @elizaos/plugin-signal

Installation

bash
eliza plugins install @elizaos/plugin-signal

Setup

1. Install signal-cli

Install signal-cli and register or link a Signal account:

bash
signal-cli -a +1234567890 register
signal-cli -a +1234567890 verify CODE

2. Start signal-cli in HTTP Mode

bash
signal-cli -a +1234567890 daemon --http localhost:8080

3. Configure Eliza

json
{
  "connectors": {
    "signal": {
      "enabled": true,
      "account": "+1234567890",
      "httpUrl": "http://localhost:8080",
      "dmPolicy": "pairing"
    }
  }
}

Configuration

FieldRequiredDescription
accountYesSignal phone number (E.164 format, e.g., +1234567890)
httpUrlNoHTTP URL for signal-cli daemon (e.g., http://localhost:8080)
httpHostNoHostname alternative to httpUrl
httpPortNoPort alternative to httpUrl
cliPathNoPath to signal-cli binary for auto-start
startupTimeoutMsNoMilliseconds to wait for CLI startup (1000-120000)
receiveModeNo"on-start" or "manual" (default: "on-start")
ignoreAttachmentsNoIgnore incoming attachments
ignoreStoriesNoIgnore story messages
sendReadReceiptsNoSend read receipts for received messages
reactionNotificationsNo"off", "own", "all", or "allowlist"
dmPolicyNo"pairing", "allowlist", "open", or "disabled" (default: "pairing")

Features

  • HTTP and JSON-RPC — Connects to signal-cli via HTTP URL or host/port
  • Auto-start — Optional CLI auto-start with configurable timeout
  • Attachments — Send and receive media attachments
  • Read receipts — Configurable delivery/read receipt support
  • Reactions — Reaction notifications at configurable levels
  • Stories — Optional story message processing
  • Multi-account — Supports multiple Signal accounts via accounts map

Environment Variables

VariableRequiredDescription
SIGNAL_ACCOUNT_NUMBERYesSignal phone number (E.164 format)
SIGNAL_HTTP_URLNoHTTP URL for signal-cli daemon
SIGNAL_CLI_PATHNoPath to signal-cli binary
SIGNAL_SHOULD_IGNORE_GROUP_MESSAGESNoIgnore group messages

Auto-Enable

The plugin auto-enables when the connectors.signal block contains an account:

json
{
  "connectors": {
    "signal": {
      "account": "+1234567890"
    }
  }
}