Skip to content

Signal

Human uses signal-cli to send and receive Signal messages. signal-cli runs as a daemon with an HTTP/JSON-RPC API.

  • Build with -DHU_ENABLE_SIGNAL=ON or -DHU_ENABLE_ALL_CHANNELS=ON
  • signal-cli installed and configured with a registered number
Terminal window
# Linux (see signal-cli releases)
wget https://github.com/AsamK/signal-cli/releases/download/v0.11.0/signal-cli-0.11.0.tar.gz
tar xf signal-cli-0.11.0.tar.gz
# Or via package manager where available
Terminal window
# Register with your phone number (use with -u for account ID)
signal-cli -a +1234567890 register
# Verify with code from SMS
signal-cli -a +1234567890 verify <code>
# Run daemon (HTTP API on port 8080 by default)
signal-cli -a +1234567890 daemon

The daemon exposes:

  • RPC: http://localhost:8080/api/v1/rpc
  • SSE events: http://localhost:8080/api/v1/events
  • Health: http://localhost:8080/api/v1/check

Add to ~/.human/config.json:

{
"channels": {
"signal": [
{
"http_url": "http://localhost:8080",
"account": "+1234567890",
"allow_from": [],
"group_allow_from": [],
"group_policy": "mention_only"
}
]
}
}
FieldTypeDescription
http_urlstringsignal-cli daemon base URL
accountstringRegistered phone number (account ID)
allow_fromarrayAllowed DM senders. Empty = allow all
group_allow_fromarrayAllowed group IDs for group chats
group_policystringopen, mention_only, or allowlist
  • allow_from: empty = allow all DMs; list = only those numbers/UUIDs
  • group_allow_from: for group_policy: allowlist, list of group IDs

Start the Human gateway or agent with the Signal channel enabled. The channel connects to the signal-cli daemon and receives events via SSE.