Signal
Signal Channel
Section titled “Signal Channel”Human uses signal-cli to send and receive Signal messages. signal-cli runs as a daemon with an HTTP/JSON-RPC API.
Prerequisites
Section titled “Prerequisites”- Build with
-DHU_ENABLE_SIGNAL=ONor-DHU_ENABLE_ALL_CHANNELS=ON - signal-cli installed and configured with a registered number
1. Install signal-cli
Section titled “1. Install signal-cli”# Linux (see signal-cli releases)wget https://github.com/AsamK/signal-cli/releases/download/v0.11.0/signal-cli-0.11.0.tar.gztar xf signal-cli-0.11.0.tar.gz
# Or via package manager where available2. Register and run the daemon
Section titled “2. Register and run the daemon”# Register with your phone number (use with -u for account ID)signal-cli -a +1234567890 register
# Verify with code from SMSsignal-cli -a +1234567890 verify <code>
# Run daemon (HTTP API on port 8080 by default)signal-cli -a +1234567890 daemonThe daemon exposes:
- RPC:
http://localhost:8080/api/v1/rpc - SSE events:
http://localhost:8080/api/v1/events - Health:
http://localhost:8080/api/v1/check
3. Configuration
Section titled “3. Configuration”Add to ~/.human/config.json:
{ "channels": { "signal": [ { "http_url": "http://localhost:8080", "account": "+1234567890", "allow_from": [], "group_allow_from": [], "group_policy": "mention_only" } ] }}Fields
Section titled “Fields”| Field | Type | Description |
|---|---|---|
http_url | string | signal-cli daemon base URL |
account | string | Registered phone number (account ID) |
allow_from | array | Allowed DM senders. Empty = allow all |
group_allow_from | array | Allowed group IDs for group chats |
group_policy | string | open, mention_only, or allowlist |
4. Allowlist
Section titled “4. Allowlist”allow_from: empty = allow all DMs; list = only those numbers/UUIDsgroup_allow_from: forgroup_policy: allowlist, list of group IDs
5. Run
Section titled “5. Run”Start the Human gateway or agent with the Signal channel enabled. The channel connects to the signal-cli daemon and receives events via SSE.