How to post to TikTok from Claude Code

To post to TikTok from Claude Code, run claude mcp add --transport http postwire https://postwire.io/api/mcp, sign in with your email, connect your TikTok account once, and ask "post ./demo.mp4 to TikTok, public". Claude Code writes the caption with generate_posts, asks who can see the post (TikTok requires the owner to choose), and publishes it with post_to_social or schedules it with schedule_post through TikTok's official Content Posting API. PostWire's TikTok app is already approved, so you build no developer app and pass no audit, and the free plan includes TikTok: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card.

The same works without the MCP server: npx skills add https://postwire.io --skill tiktok-upload installs PostWire's TikTok skill, which calls the REST API with your key. Either way Claude Code never sees your TikTok password, and a scheduled TikTok goes out from PostWire's servers with your terminal closed.

Updated . Written from PostWire's own code; vendor prices read on Oct 16, 2026. Live networks: TikTok, Instagram, YouTube, LinkedIn (personal profiles), Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.

Set it up and post, step by step

Prompt to copy once TikTok is connected: Write a TikTok caption for ./clips/launch.mp4 from what is in CHANGELOG.md, show it to me, and schedule it public for Friday at 7pm my time.

  1. Add PostWire to Claude Code

    In your terminal run claude mcp add --transport http postwire https://postwire.io/api/mcp (add --scope user to have it in every project), then type /mcp in Claude Code and pick postwire to sign in. The sign-in asks for your email and a 6-digit code, which also creates a free PostWire account if you have none: no password and no card.

  2. Or install the TikTok skill instead

    npx skills add https://postwire.io --skill tiktok-upload adds the skill to Claude Code (and to the other agents on the machine). It uses your key from the environment: copy it in the dashboard under API & MCP and set POSTWIRE_API_KEY. The skill is a plain file you can read first: tiktok-upload/SKILL.md.

  3. Connect your TikTok account

    Ask "connect my TikTok". Claude Code calls create_connect_link and prints a link; open it, sign in on TikTok's own page and allow PostWire to post. You do this once per account.

  4. Give it the video, or photos

    Give Claude Code a public https link to an MP4 or MOV file. A file on your computer goes through an upload page: ask for one (create_upload_link), pick the file there, and Claude Code gets its link. One file can be up to 100 MB on the free plan and 1 GB on paid plans. Photos instead of a video make a TikTok photo post of up to 35 images (PNG is turned into JPEG for you). No video yet? make_video_from_text turns a few lines into an 8-12 second vertical MP4 (1080×1920) to show you before anything is posted.

  5. Ask for the caption and pick who sees it

    "Write the caption." generate_posts returns a draft and publishes nothing: a hook-first line and a few specific hashtags, within TikTok's 2,200 characters. Then say who can see it: public, friends (mutual followers) or private. TikTok asks the account owner to choose this for every post; if nobody chooses, PostWire posts it private and says so in the result.

  6. Publish now, or schedule it

    Say "post it" and Claude Code calls post_to_social. Say "schedule it for Friday at 7pm" and it calls schedule_post, up to 365 days ahead, or with run_at: "next_slot" for your next free posting hour. This is the call:

    {
      "name": "schedule_post",
      "arguments": {
        "platforms": ["tiktok"],
        "per_platform": { "tiktok": {
          "text": "We cut our build from 9 minutes to 2. Here is the one change. #devtools #ci #buildinpublic"
        } },
        "video_url": "https://example.com/clips/launch.mp4",
        "privacy": "public",
        "run_at": "2026-10-23T19:00:00-05:00"
      }
    }
  7. Get the link

    TikTok processes the video after the call returns. Claude Code calls get_post_status with the returned id until it has the TikTok link, usually within a minute or two. If TikTok refuses the video, the result carries a code, what happened and the fix.

"What's scheduled on TikTok?" calls list_scheduled_posts and "cancel Friday's TikTok" calls cancel_scheduled_post; the same queue is on the dashboard's Queue page. Prefer to set it up by hand first? Open the dashboard, connect the account under Accounts and copy your key under API & MCP.

Ways to post to TikTok from Claude Code, side by side

How each service plugs into Claude Code and what it costs to start, read on its own Claude Code and pricing pages on Oct 16, 2026.

ServiceHow it plugs into Claude CodeTikTok on the free startCheapest paid planWrites the caption
PostWireclaude mcp add with https://postwire.io/api/mcp, or the tiktok-upload skillYes — free plan: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card$9/mo — 3 businesses, every network in each postYes — generate_posts, hook first, with each other network's version
Postizclaude mcp add with mcp.postiz.com/mcp-oauth-dynamic, or the Postiz skill7-day free trial$29/mo — 5 channelsNot listed
Upload-Postnpx skills add Upload-Post/upload-post-skillFree plan of 10 uploads a month, without TikTok$24/mo — 5 profilesNot listed

Checked on Oct 16, 2026 (2026-10-16) on each vendor's own pricing or docs page, linked in the first column and below. Monthly billing in USD unless noted. "Not listed" means we could not find it on their page, not that it is missing.

Where PostWire is ahead

  • TikTok on the free plan: 20 posts a month, no card and no time limit. Upload-Post's free plan leaves TikTok out; Postiz starts with a 7-day trial.
  • The cheapest paid plan here: $9 a month for 3 businesses. Upload-Post $24, Postiz $29.
  • The caption is written for TikTok: generate_posts writes a hook-first caption and, from the same idea, the YouTube title and the other networks' versions in the same request.
  • No video yet is fine: make_video_from_text makes an 8-12 second vertical MP4 from a few lines, to post to TikTok or YouTube Shorts.
  • Both doors, one account: the MCP server for a chat, the tiktok-upload skill or the REST API for a script, with the same queue and the same connected TikTok.
  • A person approves what Claude Code queued: on paid plans, approval rules hold the post until you approve it from an emailed link.
Sources, all read on Oct 16, 2026:

Why post to TikTok from Claude Code

  • The clip and the facts are already on your machine: a screen recording in ./clips, the release notes in the repo. Claude Code writes the caption from what actually shipped.
  • One video, three feeds: "post this to TikTok and YouTube Shorts" sends the same file to both, each with its own caption and a YouTube title. On the free plan one post reaches 2 networks; paid plans (from $9 a month) add Instagram Reels and the rest in the same request.
  • Scripts: claude -p "schedule ./clips/launch.mp4 to TikTok, public, Friday 7pm, caption from CHANGELOG.md" --allowedTools "mcp__postwire__*" runs the same thing without a chat.
  • A person can have the last word: on paid plans, a brand's approval rules hold what Claude Code queues until you approve it from an emailed link.

Source: PostWire's MCP server, TikTok integration and plans, read Oct 16, 2026.

TikTok's rules Claude Code works within

  • Caption up to 2,200 characters; an emoji counts as 2.
  • A video, or 1 to 35 photos. TikTok takes no text-only posts.
  • Who can see it is chosen by the account owner for every post: public, friends or private. Branded content cannot be private.
  • Through TikTok's official Content Posting API and the permission you grant on TikTok's own page. No browser automation or session cookies, which get accounts restricted.

What it does not do

PostWire does not upload to your TikTok drafts to finish in the app: it publishes the post (or schedules it). It does not add TikTok sounds, does not edit or cut the video, and does not read or answer comments. For a cut-down clip, cut it first and give Claude Code the finished file.

Questions people ask

Can Claude Code post to TikTok?

Yes, with an MCP server or a skill. Claude Code has no TikTok access of its own; with PostWire added (claude mcp add --transport http postwire https://postwire.io/api/mcp) and your TikTok account connected once, it writes the caption, publishes and schedules TikToks when you ask.

Do I need a TikTok developer app or an audit?

No. PostWire's TikTok app is already approved for the Content Posting API: you sign in on TikTok's own page and allow PostWire to post. Without an audited app, TikTok keeps API posts private.

Can Claude Code schedule TikTok posts?

Yes. It calls schedule_post with a time up to 365 days ahead, or "next_slot" for your next free posting hour, and PostWire publishes the TikTok at that time with Claude Code closed. The free plan keeps 3 posts waiting at once; paid plans have no such limit.

Why did my TikTok go out as private?

TikTok asks the account owner to choose who can see each post. If the request says nothing, PostWire posts it private rather than make it public for you, and the result says so. Ask Claude Code for "public" and it sends privacy: public.

Can it post a TikTok photo carousel?

Yes. Give Claude Code 1 to 35 images and it makes a TikTok photo post; PNG files are turned into JPEG for you.

Can it post the same video to YouTube Shorts and Instagram Reels?

Yes, in the same request, each with its own caption. On the free plan one post goes to 2 networks (for example TikTok and YouTube); paid plans send it to all of them at once.

How much does it cost?

The free plan includes TikTok, the MCP server and the skill: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card. Starter is $9 a month for 3 businesses and Pro $29 for 10, with every network in each post; paid plans have a 14-day refund.