Fake iMessage generator

Build a lookalike phone thread and download a PNG or a vertical video. The drawing stays in this browser. No watermark, no account.

10:08 Maya 81

Platform 4. I'm at the end by the map.

I see the map. Not you.

Turn around.

There you are.

The preview and both files stay in this browser.

Phone
Messages
Script
Output

How to use the generator

Start with the phone block. The header name is the title at the top of the frame. Carrier, clock, and battery are plain text and a simple meter you set yourself. Pick light or dark. If you want a face in the circle, choose a picture from your device. The tool shrinks that picture before it stores the draft. Leave the picture empty and the circle shows the first letter of the header name.

A one-to-one thread has two sides. The header name is the incoming person. The blue side is you, and the default name on that side is Me. Group chat turns the same frame into a thread of three, four, or five people. Each person who is not on the blue side gets a name and a color, and that name is drawn above their bubbles. You cannot add a sixth person. If you turn the group off, the frame keeps the first incoming name and the blue side, and extra speakers are dropped from the list.

Add messages one row at a time, or paste a script and press Apply script. Each row has a speaker, a kind, the words, a tapback, an optional typing beat, and an optional pause. Kinds are text, image, and time. Image rows take a picture from your device and draw it inside the bubble. Until you choose a file, the bubble says Photo. Time rows are centered labels, such as a day or a clock time, and they do not take a speaker or a tapback.

The preview is a tall phone frame drawn on a canvas. It is a lookalike, not a capture from a handset. Export PNG saves that frame at the scale you pick: 1x, 2x, or 3x. The higher scales are the same layout with more pixels, which is what you want if the still will sit on a slide or a poster. Export video does not reuse the PNG size. It records a 1080 by 1920 canvas, plays the lines in order, and downloads the file. Screenshot mode and video mode only change which controls you are looking at. Both buttons stay available either way.

Seconds between lines is the shared gap for any row that does not have its own pause. The field accepts 0.05 seconds through 8 seconds. A pause typed on a row, or a pause line in the script, replaces that shared gap for one message only. The optional tone is a short sine blip made in the browser when a bubble appears during the recording. It is off until you check it. The still receipt menu shows Delivered, Read, or nothing on the PNG. The video always plays Delivered and then Read after the last line, because that beat is part of the recording rather than a sticker you toggle.

Load example fills the script box from one of the six originals on this page and applies it. Refresh script from messages rewrites the box from the rows, which is useful after you have nudged a pause or a speaker by hand. Apply script is the other direction: the box replaces the rows. If a line is wrong, the error list names the line and the rows stay as they were.

Script syntax

The box is one instruction per line. Blank lines and lines that start with a hash are ignored. Header lines start with two colons and usually sit at the top. Message lines are a name, a colon, and the text. Stage directions sit in parentheses on their own line. This is the whole grammar.

Line What it does
Maya: On my way. One text bubble from Maya.
Me: I see you. A blue bubble. Me and You are the outgoing side.
Studio: [image] A photo bubble. After you apply, add the file on that row.
(pause 2) Wait that many seconds before the next line in the video. The number can be a decimal.
(typing) Show the three dots before the next line, inside the same wait.
(typing Maya) Same dots, and the next line has to be Maya’s.
(react ❤️) A tapback on the previous message. Allowed marks: ❤️ 👍 😂 ‼️ ❓ 👎.
(time Tonight) A centered time chip. It is not a bubble.
::contact Maya Header title for a one-to-one thread, or the group title.
::carrier Mobile Status text on the left. Keep it short.
::time 10:08 The clock in the status row. This is a label, not a timer.
::battery 80 A whole number from 0 to 100.
::theme light light or dark.
::group Required when the script names 3 to 5 people. Not allowed outside that range.

A second react on the same message replaces the first. A pause or a typing line that is not followed by a message is an error, because there is nothing for it to attach to. Three speakers without ::group is an error. A group with two names, or with six, is an error. The page keeps up to 80 messages in one thread. Unknown header keys are errors, so a typo does not silently become a bubble.

You can paste a script that is only Name: text lines plus (pause 2). You do not need the header lines. Missing header fields fall back to the current phone settings when you apply, except the names, which come from the lines. After a successful apply, Refresh is unnecessary: the box is rewritten into this same grammar so a later edit round-trips.

A minimal thread

Maya: Platform 4. I'm at the end by the map.
(pause 1)
Me: I see the map. Not you.
(typing)
Maya: Turn around.
(react ❤️)
Me: There you are.

That is the shape of the late-train example: an incoming line, a held beat, a blue reply, dots, a short turn, a heart, and a landing line. The other five examples use the same grammar for a family group, a roommate prank, a late-night unknown number, a product mock with a photo bubble, and a kitchen argument with a time chip. Load them from the menu rather than retyping. They are originals for this page, written so each one exercises a different control.

When a still is the right file, and when a video is

Export a PNG when the frame has to sit still: a slide, a bug report, a thumbnail, a poster, a place where motion would be a distraction. The still shows the thread as it fits in the phone, scrolled to the latest lines if the thread is taller than the screen. Choose 2x or 3x when the still will be enlarged. Choose 1x when you want a smaller file for a quick look.

Export a video when the order is the point. A still dumps every line on the viewer at once. A recording reveals them, holds on a pause, shows the dots, and flips the receipt. That is the file you want for a vertical post, a story beat, or a demo where the audience should feel the gap between two lines. Use both exports from the same rows when a campaign needs a cover image and a moving cut. You do not maintain two copies of the dialogue.

The video container depends on the browser. If the recorder can produce MP4, the download is MP4. Otherwise it is WebM. The pixels are 1080 by 1920 either way. This page does not also write a GIF. If you need a GIF, make it from the downloaded video in an editor.

A thread people finish watching

The first bubble should already be in motion. A location, a refusal, a question that cannot be answered with “ok”. Viewers who are going to swipe decide from the opening, so do not spend it on greetings. Put the unusual word in the first line, not the fifth.

Pauses are the cut. A one-second hold is a breath. A two-second hold, written as (pause 2), is a beat you want noticed. Use it before the line that changes the meaning, not before every line. If every gap is long, the recording feels stuck. If every gap is the minimum, nobody can read. Read your own line out loud once. If you cannot finish it before the next bubble arrives, lengthen that row’s pause.

Typing dots are a promise that someone is about to speak. Use them before an incoming line that should feel composed, not before every reply. A tapback is a reaction from the other person without a new sentence. Put it on the line that deserves the flinch or the laugh, then let the next line answer it. The receipt is the last cut in the video: Delivered, then Read. Do not hide the ending under an extra bubble that explains the joke. Stop when the receipt has been readable, and do not pad the script with a farewell that repeats the landing line.

Vertical frames for TikTok, Reels, and Shorts

Those three surfaces play vertical video full screen. The shape they fill is 9:16. A 1080 by 1920 file is that shape in pixels: 1080 is to 1920 as 9 is to 16. The export on this page is already that size, so a vertical player does not have to crop the sides of the phone to make it stand up. A square file or a landscape file will letterbox or get cropped, because it is not the same shape.

Length limits live in each app’s upload screen, and those caps change. This page does not pick a “best” duration and does not report watch-time numbers. Make the recording as long as the thread needs, including the receipt hold, and check the limit shown by the app before you post. If the file is longer than that app allows, cut it in an editor. Do not invent extra lines to hit a number.

The phone in the video sits on a plain backdrop with a margin around it. That margin is part of the 1080 by 1920 frame. If you later cover the backdrop with other footage, do that in your editor. This page does not composite a second clip, and it does not add captions over the video. The bubbles are the captions.

Group chats, tapbacks, and the receipt

In a group, incoming bubbles keep their colors so you can tell speakers apart without reading every name twice. The name is still drawn, because color alone is a weak label. The blue side stays blue even in a group, and it does not get a name label on the bubble. The header title is the group name you typed, not a mash of every person, unless you left the header blank and the script had no ::contact line. Then the header becomes the incoming names joined together.

Tapbacks draw as a small pill on the corner of the bubble toward the center of the phone. They are the six marks listed in the syntax table and no others. A laugh mark is not a sticker pack, and the page does not animate the pill. In the video it appears when its message appears.

Delivered and Read are labels under the last blue bubble. On the still, you choose which word is showing, or you hide the label. In the video the word changes on its own after the last line. If the thread has no blue bubble, there is no receipt to draw, because the label belongs to the outgoing side.

What stays on this device

The draft is written to localStorage in this browser, under a key used only by this page. The story page keeps a separate draft, so loading a narrative there does not wipe a mock you built here. Clearing site data, or opening a private window, drops the draft. The page cannot restore it, because it was never sent anywhere.

Photos you attach are reduced and kept inside that same draft as data in the browser. A very large library of pictures can hit the browser’s storage limit. If that happens, the status line says the draft was refused and the preview on this tab still works. Export the file you need before you close the tab.

There is no login on this tool and no upload of the thread for rendering. The page itself is still a normal page on ChatGPT2Word: it loads, and the site’s existing analytics tag can send a page view. That tag is not given the message text. Do not type secrets into a mock you would not want sitting in browser storage.

Not affiliated with Apple

This generator is a parody and a mockup tool from ChatGPT2Word. It is not Apple, not the Messages app, and not a way to send a real message to a handset. The frame uses ordinary colors, a generic battery outline, and the site’s font. It does not include Apple’s logo, Apple’s icon artwork, Apple’s font files, or Apple’s message sound. The tone, if you enable it, is a sine wave made for this page.

Use the files for fiction, jokes, and product mockups you are allowed to publish. Do not impersonate a real person. Do not put a real person’s picture in the header and present the file as their phone. Do not offer the PNG or the video as evidence of a conversation that happened. A lookalike is not a record. If you need a real transcript, export the real thread from the place it actually happened.

How this page compares

The names below are other fake-text tools. This page does not link to them. Prices are only the public ones we are willing to repeat: texting.video charges $4.99 to remove a watermark, and MockChats charges $12 a month for an iMessage-style option. Where a price was not part of that note, the cell says so instead of guessing. ChatClip can turn its default watermark off without a fee. Faux Reel’s export includes a watermark and an end card, and that product keeps a library of 1085 joke templates. Empty cells would be worse than an honest “not listed here”, so unknowns stay labeled.

Point This page ChatClip Faux Reel texting.video MockChats
Export PNG, plus WebM or MP4 when the browser can record MP4 MP4 MP4, GIF, and WebM 1080p video Still image or video
Watermark None, and no end card On by default; can be turned off at no charge Watermark and an end card $4.99 to remove the watermark Not listed here
Price $0 No charge to turn the watermark off Not listed here $4.99 for watermark removal $12 a month for the iMessage-style option
Script Name, colon, text, plus pause, typing, and tapback lines Not listed here Name: message and a pause line such as (pause 2) Not listed here Not listed here
Tapback Six reactions Not listed here Not listed here Yes, with receipt timing Not listed here
Group 3 to 5 people, with names and colors Not listed here Not listed here Yes Not listed here
Sound Optional tone synthesized here Yes Not listed here Not listed here Not listed here
Receipt Delivered, then Read, in the video Delivered Delivered, then Read, plus battery and clock Receipt timing Not listed here
Where it runs In the browser on this page In the browser Not listed here Not listed here Not listed here
Also Light and dark, six original examples, and a story page for narrative cuts Light and dark, typing dots 1085 joke templates Group chat and 1080p The lookalike style is the monthly option

Read that table as a list of differences, not as a score. This page’s case is specific: one thread, a still and a video, no watermark, no fee, plus the script, the six tapbacks, the group, and the tone. Faux Reel’s joke library is far larger than the six examples here, and this page does not pretend otherwise. ChatClip is the name in the list that will remove a watermark without charging, and it is described as an MP4 export with sound, typing dots, a Delivered label, and both appearances. Use the fake text story maker when the job is a narrative with a hook, a turn, and an ending rather than a UI mock. The component is the same. The story page opens on video and on a story script.

The six examples

  • Late train. Two people on a platform. A pause, dots, and a heart before the landing line.
  • Sunday plates. Four relatives, a group header, and one thumbs-up on the offer to set a plate.
  • The cactus. A dark-mode prank. The plant is not wearing the hat. The laugh mark sits on the confession.
  • Locker 12. An unknown number, a low battery, a question mark tapback, and a time chip before the refusal.
  • Slide and cut. A studio asking for a still and a video of one thread, then a photo bubble.
  • The last dumpling. A time chip, dots, and a laugh, ending on a promise to replace the food.

Questions

Is the fake iMessage generator free?

Yes. The page costs nothing to use. There is no account, no trial timer, and no paid unlock for the PNG or the video. Export as many times as you like from this browser.

Does the PNG or the video have a watermark?

No. The file is the phone frame, the bubbles, and the lines you wrote. This page does not stamp a logo, a URL, or an end card onto the PNG or the video.

Do I need an account?

No. Nothing on this tool asks you to sign in. The draft sits in this browser under a localStorage key. A different browser, or a cleared site storage, starts empty.

Is the thread uploaded to make the picture?

No. Messages, the optional photo, and both exports are drawn on a canvas in your browser. This page has no send button and no conversion API for the thread. The site still loads like the rest of ChatGPT2Word, including that site’s normal analytics tag, which does not receive the message text.

Can one thread become both a picture and a video?

Yes. Export PNG writes the phone as it looks now, at 1x, 2x, or 3x. Export video plays the same lines in order on a 1080×1920 canvas and downloads a WebM file, or an MP4 file when the browser’s recorder supports MP4. You do not rebuild the thread to switch.

Why did I get a WebM file instead of MP4?

The recorder uses MP4 only when the browser reports that it can record MP4. Many desktop browsers record WebM instead. A video editor that accepts WebM can open the file. If you need MP4 and this browser only offered WebM, export again in a browser that supports MP4 recording, or remux the WebM in your editor.

How do I make a group chat?

Turn on Group chat and keep 3 to 5 people, including the blue side. Each other person gets a name and a color, and that name sits above their incoming bubbles. In the script box, put ::group on its own line and use a different name before each colon.

Which tapbacks can I add?

Six: heart, thumbs up, laugh, double exclamation, question, and thumbs down. In the script, put (react ❤️) on the line after the message you want to mark. A second react on the same message replaces the first.

What does a script line look like?

One message is Name: text. Me or You is the blue side. (pause 2) waits two seconds before the next line in the video. (typing) shows the dots. (time Tonight) is a centered label. Name: [image] is a photo bubble; you add the picture from the message row after you apply the script.

Are you affiliated with Apple?

No. ChatGPT2Word is not Apple, and this page is not the Messages app. The bubbles are a lookalike drawn with ordinary CSS colors and the site font. The page does not use Apple’s logo, icon files, or font files, and it does not play Apple’s message sound.

Can I use a picture from this page as proof of a real conversation?

No. These files are fiction, parody, and design mockups. Do not impersonate a real person, do not pass a file off as a screenshot from someone else’s phone, and do not use it as evidence. If a story needs a real record, use the real thread.

Where does the draft go when I close the tab?

The browser keeps the draft in localStorage for this site, separately for the generator page and the story page. Reopen the same page on the same browser and the lines come back. The PNG and the video are downloads only; the page does not store those files for you.