import { imessage } from "@interactions-hq/skyline";
The iMessage provider supports cloud and dedicated connection modes. It exposes iMessage-specific features such as tapbacks, DM spaces, chat backgrounds, mini-app cards, and per-phone routing.

Quick start

Use cloud mode when you want Interactions to manage the iMessage infrastructure:
import { Skyline, imessage } from "@interactions-hq/skyline";

const app = await Skyline({
  projectId: process.env.SKYLINE_PROJECT_ID!,
  projectSecret: process.env.SKYLINE_PROJECT_SECRET!,
  providers: [imessage.config()],
});
Use dedicated mode when you operate your own iMessage relay:
imessage.config({
  lines: [
    { address: "100.120.138.80:50051", token: "your-token", phone: "+15551111111" },
  ],
});

Explore iMessage

Connection and routing

Compare cloud and dedicated modes. Learn line allocation, quotas, and routing.

Messaging features

Effects, attachments, tapbacks, mini-app cards, and more.

Free plan scope

The hackathon / free tier includes:
FeatureIncluded
Direct messages
Text, attachments, reactions, replies
Typing indicators, read receipts
Shared pool lines (per-user routing)
Up to 10 users per project
Group creation
Dedicated lines
Chat rename / group avatars
Register recipients with the Users API or sky skyline users add before messaging them on cloud shared lines.