Publish Instagram Reels from Claude Code with a draft and approve step

Suhail Roushan runs a startup's Instagram and Threads from Claude Code; after a Reel went out with the wrong weekday burned in, the agent now drafts, checks dates with a tool and waits for approval.

Done withClaude CodeinMetaCloudinary· Nov 11, 2026

What they did

Suhail Roushan runs the social accounts for ShipX, a product launch platform he is building, from Claude Code. The setup has an Instagram MCP server for reading media, comments, DMs and insights and for replying to comments, plus two small CLIs he wrote that publish Reels, stories and images to Instagram and posts to Threads from local files. Tokens sit in the macOS Keychain and the scripts read them at runtime. A skill file holds the brand voice, colours, hashtags and posting rules, and Claude decides what to post. Images go to Cloudinary first, because Instagram only takes JPEGs at a public URL.

How it went

Posting worked, but a launch-week Reel went live with "Sunday, 19 Oct" burned into the video when Sunday was the 18th. Instagram's API cannot delete or edit a post, so it had to be removed by hand on a phone. Later, one of the two Meta developer apps behind his tokens was deleted and every token it had issued stopped working at once. He now has the publish CLI stop after creating the media container, shows the caption and a preview frame, and posts only after he says go.

Worth knowing

Have the agent compute every date and weekday with a command instead of assuming it. Instagram publishing is two steps (create a container, then publish), and a draft container lasts 24 hours, which makes a natural approval point. Captions cannot carry clickable links, and PNG images are rejected. Threads posts can be deleted through the API; Instagram posts cannot.

Try it

With Claude Code· 3 parts to fill in

You manage the Instagram account [account handle] using [my publishing CLI or MCP server]. Before writing any date or weekday into a caption or a video, compute it with a command, never from memory. For each post, prepare the media and caption following [my brand rules file], upload it as a draft container only, then show me the caption, a preview frame and every date it contains. Do not publish until I reply with approval for that exact post. If any token or API call fails, stop and tell me the error instead of retrying with other credentials.

Square brackets are the parts to fill in. The prompt is ours; the story is theirs.

Where they said it

Related