With X's built-in scheduler
- Open the composer and write your post.
- Click the calendar icon.
- Pick a date and time.
- Click Schedule.
Handles single posts, media, quotes and polls. Not threads, other platforms or scripting. Test it before relying on it.
With Statuz
A free CLI for X, Bluesky, Mastodon, LinkedIn and Reddit. You or your agent run it.
Set up once
X only lets registered apps post, so locally you use your own X developer app (step by step). Callback: http://127.0.0.1:3851/callback/x. Or skip it: Statuz Cloud posts with its own X app.
npm i -g statuz-cli
statuz config set --key x.client-id --value <client id>
statuz accounts connect --platform x
statuz startThe daemon (statuz start) sends scheduled posts and survives reboots. No developer app? Statuz Cloud posts with its own, a few cents per post.
Schedule a tweet
statuz posts create --text "Shipping v2 today" --to x --at "tomorrow 9am"--at: ISO time or words like "fri 17:30". Omit to post now. See Scheduling.--media ./shot.pngadds an image.--draftkeeps it for later.
Schedule a thread
statuz posts create --to x --at "mon 8am" \
--text "1/ We rewrote our scheduler. Here's what we learned." \
--text "2/ Clocks lie. Store UTC, show local." \
--text "3/ Retries need a budget, or they become an outage."Each post replies to the one before. All are checked against X's 280 characters before saving.
Also post to Bluesky and Mastodon
statuz posts create --text "Release notes are up" --to x --to bluesky --to mastodonLimits: X 280, Bluesky 300, Mastodon usually 500. See the cross-posting guide.
Let an agent do it
claude mcp add statuz -- statuz mcpSchedule three launch posts on X at 9am Monday, Wednesday and Friday. Make the first a thread.
When to post on X
- Weekday mornings, 8–10am local.
- Lunch, 12–2pm.
- Early evening, 5–7pm.
- Monday to Wednesday tend to be strongest; Friday afternoon drops off.
Your own analytics beat any average.
Don't schedule
- Reactions to news.
- "Happening now" posts.
- Replies.
Multiple accounts
statuz posts create --text "Hiring: backend engineer" --to @acme_jobs
statuz accounts default --account @acmeTroubleshooting
- Didn't publish:
statuz status, thenstatuz accounts check. Retry withstatuz posts publish --id <id>. - Wrong time:
statuz config set --key timezone --value Europe/Lisbon, or--timezoneper post. - Upload failed: compress the file; X has size limits.
Built-in vs. Statuz
| X | Statuz | |
|---|---|---|
| Single posts | Yes | Yes |
| Threads | No | Yes |
| Other platforms | No | Bluesky, Mastodon, LinkedIn |
| AI agents | No | CLI and MCP |
| Cost | Included | Free locally; Cloud per post |
Start with the quick start.