Skip to main content
SDK providers plug into Spectrum’s type system and runtime. Each SDK provider exports a callable. Call 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 with config(). 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’s config() method and pass the results to providers:
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 with definePlatform. See Building a custom platform.