provider.config(...) to register it, and call
provider(app) or provider(space) to
narrow into its platform-specific instance.
Platform and provider guides
Most platforms connect through a provider package registered withconfig().
Voice calls currently connect directly over SIP; the Voice guide lives here
because it is a platform integration, while SDK call control is still on the
roadmap.
iMessage
Use the batteries-included cloud provider, or explicitly install the separate macOS local provider.
Terminal
Run a local chat interface for development, testing, and CLI-style agents.
WhatsApp Business
Use the official WhatsApp Business Cloud API for 1:1 customer conversations.
Voice
Place and receive calls over SIP using a Spectrum iMessage line.
Telegram
Use the Telegram Bot API with Fusor webhooks, media, reactions, replies, typing, and edits.
Slack
Connect one or more Slack workspaces with text, media, reactions, threads, and inbound edit events.
Combining providers
Call each provider’sconfig() method and pass the results to providers:
- Aggregate import
- Individual imports
app.messages merges messages from every provider. The message.platform field tells you which provider delivered each message.
@spectrum-ts/imessage-local is not part of the aggregate import. Install it
explicitly and import localIMessage from its scoped package. Cloud iMessage
uses the "imessage" platform ID; local iMessage uses "local_imessage", so
a macOS application can register both when it needs both transports.Writing your own
If none of the built-ins fit, implement a provider withdefinePlatform. See Building a custom platform.