Verified October 2026

Or give your agent one line and let it do all of this, ending with your first post: set up https://postwire.io/SKILL.md (read the skill).

Give Gemini CLI the ability to post to social media

Gemini CLI can publish to TikTok, Instagram, Facebook Pages, YouTube, LinkedIn (personal profiles), Telegram, Bluesky, Mastodon and Discord once you connect PostWire as an MCP server (X and Reddit are not available yet). Below is the exact config for Gemini CLI — including the detail that makes a copied config fail silently.

Where the config goes

ScopePath
User scope (-s user)~/.gemini/settings.json
Project scope (the default).gemini/settings.json

Run the command in your terminal, then sign in from inside Gemini CLI.

Connect the hosted server (recommended)

Nothing to install — PostWire runs the server for you. The hosted server accepts an API key (an Authorization: Bearer header) or an OAuth 2.1 sign-in.

gemini mcp add -s user --transport http postwire https://postwire.io/api/mcp
# then, inside Gemini CLI:
/mcp auth postwire

PostWire's sign-in returns the iss parameter Gemini CLI checks (RFC 9207), so the browser sign-in completes.

The mistake that makes this fail silently

Two of them. Without -s user the server is saved for the current project only. And in settings.json the Streamable HTTP field is httpUrl — url means the older SSE transport. Gemini CLI also blanks environment variables whose name contains KEY or TOKEN, so a header like Bearer $POSTWIRE_API_KEY arrives empty: sign in with /mcp auth postwire instead.

Check it worked

Run gemini mcp list, or type /mcp inside Gemini CLI, and check that postwire is connected.

What it can do once connected

ToolWhat it does
generate_postsOne prompt in, a native draft per network out — respecting each one's character limit, hashtag rules and link conventions.
post_to_socialPublish to one or many networks in a single call.
get_post_statusCheck what happened to a post after it was accepted.
list_platformsWhich networks are available and which need approval.
my_accountPlan, usage and which brands are connected.
schedule_postQueue a post for a future time, up to 365 days ahead. Hosted server only.
list_scheduled_postsList queued, published, failed or canceled scheduled posts. Hosted server only.
cancel_scheduled_postCancel a queued post before it goes out. Hosted server only.
create_connect_linkA one-hour link the user opens to connect a social account. Hosted server only.

A prompt like "write a launch post for our new feature and publish it to TikTok, LinkedIn and Bluesky" becomes two tool calls: one to draft a native version per network, one to publish.

Networks differ more than people expect — X caps at 280 characters against YouTube's 5,000, Reddit has no hashtags, and TikTok, YouTube and Instagram all refuse text-only posts. See what breaks between any two networks.

What it costs to leave running

Nothing to try: one brand and 20 posts a month are free, no card — every network connects free, 2 per post. An agent posting daily passes that in a month — Starter is $9/month for 300 posts and three brands, Pro $29 for ten.

Get your key — free →

Questions people actually ask

Can Gemini CLI post to social media?
Yes, once you connect an MCP server that can publish. PostWire is one: add it to Gemini CLI with the config on this page and it gets 17 tools, including one that writes a native post per network and one that publishes.
Where does the MCP config live for Gemini CLI?
User scope (-s user): ~/.gemini/settings.json; Project scope (the default): .gemini/settings.json
Do I need approval from TikTok or Meta first?
No. PostWire has already been through those reviews, so you publish through its approved apps. Telegram, Bluesky, Mastodon and Discord need no review from anyone.

Source for the Gemini CLI config format: Gemini CLI MCP docs. Using a different client? See all of them.