# Flaghand vs Typefully for posting with AI agents

Typefully and Flaghand both let an AI agent (Claude, ChatGPT, Claude Code, Cursor or your own) draft your posts through
an API or an MCP server. The difference that matters is who can make a post go live. In Typefully, that depends on whose
access the agent was given. In Flaghand, an agent's credential never can.

Every Typefully fact here comes from Typefully's own [pricing page](https://typefully.com/pricing),
[API reference](https://typefully.com/docs/api) and
[help center](https://support.typefully.com/en/articles/13128440-typefully-mcp-server), read on October 25, 2026. Prices
and features change, so check those pages before you choose.

## The short answer

- **Choose Typefully** for a free plan, more networks, X analytics, AI writing help or a team that writes together.
- **Choose Flaghand** if your agent writes the posts and you want a rule the server enforces: nothing goes out until you
  approve the exact post with your passkey.

## Where Typefully is better

- **It has a free plan.** Free costs $0 and includes agents, the API and MCP, with 1 social set, 1 user, 10 posts a
  month and limited media uploads. Flaghand has no free plan, and it's in early access: sign-up isn't open yet.
- **More networks.** Typefully publishes to X, LinkedIn, Threads, Bluesky, Mastodon and Substack. Flaghand posts to X
  and LinkedIn personal profiles.
- **More for writers and teams.** An AI writing assistant, X analytics from the Creator plan up, and on Business,
  collaborative writing, comments, Slack notifications, and teams with roles and permissions.
- **More integrations.** Zapier and Notion integrations. Both tools have an API, an MCP server that signs in by OAuth
  (Typefully's is at `https://mcp.typefully.com/mcp`), a skill for coding agents and webhooks.

## Who can publish

Typefully's API keys "inherit the same permissions as the user who created them". Creating a draft needs WRITE access.
Scheduling or publishing needs PUBLISH access, and `"publish_at": "now"` publishes at once. Its MCP server can "create,
edit, schedule, and manage drafts", and one of Typefully's own example prompts is "Schedule this post for tomorrow at
9am". Free and Creator have one user, so the key or MCP connection you give an agent can schedule and publish.

Typefully's Business plan has a Write role that can create and edit drafts but not schedule or publish them. Since keys
inherit their creator's access, a key made by a separate Write-role user can't publish. With that access an agent can
also plan a post: `plan_at` puts it on the calendar, where it "never auto-publishes until confirmed".

Flaghand doesn't depend on whose key it is. No API token scope can approve, schedule or post, on any plan. Those routes
refuse every token and accept only an owner of the workspace, signed in with a passkey. Apps that connect to Flaghand's MCP
server by OAuth, such as Claude and ChatGPT, get a draft-only token: `read`, `drafts`, `media` and `request-approval`.

## What you approve

In Typefully, whoever has publish access schedules the post: a person, or an agent using their key. On a team, only
users with publish access can edit a post once it's scheduled.

In Flaghand, the agent checks its drafts and asks you to approve them. Approving freezes each post into a snapshot: the
account, the time, the text, every media file and its alt text, and the exact request that will be sent. Flaghand hashes
it with SHA-256 and records your passkey signature over the hash. Changing the text, media, account or time needs a new
approval, and the scheduler checks the signed snapshot again right before posting.

Both show a preview before anything is scheduled. Typefully promises "pixel-perfect previews". Flaghand draws X and
LinkedIn posts to match the real sites, and its check flags anything that wouldn't post exactly as previewed.

## After it posts

Flaghand reads each X post back and compares it with what you approved: normalized text, author, hidden reply mentions,
media count, available alt text, reply chain and quote. It doesn't verify link destinations or the media files
themselves, and LinkedIn posts aren't read back. Typefully's API reference, read on October 25, 2026, describes no
comparison like this.

## Side by side

| | Typefully | Flaghand |
|---|---|---|
| Free plan | Yes: 1 social set, 10 posts a month, with the API and MCP | No |
| Paid plans | Creator $99 a year (annual billing only); Business $20 a month per social set, or $18 billed yearly | Early access; sign-up isn't open yet |
| Networks | X, LinkedIn, Threads, Bluesky, Mastodon, Substack | X and LinkedIn personal profiles |
| Agent access | API, MCP (OAuth or API key), Agent Skills, webhooks, Zapier | API, MCP (OAuth or API token), agent skill, webhooks |
| Can the agent's credential publish? | Yes, if its user can publish. On Free and Creator, the only user can | No, on any plan |
| Approval | A user with publish access schedules the post | Your passkey signature over the exact post |
| Check after posting | Not described in the API reference | X: text, mentions, media count, alt text, thread and quote. LinkedIn: none |

## Moving your drafts over

Flaghand's [migration recipe](https://app.flaghand.com/docs/agents#migrate-from-another-scheduler) reads Typefully's API format: the
full drafts, not the queue list's previews, with their media. An agent with read access to Typefully can read your
queued drafts and create them in Flaghand. From a saved file, `flaghand import FILE --dry-run` shows what it would
create, and the same command without `--dry-run` creates it (the CLI isn't on npm yet). Either way it only creates
drafts: nothing is approved or scheduled, Typefully's times come over as proposed times, and Typefully keeps posting its
queue until you change it there.

## Try Flaghand

The [agent documentation](https://app.flaghand.com/docs/agents) covers the API and the MCP server.
[How to let an AI agent post on social media safely](/docs/guides/let-an-ai-agent-post-safely) has nine checks to run on
any tool, this one included. [Get access to Flaghand](/schedule).

[All guides](/docs/guides.md)
