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:
- It only reacts to a direct message
- It never makes a policy decision
- Its endpoint address is a stable identifier, not a display name
Supported networks¶
| Network | Endpoint format | Setup guide |
|---|---|---|
| Telegram | telegram:123456789 |
Telegram |
| Matrix | matrix:@partylinepager:example.org |
Matrix |
| Signal | signal:+15555550100 |
Signal |
| IRC | irc:partylinepager |
IRC |
| XMPP | xmpp:partylinepager@example.org |
XMPP |
| Mastodon | mastodon:partylinepager@example.org |
Mastodon |
email:partylinepager@example.org |
||
| 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.