Gemini CLI + iHatePosting

Post to social media from Gemini CLI

Connect Gemini CLI to iHatePosting and ask it to write, schedule and publish posts to 15 social networks. iHatePosting's hosted MCP server gives Gemini CLI 16 tools to create, reschedule and check posts, with you approving everything in one calendar. Setup takes about a minute and is included in the free 90-day trial.

Connect iHatePosting to Google's Gemini CLI with a short block in settings.json, then schedule posts to 15 networks from your terminal. Free 90-day trial.

Nothing is published unless you ask for it in that message.

Coding agents and editorsGoogle

Gemini CLI reaches iHatePosting's hosted server from a short block in settings.json. type: http tells Gemini CLI to use Streamable HTTP, the only kind of server ours is. Gemini CLI's own docs still call url an SSE address, but since version 0.21 the code reads url with type http as Streamable HTTP.

How do I connect iHatePosting to Gemini CLI?

It takes about a minute. Nothing here needs a download, and the only thing you carry between the two apps is a key you can revoke whenever you like.

  1. 1Step 1

    Create an iHatePosting API key

    Sign in, open Settings → Developers and create a key. It starts with pk_live_, and the same page can show it again whenever you need it.

  2. 2Step 2

    Add iHatePosting to Gemini CLI

    Add to ~/.gemini/settings.json. Replace YOUR_API_KEY with your key.

    Gemini CLI — connector
    {
      "mcpServers": {
        "ihateposting": {
          "url": "https://ihateposting.com/mcp?client=gemini",
          "type": "http",
          "headers": {
            "Authorization": "Bearer YOUR_API_KEY"
          }
        }
      }
    }
  3. 3Step 3

    Ask it to post

    Tell Gemini CLI what you want to say and where. It saves a draft in iHatePosting unless you ask for the post to go out now or at a set time.

What is different about Gemini CLI

Every client reaches the same server, and then behaves like itself. These are the things that are true here and not somewhere else.

Keep the type line. From version 0.21 Gemini CLI reads url with type http as Streamable HTTP, which is the only kind of server ours is. On 0.20 or older, type is ignored and url means SSE, which never connects — there, write httpUrl in place of url and drop the type line. httpUrl still works on current versions; the code calls it deprecated but shows no warning unless url is set as well.

Restart Gemini CLI after editing settings.json — it reads MCP servers only at start-up.

Folder trust is on by default. The first time you run gemini in a folder it asks whether you trust its files — choose Trust folder. To change it later, run /permissions trust in a session, choose Trust this folder and press r to restart. Until a folder is trusted, no MCP server loads there, not even one from your user settings: /mcp shows No MCP servers configured, gemini mcp list shows it as Disabled, and gemini -p runs without it.

There is a one-command route too: gemini mcp add --scope user --transport http --header "Authorization: Bearer YOUR_API_KEY" ihateposting https://ihateposting.com/mcp — then run gemini mcp list in a folder you trust to see whether it connected (in any other folder it shows Disabled). Connected only means the server answered, not that the key is right; ask Gemini which iHatePosting account it is using to check the key.

Since 18 June 2026 Gemini CLI no longer serves Google AI Pro and Ultra subscribers or free Gemini Code Assist for individuals — Google points them to Antigravity CLI. It keeps working with paid Gemini API keys and Code Assist Standard or Enterprise licences.

Google's own documentation: MCP servers with Gemini CLI

Nothing goes out unless you say so

Every post Gemini CLI writes is saved as a draft in iHatePosting unless you ask for it to be published now or at a set time. Publishing, rescheduling, retrying and deleting are marked as actions that change things, so clients that honour those markings ask you before they run them. Deleting a post in iHatePosting never removes one that is already live on a network.

What is the iHatePosting MCP?

MCP — the Model Context Protocol — is the standard way an assistant plugs into an app it does not own. Our server exposes the accounts you have connected to Gemini CLI as tools, so it can draft, check and schedule without you opening a dashboard.

How Gemini CLI uses it

  • You add the connector once — by signing in, or with a key you create
  • Gemini CLI reads which accounts you have connected, and each network's rules
  • It writes a version per network and checks it against those rules before sending
  • It saves a draft, schedules it, or publishes — exactly as your message said
  • It works alongside whatever other tools Gemini CLI already has
tools Gemini CLI can call
# read and check (9)
whoami              list_accounts
list_posts          get_post
get_analytics       get_platform_rules
list_media          list_pinterest_boards
validate_post

# write (7)
create_post         update_post
reschedule_post     delete_post
retry_post          upload_media
open_upload_widget

Cost, access and what to do when it breaks

What does it cost?

The connector costs nothing on top of iHatePosting. iHatePosting has one plan: $15/month billed annually, or $19/month billed monthly, with unlimited social accounts. It is free for 90 days, no credit card needed, and everything is included during the trial: unlimited accounts, unlimited posts, every feature.

How is access secured?

Either you sign in to iHatePosting and approve access, or you create an API key in Settings → Developers. That page can show your key again whenever you need it. Whichever route you take, it reaches only the accounts you have already connected, and you can revoke it at any time without touching the accounts themselves.

Something not working?

  • It cannot see any accounts: connect them in iHatePosting first, then ask it to list them again.
  • You regenerated your key and it still fails: Regenerate revokes the old key the moment you press it, and a client that is already running keeps sending the old one until you genuinely restart it.
  • A post failed: open it in iHatePosting — the failure names the network and repeats what that network actually said.

Frequently asked questions

Why does /mcp say No MCP servers configured?

The folder is not trusted yet. Until it is, no MCP server loads there, not even one from your user settings. Run /permissions trust in a session, choose Trust this folder and press r to restart.

Do I need the type line?

Yes. From version 0.21 Gemini CLI reads url with type http as Streamable HTTP, the only kind of server ours is. On 0.20 or older, write httpUrl in place of url and drop the type line.

Can I use Gemini CLI with a Google AI Pro or Ultra subscription?

Not since 18 June 2026, when Google stopped serving those subscribers in Gemini CLI and pointed them to Antigravity CLI. Gemini CLI keeps working with paid Gemini API keys and Code Assist Standard or Enterprise licences.

Is the Gemini CLI connector free?

Yes. The connector costs nothing on top of iHatePosting, and iHatePosting is free for 90 days, no credit card needed. After that it is $15/month billed annually, or $19 month-to-month, with unlimited accounts.

Which networks can Gemini CLI post to?

Any account you have connected in iHatePosting, across 15 networks: Instagram, Facebook, LinkedIn, X, Threads, TikTok, YouTube, Pinterest, Bluesky, Mastodon, Telegram, Discord, Slack, Tumblr and Google Business Profile.

Can Gemini CLI schedule posts for a specific date and time?

Yes. Put the date and time in the prompt — for example "schedule this for Friday at 9:00 AM" — and Gemini CLI schedules the post for then. iHatePosting reads the time in your account's timezone, and you can ask Gemini CLI to move a scheduled post to a new time.

Gemini CLI vs Antigravity CLI: which page do you need?

Google makes both, and iHatePosting works with both of them. This page is for Gemini CLI. Pick the one you actually type into — the setup differs, and the wrong page will have you pasting a key in a place that has no box for it.

One connection reaches every network

Connect your accounts in iHatePosting once. From then on Gemini CLI can post to any of them, and we publish at the time you set — even after you close the chat.

  • Bluesky
  • X
  • LinkedIn
  • Facebook
  • Instagram
  • Threads
  • Pinterest
  • TikTok
  • YouTube
  • Mastodon
  • Telegram
  • Discord
  • Tumblr
  • Google Business
  • Slack

Ready to post everywhere from Gemini CLI?

Start your 90-day free trial — no credit card, about a minute to your first post.

Sign Up