Schedule tweets and X threads with a human approval step

SocialHandoff lets an AI agent draft posts and threads for X, checks them against X's weighted character count, and holds them until a person approves. Then it publishes at the time you picked.

Limits

Character limit280 weighted characters for standard accounts. Most CJK characters and many emoji count as 2. Premium accounts can post longer, but SocialHandoff checks against 280.
LinksEvery URL is wrapped by t.co and counts as 23 characters, whatever its real length.
Media per postUp to 4 images, or 1 GIF, or 1 video.
File sizesImages up to 5 MB, GIFs up to 15 MB, video up to 512 MB (uploaded in chunks).
Alt textUp to 1,000 characters per image, set through the media metadata call.
ThreadsA thread is a chain of replies to your own post. SocialHandoff publishes each part as a reply to the previous one.
  • Put the point in the first line. A thread's first post has to stand alone because many people never expand it.
  • Count links as 23 characters when you plan length, and put the link in the last post of a thread if you want the earlier posts to read cleanly.
  • Add alt text to every image. SocialHandoff can flag a missing description before the post reaches the inbox.
  • Keep a steady pace instead of bursts. A per-account daily limit in SocialHandoff stops an agent from queueing 30 posts in one afternoon.

How to schedule tweets on X itself

X lets you schedule a single post from the web composer: write the post, click the calendar icon, pick a date and time, and confirm. Scheduled posts sit under the Unsent posts view. X Pro, the column-based dashboard for Premium subscribers, also schedules posts. Native scheduling works for one person writing by hand. It has no approval step, no idea which AI tool wrote the draft, and no record of who said yes.

Why schedule X posts with approval

X punishes mistakes quickly. A wrong version number, a leaked feature, or a joke that reads badly is quoted before you can delete it. When an agent drafts your posts, the fix is not to stop using the agent; it is to put a person between the draft and the timeline. In SocialHandoff, an agent creates a pending draft, a reviewer approves, edits, or rejects it, and only then does it publish. Publish-now has a 60-second undo window, and scheduled posts can be pulled back until they go out.

What SocialHandoff supports on X

  • Weighted 280-character check, the same counting X uses, so a draft that passes our check will fit.
  • Reply-chain threads. Each part is posted as a reply to the previous part.
  • Up to 4 media per post with alt text, uploaded with X's chunked upload and processing status checks.
  • Retries only for requests X rejected outright with a 429 rate limit. X has no idempotency key for posts, so on an ambiguous failure SocialHandoff stops and asks a person to check the account rather than risk a double post.
  • Per-post metrics where the API returns them, in the analytics view.

API notes

You bring your own X developer app: create a user-context OAuth 2.0 app with write access and add its client id and secret to your SocialHandoff environment. X sets write quotas and prices by access tier, and those change; check your developer portal for the current allowance before you plan a high-volume schedule. SocialHandoff respects Retry-After and rate-limit reset headers when X sends them.

Tools and agent guides

Check length before you ask for approval with the X character counter, and break a long draft into parts with the thread splitter. Media dimensions are in the image size guide.

To have an agent write for X, see Claude Code for X, Claude Desktop for X, Cursor for X, or GitHub release posts on X. Connection steps are in Connect X.

X with AI agents

Frequently asked questions

Can I schedule an X thread, not just one post?
Yes. SocialHandoff publishes a thread as a reply chain at the scheduled time. X's own composer schedules single posts, not threads.
Does SocialHandoff support long posts for X Premium?
No. SocialHandoff checks every X post against the standard weighted 280-character limit, so drafts fit any account.
What happens if X rate-limits a scheduled post?
If X answers 429, SocialHandoff waits for the reset time X reports and tries again. Other ambiguous failures stop the post and ask a person to check, to avoid duplicates.
Do I need my own X developer app?
Yes. You create an OAuth 2.0 app with write access on the X developer portal and add its credentials. Access tiers and quotas are set by X.

Let your agents post. Keep the final say.

Connect your first agent in minutes. Every draft waits in your inbox until you approve it.

14 days free. No card required.

The hosted version is opening soon

Leave your email and we will send one message when hosted accounts open, with your 14-day trial ready. Want it today? Self-host it free from the repo.

Start free trial