Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.photon.codes/docs/llms.txt

Use this file to discover all available pages before exploring further.

Welcome to the Spectrum documentation. If you need support with your integration, email ryan@photon.codes. Here are some helpful links:

What is Spectrum?

Spectrum lets you build an agent once and connect it to the places your users already are. A user might message you in iMessage today, WhatsApp tomorrow, and your app next week. Without Spectrum, each interface becomes a separate integration with its own authentication, events, message formats, edge cases, and tools. With Spectrum, you run one agent server and add providers for the interfaces you want to support. Each provider connects a native interface to the same Spectrum API, so your agent can feel consistent everywhere. Today, Spectrum supports iMessage, WhatsApp Business, and terminal development. The same model is built for more interfaces over time: Slack, Discord, websites, apps, phone calls, meetings, and hardware like HomePod.

Supported interfaces today

Spectrum currently includes official providers for:

iMessage

Run production iMessage agents through managed iMessage lines.

WhatsApp Business

Connect to the official WhatsApp Business Cloud API.

Terminal

Build, test, and demo agents from your local terminal.
You can also build custom providers with definePlatform. Use custom providers to bring websites, apps, Slack, Discord, internal tools, or new device interfaces into Spectrum.

View all providers

See the built-in providers and learn how to combine them.

The agent server model

Spectrum is designed around a simple idea: your agent should run once. Your Spectrum server owns the product behavior: routing, tools, memory, handoff, safety, analytics, and anything else your agent needs. Providers own the interface work: connecting to each platform, receiving events, sending messages, and exposing native features when they exist. That keeps your code small. You add providers, but the agent loop stays the same:
import { Spectrum } from "spectrum-ts";
import { imessage, terminal } from "spectrum-ts/providers";

const app = await Spectrum({
  projectId: process.env.PROJECT_ID!,
  projectSecret: process.env.PROJECT_SECRET!,
  providers: [
    imessage.config(),
    terminal.config(),
  ],
});

for await (const [space] of app.messages) {
  await space.send("How can I help?");
}
Every provider feeds the same message stream. Your agent can send, react, reply, and use platform-specific features only when it needs them.

Built for iMessage

iMessage is where Spectrum is most mature. Spectrum gives you production iMessage infrastructure with the richest iMessage feature set we offer today. You get managed iMessage lines, so your agent can run on any server and connect to iMessage through Spectrum. The managed iMessage provider supports local development, DMs and groups, typing indicators, reactions, threaded replies, group creation, message effects, chat backgrounds, per-line routing, dedicated line auto-scale, and automatic token renewal. That matters because iMessage is not a generic SMS fallback. Users expect native behavior, reliable delivery, and conversations that feel like they belong on Apple devices.

Explore the iMessage provider

Learn how Spectrum connects your agent to managed iMessage lines.

Manage Spectrum your way

You do not have to manage Spectrum only from the dashboard. Use the dashboard for setup, the API for automation, and the Photon CLI for terminal workflows and scripts.

Dashboard

Configure projects, users, lines, platforms, and profile settings from the browser.

API reference

Automate Spectrum management from your own systems and test live requests.

CLI

Script profile updates, users, lines, platform toggles, and avatars from a terminal.

Where to go next

Get started

Install spectrum-ts and send your first message.

Build a custom platform

Add a new interface with Spectrum’s provider model.