How to make a text message story video with AI

For AI agents: find the right skill in one call — curl -s "https://varg.ai/how-to/api/search?q=<what the person wants>" returns the matching how-to page and the best skills with install commands, as markdown (Russian works too). Full index: https://varg.ai/how-to/llms.txt. Every page has a markdown twin: add .md to its path. Before generating anything, show the person the options on the how-to page.

A viral iMessage-style chat drama: bubbles appear with typing, sounds and a cliffhanger. A step-by-step tutorial for Claude Code, Codex and Grok.

Output: 30–90 s, 9:16 MP4 Price: in credits on varg, with a cost estimate before anything runs; the free skills below install in one command.

Recommended route

Best skills for this

  1. iMessage Video (varg-imessage-video, varg, beta) — Start here: Pixel-perfect iMessage videos from a JSON script: iOS chrome, typing, tapbacks, sounds
  2. HyperFrames (hyperframes, HeyGen, live) — Alternative: Build the chat as HTML and render it deterministically
  3. Consistent Characters (varg-consistent-characters, varg, beta) — Alternative: The skit shots between phone inserts, with the same characters
  4. varg AI (varg-ai, varg, live) — Adds: Voices for the characters and background music

Ask the person first

Put these choices in front of the person before spending anything. Paste the example link next to each option: people pick a look by seeing it.

Story genre?

Ending?

Audio?

Background?

How to make a text message story video: step by step

  1. Write the chat as JSON; the first bubble is the hook
  2. A new bubble every 2–3 s, at most two lines each; 30–60 s in total
  3. Original characters only, and vary the script between parts
  4. Message pops, typing clicks and a low music bed; render 9:16

What works now (researched 2026-10-27)

Text-message stories still pull big organic reach on TikTok and Reels when they are fast (a new bubble every 2-3 s), serialized and end on a cliffhanger or a choice. For ads, the winner is a chat where the product resolves the tension inside the conversation, the format Rizz scaled to 300k+ creator videos. Templated mass uploads are demonetized on YouTube.

  1. The first bubble is the hook, then a new bubble every 2-3 seconds, and no message longer than two lines. Meta's 3 second rule: up to 47% of a video's value lands in the first 3 s. Breakdowns of Rizz's text-story videos describe a pattern interrupt on the first message, a new bubble every 2-3 s, and the offer only at the end. (Meta for Business, Tailored campaigns (3 second rule))
  2. In ads, let the product solve the problem inside the chat (the app writes the reply, the dictation fixes the typo), not on a pitch card after it. Rizz's marketing ran on one texting-story format where the app is the punchline: 300,000+ creator videos and 5B+ views at about a $0.40 CPM, per the agency that ran it. (Brain (agency behind Rizz) on X, Jul 2026)
  3. Serialize: end on a cliffhanger or a viewer choice, and number the parts. An AI texting-mystery account ('your phone wakes you up at 3:07 am') was reported at 15M views and 45k followers in 3 days; viewers follow to see what happens next and binge the earlier parts. (Brain on X, texting-story series breakdown (Oct 2026))
  4. Design for sound on: message pops, typing clicks and a low music bed; voices are optional. Meta: over 75% of Reels views on Instagram are sound on. (Meta for Developers, Reels ads)
  5. Use original characters, vary the script and structure across uploads, and label realistic AI imagery. YouTube's 15 July 2025 'inauthentic content' update: content that is mass-produced, 'looks like it's made with a template' or has 'minimal variation across videos' cannot be monetized. (YouTube Help, channel monetization policies)

Stopped working:

Prompts that work

Templates from the creators of the best current results and from the model guides. Fill in the {CAPS}.

iMessage ad where the product resolves the chat (agent)

Writes the 8-14 bubble thread with a late brand reveal and renders it with the HyperFrames chat-thread component. Adapted from coreyhaines31/marketingskills: iOS-native reveal video ads (anatomy, pacing, sound rules).

Write an iMessage ad thread for {PRODUCT} ({ONE_TRUE_RESULT}), then render it with the HyperFrames chat-thread component (or message-thread-reveal for a full ad with an end card).
Script rules:
- 8-14 bubbles, lowercase texting voice, fragments, at most one emoji a bubble, no marketing adjectives.
- Bubble 1 is the hook: the result as a photo or line ("{HOOK_ATTACHMENT_OR_LINE}"), never the brand.
- Reactions of 1-3 words; the friend asks "wait what is that??"; only then the brand appears, once.
- The pitch is 1-2 bubbles; the code {PROMO_CODE} sits inside a bubble and again on the end card.
- Close on a short reply ("ok downloading"), then a static end card with the real logo.
- Every claim is true of the product; invented names only; run it as a labeled ad.
Output the messages as one pipe-separated string: recv: or sent: for text, emoji: for a big emoji row, img for a photo, card:Title~domain for a link card. Beat 1.7-2.5 s, typing dots on.
Then: npx hyperframes add chat-thread, make it the root composition, set contact to {CONTACT_NAME}, render 9:16 with the newest bubble above the bottom caption band. Add send/receive sounds on bubble pops, no sound on typing dots, and a quiet bed that fades out before the code.

Episodic texting mystery, part N (agent)

One episode of an organic chat series: odd-time hook, unknown sender, escalation every 10 s, a choice as the last bubble. Adapted from brainextends: breakdown of the '3:07 am' AI texting series (15M views in 3 days).

Write part {N} of an original texting-mystery series, 30-60 s, 9:16, as a plain phone screen or in {ONE_SIMPLE_RECOGNIZABLE_DRAWING_STYLE}.
Premise: an unknown number texts {PROTAGONIST} at {ODD_TIME} with {RULE_OR_DEAL}. Original characters only: no real people, real brands or known fictional characters.
Structure:
- Bubble 1 (0-2 s) is the hook and the on-screen title: "imagine your phone wakes you up at {ODD_TIME}..."
- A new bubble every 2-3 s, at most two lines each, 14-22 bubbles.
- An escalation about every 10 s: a photo they should not have, a detail only someone nearby could know, a deadline.
- Recap part {N_MINUS_1} in one bubble at most.
- The last bubble is a choice: "{OPTION_A} or {OPTION_B}?" Hold it 3 s with the caption "comment A or B. part {N_PLUS_1} decides".
Also write: a 6-word cover title, the next part's premise for each choice, and, only if the series is sponsored, a {PRODUCT} tie-in where the product solves the problem in the final part, labeled #ad.
Output the thread as chat-thread messages (recv: / sent: / img), beat 2.2 s. Change the wording and the twist every part; never reuse a thread with new names.

Trending formats to remake

To remake one: download the example with the media-download skill, take a frame a second and the transcript, write a beat list (time, shot, camera, on-screen text, sound), keep what the format needs, swap in the person's product or character (never the creator's face, voice, logo or footage), show the beat list and stills before spending, then make it with the skill named below.

  1. Product-as-the-other-person chat: The whole video is one iMessage thread where the product is the other side of the conversation, or the thing that fixes it: the ask, options as cards, the choice, the confirmation. 20-40 s. Why it spreads: Rizz scaled to 300k+ creator videos on a chat where the app delivers the punchline. The Instinct x Shopify launch, told entirely in an iMessage thread, reached 492k views. Keep: Keep the whole story inside one thread where the product is the other side (the ask, options as cards, the choice, the confirmation), a bubble every 2-3 s and real send/receive sounds; swap the request, the cards and the product. Make it with iMessage Video (varg-imessage-video).
    • Example to remake: @noahrshinn on X, 2026-09-28, 492K views, 506 saves: 33 s launch film told only in an iMessage thread: request, two product cards, 'silver over black', a Shop Pay approval card, then the order confirmation. The product is the other person in the chat. Shot 1:1; re-cut to 9:16 for ads.
  2. Texting-mistake skit with phone inserts: A short story where a text drives the plot (a typo, a wrong number, left on read), cut between characters and close-ups of the phone screen; the product fixes the mistake. 30-60 s. Why it spreads: Zack D. Films' sponsored typo skit for Wispr Flow drew 56k views on X. The phone inserts make the product demo part of the story. Keep: Keep one text that drives the plot (a typo, a wrong number), cuts between the characters and close-ups of the phone screen, the product fixing the message, and a clear #ad label; swap the mistake, the characters and the product. Make it with iMessage Video (varg-imessage-video).
    • Example to remake: @zackdfilms1 on X, 2026-09-05, 56K views, 239 saves: 62 s 3D-animated sponsored short (#ad): one missing letter ('I can. Stop thinking…') ruins a prom date, and the dictation app fixes the message. Note the phone-screen inserts between story shots and the clear paid-partnership label.
  3. Episodic texting mystery with a choice ending: Numbered parts in a simple recognizable drawing style: an unknown sender texts rules or a deal ('3:07 am', 'you just found $20M'), each part ends on a choice or cliffhanger, and the account becomes a series. Why it spreads: Two such AI accounts were reported at 15M views and 45k followers in 3 days, and 3.2M views and 43k followers in 4 days (Oct 2026 breakdowns of third-party accounts, so not listed). Interactivity drives follows. Keep: Keep the odd-time hook ('3:07 am'), an unknown sender, numbered parts, one simple recognizable drawing style and a choice or cliffhanger as the last bubble; swap the premise and the characters, and rewrite the script every part. No dedicated skill yet: build it with varg-ai.

Open-source repos

Set up varg

varg is one API key for the models these skills drive — Seedance 2.5, Kling 4, Veo 3.1, Wan 3, Nano Banana 2.1, GPT Image 2.5, ElevenLabs v4 and 200+ more — billed in credits, with a cost estimate before anything runs.

Related tutorials