Prompt
We just merged the PR that adds recurring invoices. Read the PR description and the new settings page copy, then draft a Threads post for small-business owners, not developers. No jargon, under 350 characters, one short line on how to turn it on. How to do it
- Mint a Threads agent key In https://app.socialhandoff.com, open Connections, connect your Threads account, then create an agent key scoped to Threads with draft permission only. Copy the key when it is shown; only its hash is stored.
- Register the server Run claude mcp add with the HTTP transport, pointing at https://app.socialhandoff.com/mcp and passing an Authorization: Bearer header with the Threads key. Use --scope user if you want it in every repository.
- Point it at your changes From the repo, ask Claude Code to read the diff, the merged pull requests, or CHANGELOG.md since the last tag and draft a Threads post from them.
- Review in the inbox Claude Code calls draft_post and returns the post id. Open the approval inbox, adjust wording if needed, and approve. Use schedule_post if you want a specific slot.
Example draft
You asked, we built it: recurring invoices. Set an invoice to repeat weekly, monthly, or yearly, and it goes out on its own with the same line items. Your clients get it on time and you stop copying last month's invoice by hand. Turn it on from any invoice with the new Repeat button.
Gotchas
- Threads fetches images and video from your instance at signed, expiring URLs, so you do not need a separate public media host. The API itself must be reachable over public HTTPS; an instance that only runs on localhost cannot publish media to Threads.
- Keep each Threads post within 500 characters, and remember that Threads counts emoji by their UTF-8 bytes, so a few emoji use more of the limit than they appear to. The per-network length guardrail flags longer drafts before they reach the inbox.
- A draft too long for one post can go out as a reply-chain thread, with each part published as a reply to the one before. Every part has its own 500-character limit, and a carousel of 2 to 20 images or videos can lead the chain.
- Claude Code registers MCP servers per project by default. Add the server with --scope user if you want Threads drafting available in every repository.
- Character limit: 500 characters per post. Emoji count as their UTF-8 bytes, so an emoji can use up to 4 characters of the limit.
- Links: Up to 5 links per post. Threads generates a preview for the first one.
- Carousels: 2 to 20 images or videos in one carousel post.
- Image files: JPEG or PNG, up to 8 MB. Threads fetches each file from a URL at publish time.
Frequently asked questions
Does Claude Code need the stdio server or HTTP?
Either works. HTTP at https://app.socialhandoff.com/mcp is simplest for the hosted app. The stdio server via npx -y socialhandoff-mcp suits a self-hosted instance on your machine.
Can Claude Code attach a screenshot to a Threads post?
Yes. Upload the image and SocialHandoff serves it to Threads at a signed, expiring URL, with alt text if you add it. The instance must be reachable over public HTTPS so Threads can fetch the file.
Can I post videos to Threads?
Yes. Threads takes a single video, or mixes videos and images in a carousel of 2 to 20 items. SocialHandoff serves the file at a signed URL, so the only requirement is that your API is reachable over public HTTPS.