Bring Agents to the
Interfaces Millions Already Use.

Spectrum is an open-source framework that connects
your agents to iMessage, Telegram, WhatsApp, Slack, Discord, Instagram,
and other interfaces people use every day.

Cross Channel

const spectrum = Spectrum(providers: [...], config: {...})
const agent = new Agent()

// Handle incoming messages by type
spectrum.onMessage(async ({ space, message }) => {
  switch (message.type) {
    case "text":
      const response = await agent.generate(message.content)
      await space.send("Hello World", attachment(...))
      await space.send(response)
    case "attachment":
      await message.react("like")
  }
})

// Auto-select the best available channel for delivery
await spectrum.send("+123456789", sticker(...))

// Explicitly route through iMessage with Telegram as fallback
await spectrum.send("+123456789", imessage().fallback(telegram()), poll({...}))

Run

Simple, powerful, unified API
that connects to infinite platforms

Send rich, structured content

Including styled text, images, files, and more.

Deliver Generative Agentic UI

Native, interactive component across platforms.

Available across every interfaces

From direct messages to group chats & beyond.

Built for omni-channel communication

Seamlessly support text, voice, and video.

Tap into platform-specific capabilities

When you need deeper, native integrations.

Stay proactive with real-time events

Event-driven and responsive.

iMessage background including multiple blue bubbles

iMessage

const spectrum = Spectrum(providers: [...], config: {...})
const agent = new Agent()

// Handle incoming messages by type
spectrum.onMessage(async ({ space, message }) => {
  switch (message.type) {
    case "text":
      const response = await agent.generate(message.content)
      await space.send("Hello World", attachment(...))
      await space.send(response)
    case "attachment":
      await message.react("like")
  }
})

// Auto-select the best available channel for delivery
await spectrum.send("+123456789", sticker(...))

// Explicitly route through iMessage with Telegram as fallback
await spectrum.send("+123456789", imessage().fallback(telegram()), poll({...}))

Run

Native iMessage APIs
for Apple-Level rich experiences

Send & receive messages,

supporting markdown
and bubble / message effects.

Share attachments seamlessly

including files, media,
and stacked images.

Accept location sharing

subscribe to real-time
live users’ location updates.

Build and deliver
generative iMessage mini apps

directly within the conversation.

Customize identity with
profile names and photos,

automatically synced with users.

Create and manage group chats

including names, avatars,
and participant control.