Skip to content

Chat Networks

adapters.toml holds credentials. chmod 600, never commit. Any secret may be written as env:NAME to read it from the environment instead.

The daemon logs a warning at startup if the file is readable beyond its owner, and refuses to start if an env: name is unset. Unknown keys are a startup error rather than a silent typo.

Every adapter follows three rules:

  1. It only reacts to a direct message
  2. It never makes a policy decision
  3. Its endpoint address is a stable identifier, not a display name

Turning a network off

Every section in config/adapters.example.toml ships with enabled = false. Copy the file, then set enabled = true on the one or two networks you actually run and fill in only their credentials. A disabled section is skipped entirely, so its env: name does not have to be set. That is what lets an unconfigured stock config start cleanly and lets you add networks one at a time.

The daemon runs with no network enabled. It logs a warning and stays up, because an instance with no chat network is a normal state during setup and exiting would only turn it into a restart loop that hides the real message. Run party-line-pagerd --check to find out whether anything is actually configured. It exits non-zero when no adapter is enabled, which makes it the right thing to gate a deploy on.

Supported networks

Network Endpoint format Setup guide
Telegram telegram:123456789 Telegram
Matrix matrix:@party-line-pager:example.org Matrix
Signal signal:+15555550100 Signal
IRC irc:party-line-pager IRC
XMPP xmpp:party-line-pager@example.org XMPP
Mastodon mastodon:party-line-pager@example.org Mastodon
Email email:party-line-pager@example.org Email
Mattermost mattermost:8y9z... (26-char user id) Mattermost
Discord discord:891... (numeric snowflake) Discord
Apprise apprise:ntfy://host/topic Apprise

Two caveats

  • IRC loses broadcasts. A PRIVMSG to somebody who is not connected is gone. Tell IRC-only subscribers to add a second endpoint.
  • WhatsApp is not supported. The only legitimate route is Meta's Cloud API (business account + pre-approved templates). Unofficial libraries impersonate a linked device and get numbers banned. If you must have it, run a Matrix bridge and subscribe the resulting Matrix endpoint.