A companion that lives in your messages
It keeps the thread going, remembers what matters and checks in at the right moment, with tapbacks and voice notes like a person.
iMessage API for AI agents
Apple has no public iMessage API. Flow gives your agent one: send and receive blue-bubble messages with tapbacks, typing indicators, read receipts, group chats, voice notes and attachments.
Real iMessage threads on a dedicated number. Nothing to run on a Mac.
Morning Maya ☀️ How did the interview go yesterday? You were nervous about the second round.
0:14
A take-home task means they liked you! Want to plan it out tonight so it doesn’t eat your weekend?
1. Yes, at 82. Maybe later
❤️
What you can build
It keeps the thread going, remembers what matters and checks in at the right moment, with tapbacks and voice notes like a person.
The usual order, saved address and card. One message replaces six taps.
Suggests matches, plans the date and books the table.
A two-minute breathing break, sent when it helps, not when it nags.
Brand examples are illustrations of what could be built, not those companies' products.
The usual way vs. Flow
Building it yourself~4 weeks+
Apple’s official route, Messages for Business, needs an approved provider, enterprise onboarding and live agents during business hours.
With Flow Frameworkan afternoon
import { tool } from "@flow-engineer/flow"; import { z } from "zod"; export default tool({ name: "plan_date", description: "Find a restaurant and hold a table for the date.", input: z.object({ city: z.string(), when: z.string() }), run: async ({ city, when }) => api.tables.hold({ city, when }), });
How Flow works
Get started
Run npx @flow-engineer/flow new my-agent, or ask Claude Code or Codex to set it up. You get one folder: the agent’s instructions, its tools, its skills and its tests.
Each job is a TypeScript function with a typed input that calls your API: check an order, book a slot, find a deal. No protocol code.
Run npx @flow-engineer/flow test. Simulated users try the scenarios that matter, including people who change their mind or ask for something your agent should refuse.
Flow gives your agent a dedicated number with real blue-bubble iMessage: tapbacks, typing indicators, read receipts, group chats, voice notes and attachments.
Share the number or a link that opens the chat. The same project runs on WhatsApp and Telegram too.
$ npx @flow-engineer/flow new my-agent $ cd my-agent $ npx @flow-engineer/flow test ✓ 24 scenarios passing
Already have an agent? Use the Flow Messaging API from any language.
Guide
Not a public one. Apple offers Messages for Business, which is for large brands through approved providers, shows up as a business chat rather than a personal blue bubble, and only starts when the customer writes first. Agents that text like a person, such as companions and concierges, use an iMessage API like Flow’s instead.
Not with Flow. The do-it-yourself route means a Mac that stays on, an Apple ID per number and a relay to keep alive. Flow runs that side, and your agent talks to an API.
In the US, iMessage is where people already text friends and family. An agent there needs no app download and no sign-up, which is why the new wave of consumer agents (companions, travel concierges, matchmakers, family organisers) launch in text messages first.
Messages for Business suits enterprise support with live agents on hand. An iMessage API suits products where the agent is the experience: it can text first, sit in a group chat and feel like a contact, not a support desk.
Yes. Flow lets you choose the model, and the agent uses your tools for the real work, so you can switch models without touching the iMessage side.
Apple has no public iMessage API. Flow provides one for AI agents: send and receive iMessages with tapbacks, typing indicators, read receipts, group chats and attachments.
Yes. Messages from a Flow iMessage number are real iMessages, shown as blue bubbles.
No. Flow runs the iMessage side; your agent calls an API and receives webhooks.
Yes. It can be added to group chats and reply there like any participant.
Yes, plus read receipts, voice notes, photos and files.
Run the same agent on WhatsApp and Telegram from the same Flow project, so Android users reach it there.
Messages for Business is Apple’s enterprise support channel through approved providers, started by the customer. An iMessage API lets your agent text like a contact, including messaging first.
TypeScript. Agents in other languages can use the Flow Messaging API over REST.
One open-source TypeScript project. The same agent on WhatsApp, Telegram, ChatGPT, Claude and more.