Guide

How to make TikTok videos from Claude Code

If you already live in a terminal, the fastest way to make a Reddit story video is to not open a video tool at all. Install StoryTok as an MCP server, ask Claude Code for the video, approve the cost, and the MP4 lands in your folder. Here is the whole loop, with the real transcript, and what it costs.

claude mcp add storytok -e STORYTOK_API_KEY=stk_live_… -- npx -y storytok-agent mcp

Replace stk_live_… with a key from Settings, Developer API. Other clients: install lines for Codex, Cursor, Windsurf and Claude Desktop.

  1. Step 1

    Install the MCP server

    Create an API key under Settings, Developer API, then run one command in your terminal: claude mcp add storytok -e STORYTOK_API_KEY=<your key> -- npx -y storytok-agent mcp. That registers StoryTok as a tool server for Claude Code. There is nothing to host and no OAuth screen; the key is the whole setup. If you would rather not paste a key, npx -y storytok-agent login opens a code page in the browser and stores one for you.

  2. Step 2

    Ask for the video

    Open Claude Code in the folder where you want the file and describe the video the way you would to a person: the format, the story or a Reddit URL, the footage, the caption look, roughly how long. Claude reads the tool descriptions, calls get_catalog for the real voice and background ids, and drafts the script itself.

  3. Step 3

    Read the estimate

    Before anything is charged, Claude calls create_story_video without confirm and gets back an estimate: about how many seconds, how many credits, and your balance. It shows you the script and the cost together. If the estimate is more than your balance the tool refuses to confirm and tells you the shortfall.

  4. Step 4

    Say yes

    Only after you agree does Claude call the tool again with confirm: true. Credits are reserved from the estimate and the job is queued. If you change your mind about the voice or want it shorter, say so first; every change is a new estimate, not a new charge.

  5. Step 5

    Wait

    A story renders in roughly one to three minutes. Claude calls wait_for_job, which blocks until the job is completed or failed and reports the credits actually charged, settled on the measured length rather than the estimate. A failed render refunds itself.

  6. Step 6

    Download, then post

    download_job saves the 1080×1920 MP4 into your current folder (or one you name) and returns the path. The same video is in your StoryTok library. Claude Code cannot publish it: the MCP server, the CLI and the API render and download only. Post the file yourself, or open the video in the StoryTok web app and publish or schedule it to a connected TikTok, Instagram or YouTube account for 1 paid credit per account. That works for videos rendered on paid credits; trial videos are watermarked and cannot be published from StoryTok.

The transcript

This is what the loop looks like in Claude Code once the server is installed. Tool calls are shown inline; in the terminal they appear as collapsible tool blocks.

youMake a 60-second Reddit story about a roommate who kept replacing my coffee with decaf for a month. Minecraft footage, Hormozi captions, intro card on.
claudeI'll check the catalog first, then write the script and get a cost estimate before rendering anything.
claudeget_catalog: 63 included voices, 16 caption presets, 46 backgrounds. Using Matthew (US, included), background Minecraft 4, preset hormozi.
claudeScript (152 words): "For a month I thought I was losing my mind. Every morning I'd drink two cups and still fall asleep at my desk…"
claudecreate_story_video estimate: about 58 s, 1 credit. Balance 3 credits. Should I render it?
youyes
claudecreate_story_video (confirm): job 2c91… queued. wait_for_job: processing… completed in 104 s, 1 credit charged.
claudedownload_job: saved ./decaf-roommate.mp4 (1080×1920, 58 s). Balance 2 credits.

Tips for scripts the agent writes

  • Give it a length in seconds, not words. The agent converts: roughly 150 words is a minute in a US voice, closer to 115 in a UK voice, and the estimate confirms it before you pay.
  • Ask for an original telling, not a reading. If you hand it a Reddit URL, tell it to rewrite the post in its own words. Verbatim narration of someone else's post is what YouTube's inauthentic-content policy and TikTok's originality weighting target.
  • Name the hook. "Open on the moment I found out" gets a better first sentence than "make it engaging". The first two seconds decide whether the video gets watched.
  • Pick the voice by register. Matthew and Joanna carry self-deprecating comedy; Brian and Amy suit dry conflict and horror. Premium ElevenLabs voices sound better and cost 2 credits a minute, and the agent will say so when it suggests one.
  • Iterate on the estimate, not the render. "Shorter, one credit" or "swap the voice" produces a new estimate for free; only the confirmed call spends anything.
  • Keep one folder per channel and run Claude Code from it, so download_job drops every MP4 where you expect it.

What it costs

  • 3 free trial minutes at signup, no card. The key you create for Claude Code spends them like any other render.
  • After that, packs: $5 for 20 credits, $10 for 60, $50 for 360. 1 credit per rendered minute, rounded up with a 5-second grace period at each minute boundary; 2 with premium voices. Credits never expire.
  • Rendering from Claude Code spends render credits only. Publishing is a separate step in the web app, 1 paid credit per video per connected account.
  • Each key has a 24-hour cap of 30 credits by default, adjustable per key, so a runaway loop cannot empty a large balance.
  • Failed renders refund themselves, and identical inputs sent twice return the same job rather than charging twice.

Crayo has a REST API on paid plans and no MCP server or agent integration, and we found none at AutoShorts (September 2026). If you are comparing, see StoryTok vs Crayo and the Crayo API alternative pages.

Questions

Is it free to make a video from Claude Code?

The first three minutes are. Every new StoryTok account gets 3 free trial minutes with no card, for rendering only, and an API key works on any account. Trial videos carry a StoryTok watermark and cannot be published from StoryTok; videos rendered on paid credits have no watermark. After the trial a one-minute video costs about 17 cents on the $10 pack.

Can Claude Code post the video to TikTok for me?

No. The agent, the CLI and the REST API render and download; they cannot publish, schedule or connect social accounts. The finished video is also in your StoryTok library, where the web app can publish or schedule it to connected TikTok, Instagram or YouTube accounts. That needs a video rendered on paid credits and costs 1 paid credit per video per account.

Will Claude Code spend my credits without asking?

The tools are built so it should not. Creating a video takes two calls, and the first only returns the estimate. The tool description tells the agent to show you the cost and wait for a yes before confirming. Each key also has a 30-credit daily cap by default, and failed renders refund automatically.

Does this work in Cursor or Codex too?

Yes. The same package runs as an MCP server in Cursor, Windsurf, Codex and Claude Desktop; the install snippets for each are on the agents docs page. Anything else can use the CLI directly.

Make your first video from the terminal

3 free minutes at signup. Create a key, paste one line, ask.

Try StoryTok free

Keep reading