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.
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.