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.