BAT
X (Twitter) scheduling tool

Schedule X, threads included.

BAT writes and schedules tweets, full threads, and long-form X posts, then publishes them natively when they are due. Honest note up front: X profile and analytics data is gathered via a third-party scraper, not the first-party X analytics API.

3
Native types: tweet, thread, long-form
1
Calendar across every network
0
Double-publishes (atomic claim)
$100/mo
Brands Starter, one workspace

Native X post types, not just single tweets.

BAT publishes the post types X actually supports: tweet, thread, long-form. A thread goes out as a connected chain, and long-form lands as long-form, drafted from your brand brain and queued in its native shape.

Single tweets

Draft a one-shot tweet in your brand voice, send it through review, and schedule it. The post goes out through X's real API, not a generic relay that flattens everything to plain text.

Full threads

Plan a multi-post thread as one unit. BAT keeps the hook, the body posts, and the close together so the chain publishes in order at the scheduled time, rather than as disconnected tweets.

Long-form posts

When the idea needs room, schedule a long-form X post instead of forcing it into a thread. BAT drafts it from the brand brain and queues it natively alongside your tweets and threads.

How a scheduled thread actually ships.

Scheduling is only as good as the worker that fires the post when the clock hits. BAT runs a background worker so a queued tweet or thread goes out whether or not anyone has the app open.

  • Draft it from the brand brain. BAT writes the tweet, thread, or long-form post in your brand voice, grounded in the per-brand brain (voice, audience, content pillars), so it reads like you and not like generic AI filler.
  • Review before it queues. Every post moves DRAFT to PENDING_REVIEW to APPROVED before it can be scheduled. Nothing reaches X without someone signing off, so a half-baked thread never auto-posts.
  • The worker claims it atomically. When a post is due, the scheduled-publish worker atomically claims it before sending. That claim is what prevents a retry or a race from posting the same thread twice.
  • It fires through the native X publisher. The post goes out through X's own API connection, so a thread stays a thread and a long-form post stays long-form. Status flows back to the one calendar that spans every connected network.

AI send times from your own X history.

BAT does not guess at generic best times. It reads your own engagement-by-hour history and suggests when a tweet or thread should land, falling back to a platform-canonical default only when there is not enough of your own data yet.

Learned from your engagement

Suggested posting times derived from your own historical engagement-by-hour, with a platform-canonical fallback.

Per-platform, not one read

Send-time suggestions are computed per network. What lands well on X rarely matches a LinkedIn or TikTok window, so X gets its own read rather than a shared best-time guess.

A sensible default to start

On a brand-new workspace with little X history, BAT uses a platform-canonical fallback time so the calendar is useful from day one, then sharpens as your own data accrues.

The honest part about X data.

Profile data via scraper, not the first-party analytics API. BAT can publish to X natively, but the profile and analytics numbers it shows for X are collected by a third-party scraper, not pulled from X's first-party analytics API. We say this plainly so you know exactly what the data is.

That makes X different from LinkedIn, Instagram, and Facebook, where analytics are first-party. For X, treat the profile and competitor numbers as scraper-derived: useful for direction and benchmarking, refreshed on periodic or on-demand runs rather than as a live first-party feed.

There is also no post-publish recall. Approval and cancellation happen before a tweet or thread goes live, never after. If you need to stop something, you stop it in review, not by pulling it back once it is on X.

One idea, all eight networks.

X is one of 8 networks BAT publishes to natively. Write a thread for X, and in the same workflow fan the idea out to LinkedIn, Instagram, Facebook, TikTok, YouTube, Threads, and Pinterest, each in its own native format.

LinkedInInstagramFacebookX (Twitter)TikTokYouTubeThreadsPinterest

Where to go next.

X scheduling is one face of the same calendar, brain, and content engine. These pages go deeper on the broader scheduling surface and on AI drafting.

Schedule every platform

See how BAT schedules and auto-publishes across all eight networks from one calendar, with the same publish worker behind every post.

Generate the content

BAT drafts tweets, threads, and long-form X posts from your brand brain. See how the AI content generator writes on-brand across every network.

Schedule the sibling networks

Threads is right next door for short text, and LinkedIn handles long-form and documents. Schedule Threads at /threads-scheduler and LinkedIn at /linkedin-scheduling-tool.

Review before it ships, not after.

Scheduling without review is how the wrong thread goes live. BAT puts a real approval gate in front of the scheduler, so only signed-off X posts ever reach the worker.

  • Per-platform AI drafting tuned to each network; drafts land in an approval queue, never auto-posted.
  • A scheduled-publish worker that atomically claims due posts and fires them, preventing duplicate sends from retries or races.
  • Schedule a single idea out to multiple platforms, each in its native format.

Frequently asked questions.

Can BAT schedule threads, or just single tweets?

Both, plus long-form. BAT publishes the native X post types: tweet, thread, long-form. A thread is planned as one unit so the hook, body, and close go out as a connected chain at the scheduled time, not as disconnected tweets.

Does BAT publish to X natively or through a relay?

Natively. X has its own OAuth connection and publisher in BAT, so a scheduled tweet or thread goes out through X's real API in its native format rather than a lowest-common-denominator bridge. You connect X once and schedule from the same calendar as every other network.

Where does BAT get X analytics from?

Honestly: from a third-party scraper, not X's first-party analytics API. Profile data via scraper, not the first-party analytics API. That is different from LinkedIn, Instagram, and Facebook, where analytics are first-party. Treat the X profile and competitor numbers as scraper-derived, refreshed on periodic or on-demand runs.

How does BAT pick the best time to post on X?

It suggests send times from your own historical engagement-by-hour, computed specifically for X. On a new workspace with little history, it falls back to a platform-canonical default so the calendar is useful immediately, then sharpens as your own X data builds up. These are suggestions you can always override.

Will the same tweet or thread ever post twice?

No. The scheduled-publish worker atomically claims a due post before sending it, so a retry or a race cannot fire the same thread a second time. Double-publish prevention is built into how the worker claims work, not a setting you have to remember to enable.

Is there a free plan for X scheduling?

There is no free tier. BAT starts with a 14-day free trial and 200 credits with no card required, then Brands Starter at $100/mo for one brand workspace. Pricing is flat per workspace, not per seat, so adding teammates to the X calendar does not raise the price.

Start scheduling X with BAT

Write the thread, ship it on time.

Draft tweets, threads, and long-form posts from your brand brain, review them, and let the worker publish to X exactly once when they are due. Start free, no card required.

Start your free trial14-day free trial · 200 credits · no card