All integrations

Photon

ChannelProvider official

Cloud, self-hosted, and local iMessage messaging through Photon.

Read the full channel docs

Install

Install eve, Chat SDK, the Photon adapter, and a state adapter:

bash
npm install eve@latest chat @photon-ai/chat-adapter-imessage @chat-adapter/state-memory

The in-memory state store is for local development. Use Redis or PostgreSQL in production. The adapter is vendor-official.

Quick start

Create agent/channels/imessage.ts:

ts
// agent/channels/imessage.tsimport { createiMessageAdapter } from "@photon-ai/chat-adapter-imessage";import { createMemoryState } from "@chat-adapter/state-memory";import { chatSdkChannel } from "eve/channels/chat-sdk";
export const { bot, channel, send } = chatSdkChannel({  userName: "My Agent",  adapters: {    imessage: createiMessageAdapter({      local: false,      projectId: process.env.IMESSAGE_PROJECT_ID,      projectSecret: process.env.IMESSAGE_PROJECT_SECRET,    }),  },  state: createMemoryState(),});
bot.onNewMention(async (thread, message) => {  await thread.subscribe();  await send(message.text, { thread });});
bot.onSubscribedMessage(async (thread, message) => {  await send(message.text, { thread });});
export default channel;

See the Photon adapter documentation for all supported events and credentials.

Configure

Set IMESSAGE_PROJECT_ID and IMESSAGE_PROJECT_SECRET, then point Photon’s signed webhook at /eve/v1/imessage. Photon supports cloud, self-hosted, and local macOS deployments. See the Chat SDK channel docs for eve session dispatch, state, streaming, and human-in-the-loop behavior.