planpo.st
ProductAgentsPricingBlog
Sign inStart free
planpo.st

The social scheduler your agent can run. Seven networks, post analytics, and revenue next to the post that earned it.

Product

  • Scheduler
  • For creators
  • Compare tools
  • Alternatives
  • Pricing

Channels

  • Instagram
  • LinkedIn
  • X (Twitter)
  • Threads
  • Facebook
  • YouTube
  • TikTok
  • All channels

AI agents

  • MCP server
  • For AI agents
  • Claude Code
  • Cursor
  • ChatGPT
  • Gemini CLI
  • All agents

Revenue

  • Revenue tracking
  • Revenue attribution
  • Stripe
  • Shopify
  • RevenueCat
  • All integrations

Resources

  • Docs
  • MCP tools
  • API reference
  • Blog
  • SnapStudio
  • About
  • Support
  • Contact
  • Privacy
  • Terms

Compare planpo.st

  • planpo.st vs Postiz
  • planpo.st vs Buffer
  • planpo.st vs Hootsuite
  • planpo.st vs Later
  • planpo.st vs Sprout Social
  • planpo.st vs SocialBee
  • planpo.st vs Planable
  • planpo.st vs Metricool
  • planpo.st vs Loomly
  • planpo.st vs Publer
  • planpo.st vs Post Bridge
  • planpo.st vs Mixpost
  • planpo.st vs Blotato
  • planpo.st vs Typefully
  • planpo.st vs RecurPost
  • planpo.st vs Post Planner
  • All comparisons
  • Alternatives
© 2026 planpo.st. All rights reserved.
  1. Home
  2. /AI agents
  3. /Gemini CLI

Your terminal, Google's agent, your social calendar.

Gemini CLI is the free-and-fast way into terminal agents, and it speaks MCP, so it plugs into planpo.st the same way Claude Code does: one settings entry, then the agent can draft, schedule and report.

Start freeRead the setup guide

Free plan, no card: 2 accounts, 30 posts a month, your agent included. X needs a paid plan.

Connect Gemini CLI

Sign in, no key

gemini extensions install https://github.com/lukBB/planpost-mcp
# or add it by hand:  "planpost": { "httpUrl": "https://mcp.planpo.st/mcp" }
# then, inside Gemini CLI:  /mcp auth planpost

Global: ~/.gemini/settings.json; per project: .gemini/settings.json

You sign in, there is no key to paste. Its posts go out at the time the agent sets, unless you turn on approval when you connect.

What is Gemini CLI?

The pairing suits scripted and repeatable work. Weekly planning runs, bulk rewrites, the kind of jobs where you want an agent doing the same reliable thing every Monday.

Gemini CLI is Google's open-source terminal agent for the Gemini models. MCP servers go in settings.json globally or per project. One sharp edge: remote servers use the httpUrl key, not url, and the wrong key fails silently, which is why our setup page spells it out.

What can you ask Gemini CLI to do in planpo.st?

Plain requests work. Each one below is something you could send today, and what happens next.

The Monday batch

You say

Read content-plan.md, draft this week's posts for LinkedIn and Threads, and schedule them at the best times.

What happens

The agent reads your plan file, drafts per network, calls get_best_times, and fills the week with create_post. Run it every Monday and the calendar stops being a chore.

Bulk import without the spreadsheet dance

You say

Here are 20 post ideas in ideas.csv. Create them all as drafts spread over the next month.

What happens

bulk_create_posts takes the whole set in one call. Twenty drafts appear, dated and platform-tagged, ready for a review pass in the dashboard.

The Friday check

You say

What failed this week, and what is still waiting for my approval?

What happens

get_delivery_report lists failed posts with each network's error and the fix, and list_pending_approvals the posts waiting for you. The agent reads both back as one short list.

Find the hours that work

You say

When do my LinkedIn posts do best? Spread four posts over next week at those times.

What happens

get_best_times answers from your own engagement history, and suggest_schedule returns four concrete timestamps in the range. Each goes into create_post as scheduledFor.

Report on a campaign

You say

How is the autumn-clips campaign going?

What happens

list_campaigns returns the post counts by status, the networks involved and the next scheduled time. get_analytics adds impressions, likes, comments and shares for the posts already out.

Audit the queue before a holiday

You say

List everything scheduled for the next ten days and flag any post with a warning.

What happens

list_posts filters by status, and preview_post on each one returns its warnings and any issue that would block it. You leave with a list of what to fix, not a surprise on day four.

Which networks can Gemini CLI post to?

All 7 that planpo.st publishes to. Each network has its own rules, and each pairing has its own page with the settings table, three prompts and the limits that stop a post.

Gemini CLI to Threads

Short posts, 500 characters, one image or video, clickable links.

Twenty ideas in a CSV become twenty Threads drafts in one bulk call, each under 500 characters.

Gemini CLI to LinkedIn

Profile or company page, 3,000 characters, up to 9 images or one video.

A plan file in, a week of LinkedIn posts out. Gemini CLI reads the markdown, drafts each post inside 3,000 characters and schedules them at the times get_best_times returns.

Gemini CLI to Instagram

Feed posts, carousels up to 10, Reels and Stories. Media on every post.

From the terminal Gemini CLI uploads images from a folder and schedules them as a carousel, as long as they are JPEG or PNG and there are 10 or fewer.

Gemini CLI to X

Posts and threads, 280 characters, images or video, no links.

Gemini CLI suits the scripted version: one prompt you rerun every Monday that reads a plan file and queues the week on X, link-free.

Gemini CLI to Facebook

Page posts with link cards, photo sets, video and Reels.

Gemini CLI handles the repetitive Page schedule: the same weekly slots, filled from a file, with links that turn into preview cards.

Gemini CLI to YouTube

Video uploads and Shorts with title, description, tags and visibility.

Point Gemini CLI at a folder of finished videos and a metadata file and it uploads and schedules each one with its title, description and visibility.

Gemini CLI to TikTok

Video posts, 2,200 character captions, a privacy level on every post.

Batch work is where Gemini CLI fits TikTok: a directory of clips, one bulk call, the privacy level set once in defaults.

Which tools does Gemini CLI get?

The same list on the hosted and the local server. Grouped by the job they do, with the ones Gemini CLI reaches for most:

JobToolsWhat that covers
Posts and schedulingcreate_post, bulk_create_posts, update_post, preview_post, get_best_times, suggest_scheduleDraft, schedule and reschedule, one post or up to 50 in a call. Each network can get its own text, media and settings, and every post can wait for your approval if you turn that on.
What is queued and what failedlist_posts, get_post, list_campaigns, get_delivery_report, retry_failed, list_pending_approvalsFilter the queue by status, network or campaign. Failed posts come back with the error and the fix, and a passing failure can be sent again.
Analyticsget_analyticsImpressions, likes, comments and shares for published posts, on Creator and Pro.
Revenueget_revenue_overviewRevenue totals, conversions and the trend from Stripe, Shopify or RevenueCat, on Creator and Pro. Revenue next to each post is on Pro.
Accountslist_connections, get_connection_link, list_account_groups, get_account_groupFind the accounts to post to, and hand you the link to connect a new one.

Every tool with its description is in the MCP tool reference.

How do I stop Gemini CLI from publishing something I have not read?

Turn on approval. By default Gemini CLI's posts go out at the time it sets. Switch on “Ask me before anything goes live” when you connect it, or any time on the Agent page, and every post it writes waits in Posts, under In review, until you approve it. With an API key, the switch is “Require approval before publishing”, in the key's row on the Agent page. Gemini CLI cannot change either setting itself.

Ask for drafts, if you want less than that. A post created without a time is a draft, and nothing leaves planpo.st until it is scheduled.

Scope the key. With an API key, permissions such as posts:read and posts:write decide what it can touch, so a key without posts:write lets Gemini CLI read the calendar and the numbers and change nothing.

What happens when Gemini CLI writes a post a network would reject?

It finds out when the post is created, not two weeks later when the slot arrives. Every post is checked against the rules of each network it targets: character limits, required media, the X rule against links, a TikTok privacy level, a connection that has lapsed.

A post that breaks one is saved as a draft and the tool result lists each issue with a code, the network and the fix in words. Gemini CLI reads that, corrects the post with update_post, and it goes back on the schedule. Softer problems, such as a caption link that will not be clickable on Instagram or a missing YouTube title, come back as warnings and do not block anything.

When a post reaches some of its networks and fails on one, its status is partially_published, with a result per network, so a post is never reported as published while one network refused it.

Can Gemini CLI tell me which posts made money?

Partly, and the rest is in the app. Gemini CLI can read your revenue totals, the conversions and the trend through get_revenue_overview, on Creator and Pro. Which post each payment came from is on Pro, on the app's Revenue screen: links in your posts are tracked, and a payment from Stripe, Shopify or RevenueCat that follows a click is matched to the post that caused it.

How revenue attribution works

How do I connect Gemini CLI to planpo.st?

It takes about a minute. Google's terminal agent. Uses httpUrl for remote servers. No API key is needed: add the hosted endpoint and sign in to planpo.st when the browser opens. With a key instead, add the server, hosted or local, and the tools appear.

Config location: Global: ~/.gemini/settings.json; per project: .gemini/settings.json

Sign in, no key
gemini extensions install https://github.com/lukBB/planpost-mcp
# or add it by hand:  "planpost": { "httpUrl": "https://mcp.planpo.st/mcp" }
# then, inside Gemini CLI:  /mcp auth planpost
Hosted
{
  "mcpServers": {
    "planpost": {
      "httpUrl": "https://mcp.planpo.st/mcp",
      "headers": { "Authorization": "Bearer pk_live_xxx" },
      "timeout": 10000
    }
  }
}
Local
{
  "mcpServers": {
    "planpost": {
      "command": "npx",
      "args": ["-y", "planpost-mcp"],
      "env": { "PLANPOST_API_KEY": "pk_live_xxx" }
    }
  }
}
  • Gemini CLI uses httpUrl for streamable HTTP, not url. The wrong key is a silent no-op.

Which way should I connect Gemini CLI: hosted or local?

For Gemini CLI either works, and local removes the one trap. The hosted entry must use httpUrl, and a url key is ignored without a word. The local npx entry has no such key to get wrong and needs Node 18 or newer.

QuestionHosted HTTPLocal npm (stdio)
What it isStreamable HTTP to https://mcp.planpo.st/mcpThe planpost-mcp npm package over stdio, started with npx
What you installNothingNode 18 or newer. npx fetches the package
How it signs inYou sign in to planpo.st in the browser, or send an API key in a headerAn API key in an environment variable on your machine
Tools you getAll of them; signed in, all but image generationAll of them, the same list
UpdatesServer side, nothing to doTied to the package version npx has cached
Choose it whenYou want it working in a minuteThe key should stay in your own environment

Both reach the same tools, so switching later is a config change and nothing else. The Gemini CLI setup guide has every variant.

Frequently asked questions

Why is my remote server not connecting?
Nine times out of ten it is url instead of httpUrl in settings.json. Gemini CLI uses httpUrl for streamable HTTP servers and ignores unknown keys without complaining. The local npx form avoids the issue entirely.
Does this cost anything on the Google side?
Gemini CLI has a free tier that is generous enough for scheduling workflows. On our side the free plan includes the agent with 200 calls a month, paid plans raise that, and revenue next to each post is on Pro.
Can I run this in CI or a cron job?
Yes, that is half the point of a CLI agent. A scheduled job that drafts the week from a content file and, with approval turned on for its key, leaves it in the approval queue is a solid pattern: automation does the typing, a human does the deciding.
What can it actually call?
Everything it needs to run the calendar: drafting, scheduling and rescheduling posts, seeing what is queued and what failed, analytics, and revenue on Creator and Pro. The MCP tool reference lists every tool. Scope an API key to less if the agent should have less.

Keep going

Other agents

Claude CodeCursorClaude DesktopChatGPTAll agentsThe MCP server

What Gemini CLI can reach

Gemini CLI to ThreadsGemini CLI to LinkedInGemini CLI to InstagramGemini CLI to XGemini CLI to FacebookGemini CLI to YouTubeGemini CLI to TikTokThe 7 networksPayment integrationsRevenue attribution

Connect Gemini CLI and plan next week.

Start freeRead the setup guide

Free plan, no card: 2 accounts, 30 posts a month, your agent included. X needs a paid plan.