Mastodon scheduler with approval for any instance

Mastodon's API can schedule posts, but it has no review step and no notion of an AI author. SocialHandoff adds both: agents draft, you approve, and the post goes to your instance at the time you set.

Limits

Character limit500 characters on a default Mastodon server. Each instance can raise it, so check yours.
LinksEvery URL counts as 23 characters, however long it is.
Media per postUp to 4 attachments on a default server.
File sizesImages up to 16 MB and video up to about 99 MB on a default install. Instances can set their own limits.
Alt textUp to 1,500 characters per attachment. Many people on Mastodon skip posts without it.
Rate limits300 API requests per 5 minutes per account by default, with a stricter limit on media uploads.
  • Always add alt text. The fediverse treats it as basic courtesy, and SocialHandoff can block drafts that miss it.
  • Use content warnings for spoilers and heavy topics if your instance expects them.
  • Use CamelCase hashtags so screen readers read each word.
  • Post as yourself or a clearly labeled project account; many instances require bot accounts to be marked as bots.

How Mastodon scheduling works natively

Mastodon supports scheduled posts in its API: a client sends a scheduled_at time and the server holds the post. The default web interface does not expose scheduling, so most people use an app or tool for it. Either way, the server holds exactly what was sent, with no reviewer in between.

Why add approval on Mastodon

Mastodon communities have their own norms, set by each instance. Automated posting is tolerated when it is useful and labeled, and noticed fast when it is not. An agent that forgets alt text or posts the same link four times will get muted or reported. In SocialHandoff, drafts from an agent wait in the approval inbox. You see the preview with its length check and alt text status, fix anything inline, and approve. Guardrails can refuse drafts with missing alt text before they reach you.

What SocialHandoff supports on Mastodon

  • 500-character default check in guardrails; adjust the per-network length rule if your instance allows more.
  • Reply-chain threads, each part a reply to the previous one.
  • Up to 4 attachments with alt text, with SocialHandoff waiting for the server to finish processing media before posting.
  • Idempotency keys on every status. Mastodon honors the Idempotency-Key header, so a retried post never appears twice and a thread resumes where it stopped.
  • Any public instance. Connect with an access token, or let SocialHandoff register an app on your instance for OAuth.
  • Per-post metrics where the API returns them.

API notes

Mastodon instances enforce their own rate limits, with defaults of 300 requests per 5 minutes per account and a separate, tighter budget for media uploads. SocialHandoff reads rate-limit reset headers and backs off. Instances must be reachable on the public internet; private addresses are refused unless a self-hosted install explicitly allows them.

Tools and agent guides

Use the cross-post length checker to see whether one draft fits Mastodon, X, and Bluesky at once, and the thread splitter for longer pieces.

Agent setups for Mastodon: Cline for Mastodon, CrewAI for Mastodon, VS Code for Mastodon, and GitHub release posts on Mastodon. Connection steps are in Connect Mastodon.

Mastodon with AI agents

Frequently asked questions

Does SocialHandoff work with any Mastodon instance?
Yes, with any instance reachable on the public internet. Connect with an access token or let SocialHandoff register an app on the instance.
What if my instance allows more than 500 characters?
Mastodon's API reports each instance's limit. SocialHandoff checks 500 by default; change the per-network length guardrail to match your instance.
Can a retry post the same toot twice?
No. SocialHandoff sends an Idempotency-Key with every status, and Mastodon returns the original post for a repeated key.

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