Skip to main content
import { imessage } from "spectrum-ts/providers/imessage";
The iMessage provider supports three connection modes: local, cloud, and dedicated. It exposes iMessage-specific features such as tapbacks, DM and group spaces, chat backgrounds, mini-app cards, and per-phone routing through platform narrowing.

Quick start

Use cloud mode when you want Spectrum to manage the iMessage infrastructure:
import { Spectrum } from "spectrum-ts";
import { imessage } from "spectrum-ts/providers/imessage";

const app = await Spectrum({
  projectId: process.env.PROJECT_ID!,
  projectSecret: process.env.PROJECT_SECRET!,
  providers: [imessage.config()],
});
Use local mode when you are developing on your own Mac and only need local Messages database access:
imessage.config({ local: true });
Use dedicated mode when you operate your own iMessage relay:
imessage.config({
  clients: [
    { address: "instance-1.example.com:443", token: "your-token", phone: "+15551111111" },
  ],
});

Explore iMessage

Connection and routing

Compare local, cloud, and dedicated modes. Learn line allocation, quotas, space types, and per-phone routing.

Messaging features

Use effects, chat renames, avatars, backgrounds, mini-app cards, contact cards, attachments, and tapbacks.