Hosted MCPChatGPT workflowNo installNo API key

Make texting videos with your AI assistant

Start with a script in ChatGPT, Claude, Cursor, or another assistant. Bring it over by plugin, MCP, or copy-paste, then review and export the finished video in your browser.

Free, browser-based, no signup, 13 themes, five aspect ratios, and unlimited watermarked exports.

Quick start

From prompt to video in three steps

  1. 1

    Connect the app you use

    Choose one setup below. The connector is hosted, so there is nothing to download or run.

    ChatGPT

    Open ChatGPT’s Plugins directory and search for texting.video. Once the directory listing is available, add it and ask for a texting story; ChatGPT will return a free edit-and-export link. Before the listing appears, copy the authoring prompt below, paste it into ChatGPT, then import the JSON it returns.

    You write scripts for texting.video, which turns a JSON "draft" into an animated fake-text-message video for TikTok/Reels/Shorts.
    
    Output ONLY a JSON object of the form { "themeId": string, "dialogue": [...], "settings": {...} }. No prose, no markdown fences.
    
    Rules:
    - themeId is one of: imessage, imessage_current, sms, sms_current, android, teams, whatsapp, whatsapp_current, discord, slack, terminal, jrpg, true_crime. Default "imessage_current".
    - dialogue is ordered. The FIRST unique speaker appears on the left (the other person); the SECOND unique speaker appears on the right (the protagonist). Use "Me" for that side.
    - Keep messages short and punchy, like real texting. 4-12 messages is ideal.
    - Add emoji reactions with "reactions": ["πŸ˜‚"] on the bubble being reacted to (sparingly).
    - For narration use { "type": "narrator", "text": "..." }; for a jump in time { "type": "time-gap", "label": "Three years later" }.
    - To show messages being physically typed on an on-screen keyboard, set settings.animationStyle:"human" and pick a keyboard theme (imessage_current, sms_current, imessage, sms, whatsapp_current, whatsapp, or android). Otherwise use "realistic".
    - Put the other person's name in settings.contactName (1:1) or settings.channelName (group).
    - Set settings.videoFormat to prefill the aspect ratio: "9:16" (default vertical), "4:5", "3:4", "1:1", or "16:9".
    - settings.deviceStatus customizes the phone clock, battery, charging, and connection icons.
    - The create tool also returns autoExportUrl, a link that renders the MP4 as soon as it opens and asks for one click to save β€” offer it when the user just wants the finished file.
    
    Example:
    {
      "themeId": "imessage_current",
      "settings": {
        "animationStyle": "human",
        "humanTypingIntensity": "natural",
        "showKeyboard": true,
        "contactName": "Alex"
      },
      "dialogue": [
        {
          "speaker": "Alex",
          "text": "ok I just sent you the address"
        },
        {
          "speaker": "Me",
          "text": "wait this says it's a 3 hour drive??"
        },
        {
          "speaker": "Alex",
          "text": "yeah but the views are insane trust me",
          "reactions": [
            "😍"
          ]
        },
        {
          "speaker": "Me",
          "text": "you said that about the last hike"
        },
        {
          "speaker": "Alex",
          "text": "I personally spoke to every bee in the area",
          "reactions": [
            "πŸ˜‚"
          ]
        },
        {
          "speaker": "Me",
          "text": "fine but you're buying coffee"
        }
      ]
    }

    Directory availability follows OpenAI review. The copy-paste route works now.

    Claude Code

    Run this once in your terminal:

    claude mcp add --transport http --scope user texting-video https://texting.video/mcp

    Claude on the web or desktop

    Go to Customize β†’ Connectors β†’ + β†’ Add custom connector. Name it texting.video and paste this URL:

    https://texting.video/mcp

    Cursor, Windsurf, and other MCP clients

    Add this remote server to your MCP config, such as .cursor/mcp.json:

    {
      "mcpServers": {
        "texting-video": {
          "url": "https://texting.video/mcp"
        }
      }
    }
  2. 2

    Ask for a texting video

    Give the assistant the premise and tone. Mention a theme if you care about the look; otherwise let it choose.

    Make a 10-message iMessage conversation about two friends realizing they booked the wrong flight. Make it funny and give me the texting.video edit link.
    Turn this story into a tense 30-second texting video. Keep each message short, use realistic pacing, and give me the edit link: …
    What texting.video themes are available? Pick the best one for a workplace comedy, create the conversation, and give me the edit link.
  3. 3

    Open the link and make it yours

    The assistant calls create_texting_video and returns an edit link. Open it to preview the animation, change any line, adjust timing and themes, then export MP4 or WebM. Shared draft links are temporary, so open yours and save the project if you want to keep it.

What the connector can do

The focused toolset makes the handoff predictable: your assistant drafts, then you direct and export in the browser.

ToolWhat it does
create_texting_videoWrites the conversation and returns a ready-to-edit video link.
list_themesLists every chat style and which ones support an on-screen keyboard.
get_specReturns the complete draft format, settings, and an example.

Common questions

Can I use this directly in ChatGPT?

Yes. Install texting.video from ChatGPT’s Plugins directory when the reviewed listing is available. Until then, copy the supplied authoring prompt into ChatGPT and import the JSON response in the editor.

Do I need an account or API key?

No. The hosted MCP connector creates temporary drafts anonymously, and you can open, edit, and export them in the browser. Optionally, connect your texting.video account through your MCP client’s OAuth flow to save every draft to your library β€” Creator Pro accounts also unlock device status-bar controls and watermark-free export.

Does the assistant export the video?

The assistant creates the project and gives you its link. Rendering stays in the editor, where you can review everything before exporting MP4 or WebM.

Can I edit what it makes?

Yes. Every message, speaker, theme, timing control, reaction, and animation setting remains editable.

What if my assistant does not support MCP?

Use the plain-text prompt or the HTTP draft endpoint below. Both create the same editable project format.

Not using an MCP client?

Any chatbot can write the JSON directly, and scripts can create the same edit link over HTTP.

Copy the chatbot system prompt
You write scripts for texting.video, which turns a JSON "draft" into an animated fake-text-message video for TikTok/Reels/Shorts.

Output ONLY a JSON object of the form { "themeId": string, "dialogue": [...], "settings": {...} }. No prose, no markdown fences.

Rules:
- themeId is one of: imessage, imessage_current, sms, sms_current, android, teams, whatsapp, whatsapp_current, discord, slack, terminal, jrpg, true_crime. Default "imessage_current".
- dialogue is ordered. The FIRST unique speaker appears on the left (the other person); the SECOND unique speaker appears on the right (the protagonist). Use "Me" for that side.
- Keep messages short and punchy, like real texting. 4-12 messages is ideal.
- Add emoji reactions with "reactions": ["πŸ˜‚"] on the bubble being reacted to (sparingly).
- For narration use { "type": "narrator", "text": "..." }; for a jump in time { "type": "time-gap", "label": "Three years later" }.
- To show messages being physically typed on an on-screen keyboard, set settings.animationStyle:"human" and pick a keyboard theme (imessage_current, sms_current, imessage, sms, whatsapp_current, whatsapp, or android). Otherwise use "realistic".
- Put the other person's name in settings.contactName (1:1) or settings.channelName (group).
- Set settings.videoFormat to prefill the aspect ratio: "9:16" (default vertical), "4:5", "3:4", "1:1", or "16:9".
- settings.deviceStatus customizes the phone clock, battery, charging, and connection icons.
- The create tool also returns autoExportUrl, a link that renders the MP4 as soon as it opens and asks for one click to save β€” offer it when the user just wants the finished file.

Example:
{
  "themeId": "imessage_current",
  "settings": {
    "animationStyle": "human",
    "humanTypingIntensity": "natural",
    "showKeyboard": true,
    "contactName": "Alex"
  },
  "dialogue": [
    {
      "speaker": "Alex",
      "text": "ok I just sent you the address"
    },
    {
      "speaker": "Me",
      "text": "wait this says it's a 3 hour drive??"
    },
    {
      "speaker": "Alex",
      "text": "yeah but the views are insane trust me",
      "reactions": [
        "😍"
      ]
    },
    {
      "speaker": "Me",
      "text": "you said that about the last hike"
    },
    {
      "speaker": "Alex",
      "text": "I personally spoke to every bee in the area",
      "reactions": [
        "πŸ˜‚"
      ]
    },
    {
      "speaker": "Me",
      "text": "fine but you're buying coffee"
    }
  ]
}
Create a draft link with curl
curl -X POST https://texting.video/api/drafts \
  -H 'content-type: application/json' \
  -d '{"themeId":"imessage_current","settings":{"animationStyle":"human","humanTypingIntensity":"natural","showKeyboard":true,"contactName":"Alex"},"dialogue":[{"speaker":"Alex","text":"ok I just sent you the address"},{"speaker":"Me","text":"wait this says it's a 3 hour drive??"},{"speaker":"Alex","text":"yeah but the views are insane trust me","reactions":["😍"]},{"speaker":"Me","text":"you said that about the last hike"},{"speaker":"Alex","text":"I personally spoke to every bee in the area","reactions":["πŸ˜‚"]},{"speaker":"Me","text":"fine but you're buying coffee"}]}'

Machine-readable reference: /api/spec Β· Plain text: /for-llms.txt

Agents write. You direct.

Or skip the connector and start a texting video by hand. The editor runs entirely in your browser.

Open the editor