iMessage Chat Generator
Generate a fake iMessage conversation screenshot — blue or green bubbles, contact name, avatar, date separators and a Delivered receipt — from a simple line-by-line script, and download it as SVG.
Input
Optional. Stays in your browser — initials are drawn if you skip it.
One message per line. Start a line with me: for your messages, them: for theirs, and --- for a date separator.
Settings
Leave empty to match the message type (iMessage or Text Message).
The screen is a fixed phone-sized frame, so a long conversation scrolls. 0 shows the start, 100 the latest messages. No effect if everything already fits.
Output
Your iMessage screenshot will appear here.
Guides
Build a realistic fake iMessage conversation — the iPhone status bar, the contact header, blue iMessage or green SMS bubbles with proper iOS tails, date separators and the "Delivered" receipt — and download it as a crisp SVG you can drop into a slide, a mockup, an article or a meme.
Everything runs in your browser. Nothing you type and no photo you pick is uploaded anywhere.
How to use it
- Type the contact name and, optionally, upload a contact photo (initials are drawn if you skip it).
- Write the conversation, one message per line:
me: Yes! 8pm, usual place— your message, a blue (or green) bubble on the right.them: Are we still on for tonight?— the contact's message, a grey bubble on the left.--- Today 9:41 AM— a centred date separator.- A line with no prefix is treated as the contact's, so you can paste a plain transcript and add prefixes afterwards.
- Pick iMessage (blue) or SMS (green), light or dark appearance, and the status-bar time.
- Copy or download the SVG from the output panel.
Consecutive messages from the same person are grouped exactly as iOS groups them: only the last bubble of a run gets a tail.
A real phone screen, not a growing canvas
The output is a fixed 390×844 frame — an actual iPhone's aspect ratio — instead of a canvas that stretches with however many lines you paste in. A short exchange leaves blank space above the input bar, exactly like opening a real conversation; a longer one scrolls inside that same frame. Drag Scroll position to pick which part of a long conversation is visible: 0 shows the start, 100 the latest messages.
Why a script instead of "add message" buttons
The whole conversation lives in one text field, which means it survives everything a repeater can't: a shareable link, a saved preset, a copy-paste out of a real chat export, and a plain API call. Editing message four is a click into a line, not a hunt through a stack of form rows.
Why SVG and not JPG?
An SVG is resolution-independent — the same file is sharp in a 1080p slide and in a 4K screenshot, and it stays a few kilobytes. If you need a raster image, open the SVG and export it at whatever size you want, or drop it straight into Figma, Keynote or Google Slides, which all import SVG.
Can I add timestamps to individual messages?
iOS doesn't show a time on each bubble, so this tool doesn't either — use a --- Today 9:41 AM separator line instead. (A trailing | 09:14 on a line is accepted and ignored here, so a transcript pasted from elsewhere still renders.) If you want a time inside every bubble, the WhatsApp Chat Generator does exactly that.
Is this legal to use?
It's for mockups, parody, memes, tutorials and app-store screenshots. Passing a generated image off as a real conversation — as evidence, or to impersonate someone — is not what it's for and may be illegal where you live.
Related tools
- WhatsApp Chat Generator — the same script format, rendered as a WhatsApp chat with per-message timestamps and read ticks.
- Fake Tweet Generator — a mock tweet card with avatar, verified badge and engagement counts.
- Code Screenshot Generator — turn a code snippet into a shareable image for the same slide deck.
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/imessage-chat-generator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contact": "Alex",
"script": "--- Today 9:41 AM\nthem: Are we still on for toni…",
"bubble": "imessage",
"theme": "light",
"statusTime": "9:41",
"placeholder": "",
"delivered": ""
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `imessage-chat-generator` tool (iMessage Chat Generator) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.