Post to Facebook from Gemini CLI
Gemini CLI can post to your Page on Facebook through ClipSpeed. Add the ClipSpeed server with one command, sign in, and then ask Gemini CLI to post to your Page, pick the time, and apply Facebook's settings, without leaving the terminal. Facebook is coming next on ClipSpeed's rail; this page describes how it works and says so.
Keep a human in the loop: Gemini CLI shows the plan and asks before anything is public. Posting today: YouTube, TikTok, Instagram, X (Twitter) and LinkedIn.
Also try
How to post Facebook from Gemini CLI
One command registers the server in Gemini CLI's settings. Start gemini, run /mcp auth clipspeed to sign in, and the tools are available. Connect Facebook in ClipSpeed, then describe the post. Setup takes about a minute.
# One-time setup (OAuth, no API key)
gemini mcp add --transport http clipspeed https://api.clipspeed.ai/mcp
# Then ask Gemini CLI:
> Post the launch paragraph to the Facebook Page at 10am with the blog link
Gemini CLI: Preview — nothing booked yet. Facebook — text with one URL. Book it?ClipSpeed has not yet run an end-to-end check inside Gemini CLI. The server is standard MCP over streamable HTTP, which Gemini CLI supports; the flags above are Gemini CLI's documented ones.
- Run gemini mcp add --transport http clipspeed https://api.clipspeed.ai/mcp.
- Start gemini and run /mcp. Authenticate clipspeed; approve the ClipSpeed sign-in in the browser.
- Ask it to list your channels.
- Connect Facebook in the ClipSpeed app, or ask Gemini CLI for a connect link: it is private, valid for ten minutes, and Facebook signs you in itself.
What can Gemini CLI do on Facebook?
On Facebook, Gemini CLI can post text, images and video to a Facebook Page, with vertical video as a Reel. Every booking runs through the same rules as the ClipSpeed app.
Text, Image and Video posts
Facebook takes text, image and video through ClipSpeed. Video: MP4 or MOV up to 1 GB; vertical video surfaces as a Reel on the Page. Image: JPG or PNG up to 25 MB.
63,206 characters, checked at booking
Facebook's own arithmetic. Too long is refused with the real count, never trimmed at send time.
Exact time or refused
Name the minute and Gemini CLI books it, or you are told why not and offered the next open slot. A booked Facebook post is never moved behind your back.
Preview before anything posts
preview: true runs the whole booking and writes nothing. Gemini CLI shows the plan, with each slot and the day's remaining cap, and books only on your yes.
Clips cut in the same session
Submit a video or stream link, get captioned 9:16 clips with a viral score, and post the best as native video on Facebook. No download, no re-upload.
Pacing and numbers
Planned: Text and image posts on Facebook are at least 60 minutes apart, up to 5 a day. Video on Facebook is at least 4 hours apart, up to 4 a day under your plan. After a post goes out, Gemini CLI can read back views and engagement where Facebook provides them.
How does Gemini CLI post to Facebook through ClipSpeed?
You describe what you want in plain language and Gemini CLI makes the ClipSpeed calls. A typical conversation has three beats.
Find your Facebook channel
Ask Gemini CLI whether Facebook is connected. It calls list_channels and reads platform_settings, so it also knows what Facebook accepts and the limits before you write a word.
Compose within the rules
Describe the post. Gemini CLI drafts within Facebook's limits; mention a clip or a file and it attaches it.
Schedule or publish
Name a time, or say now. The slot is booked exactly or refused with the next open one, and the reply carries the id you can cancel or edit by.
Facebook settings reference
These are the schedule_post fields that apply to Facebook. Mention any of them in plain language and Gemini CLI sets them; the server checks them at booking. Fields marked planned land with the Facebook release.
| Field | Type | Required | What it does on Facebook |
|---|---|---|---|
platforms | string[] | Yes | Include "facebook". Up to ten platforms per call; each books its own slot. |
text | string | Yes for a text post | Facebook's limit is 63,206 characters. The first link becomes a preview card. |
hashtags | string[] | No | Appended to the text. |
media_kind | text | image | video | No | Detected from the file when omitted. |
clip_id or media_url | string | No | A ClipSpeed clip or a public link to an image or video. Vertical video surfaces as a Reel. |
scheduled_at | ISO 8601 | No | Exact or refused with the next open slot. |
preview | boolean | No | Plan only. |
Common Facebook configurations
Ask Gemini CLI for any of these and it applies the matching settings.
Page post with a link card
Reel from a clip
Image post
Preview a week
Example prompts for Facebook in Gemini CLI
Type these into the terminal, or pass one to terminal in a script. Gemini CLI calls ClipSpeed and confirms before publishing.
Post Facebook with a scheduled time
Post the launch paragraph to the Facebook Page at 10am with the blog link. Keep the text under 63,206 characters. Preview first.
Cut the clips, then post the best
Clip this link, keep the top three by viral score, and schedule them to Facebook at 11am, 3pm and 7pm tomorrow. Show me the plan before booking.
From a script with Gemini CLI
gemini -p "Summarise the changes since the last git tag as one Facebook post under 63,206 characters. Schedule it via ClipSpeed for today at 10am; preview first and book if nothing is refused."
Facebook limits and gotchas to know
Facebook enforces a few rules that Gemini CLI and ClipSpeed respect automatically, but knowing them helps you phrase requests.
- Facebook Pages only. Meta retired the Groups publishing API, so no scheduler can post to a Group on your behalf; personal profiles are not available to apps either.
- Vertical 9:16 video posted to a Page surfaces as a Reel. Landscape video posts as a standard Page video.
- The character limit is enormous (63,206), but the feed truncates long posts behind 'see more' at a few lines. Lead with the point.
- Facebook is the next rail on ClipSpeed's scheduler. Until it posts, the status badge on this page says so and no booking to Facebook is accepted.
- Planned pacing: five text or image posts a day an hour apart, video four hours apart.
| Rule | |
|---|---|
| Accepts | Text, Image, Video |
| Text limit | 63,206 characters |
| Title | No title field |
| Links in the caption | Kept; the first link becomes a preview card |
| Pacing | Planned: Text and image posts on Facebook are at least 60 minutes apart, up to 5 a day. Video on Facebook is at least 4 hours apart, up to 4 a day under your plan. |
| Formats | Image: JPG or PNG up to 25 MB. Video: MP4 or MOV up to 1 GB; vertical video surfaces as a Reel on the Page. Aspect: any; 9:16 for Reels |
| Status | Coming next on ClipSpeed's rail; bookings are refused with a plain message until then |
What Postiz-style schedulers cannot do
Cut the clips first
Gemini CLI does not need finished video to start. Hand it a YouTube link, a podcast, a stream VOD or a local export. ClipSpeed finds the moments, cuts them to 9:16 with word-by-word captions, scores each one 0 to 100 for shareability, and returns them in the same conversation. Gemini CLI picks by score, writes the caption from the transcript, and books the clips on Facebook. Three tool calls, one approval, no download and no re-upload.
- Clips arrive with a title written from the hook, a transcript and a viral score, so the agent can choose and caption without watching the footage.
- Live streams can be clipped while they are still on air; the agent books the highlights for the next morning before the stream ends.
- Every clip is already hosted, so
schedule_posttakes its id directly. Nothing moves through your laptop.
submit_to_clipspeedPaste the link. ClipSpeed starts the job and returns a project id.check_clipsPoll with the project id. Back come the finished 9:16 clips with titles, transcripts, viral scores and preview links.schedule_postPass the clip id, the platforms, a caption and a time. Gemini CLI shows the plan with preview: true, you say yes, it books.generate_image or generate_videoDescribe the shot. ClipSpeed runs it on the model that fits (Seedance, Kling, Veo, Nano Banana Pro, GPT Image and others) and quotes the credits first.wait_for_generationReturns the hosted result link and a preview the agent can show you.schedule_post with media_urlThe result link goes straight into the booking on Facebook. The caption, the time and the file are approved together.The other half nobody else has
Generate the image or video, then post it
A product shot for Instagram, a 16:9 announcement graphic for X, a six-second opener before a clip: Gemini CLI can make an image or a short video with ClipSpeed's image and video models and book the result in the same reply. There is no separate design tool, no export, no upload page. The generated file is hosted, so media_url is the only thing the booking needs.
- The price in credits is quoted before anything renders, within the per-generation and daily caps you set in Settings.
- Results are previewed in the conversation, so you approve the picture and the post at once.
- Images post as JPG, PNG or WebP up to 25 MB; video posts as MP4, MOV or WebM up to 1 GB.
What is Gemini CLI?
Gemini CLI is Google's open-source terminal agent built on the Gemini models. It reads your project, runs commands and connects to MCP servers over HTTP. With ClipSpeed registered, it can clip a video, generate media and schedule posts from a terminal session or from a script.
How ClipSpeed works with Gemini CLI
- gemini mcp add writes the server into ~/.gemini/settings.json
- Gemini CLI discovers the tools at start and reads
platform_settingsbefore composing schedule_postis exact or refused with the next open slotpreview: truefor a dry rungemini -pfor unattended runs
Gemini CLI vs Claude Code vs Codex: Gemini CLI (terminal), Claude Code (terminal), Codex (terminal). This page is about Gemini CLI; the Gemini CLI guide compares them.
{
"mcpServers": {
"clipspeed": {
"httpUrl": "https://api.clipspeed.ai/mcp"
// no browser? add:
// "headers": { "Authorization": "Bearer csai_live_..." }
}
}
}# What the agent reads at connect time (tool descriptions, abridged)
list_channels Connected platforms, what each accepts, limits, your time zone
connect_channel A private 10-minute link to connect one platform
platform_settings Limits, title rules, link handling, pacing per platform
schedule_post clip_id | text | media_url → platforms[], scheduled_at, preview
list_scheduled_posts Scheduled, sending, posted, failed — with post links
update_scheduled_post Edit copy while still scheduled (the time never moves)
cancel_scheduled_post Cancel; undoable 72 h in the app
post_analytics Views, likes, comments, shares where the platform gives them
submit_to_clipspeed Start clipping a video or stream link → projectId
check_clips Finished 9:16 clips with titles, transcripts, viral scores
generate_image / generate_video / wait_for_generation
# Facebook: text/image/video · text 63,206Post to Facebook and other platforms from Gemini CLI
One request can book the same content to Facebook and other channels, each keeping its own settings and its own slot. Every platform below has its own Gemini CLI guide.
Also works with
Facebook and Gemini CLI: frequently asked questions
How do I post to Facebook from Gemini CLI?
Run gemini mcp add --transport http clipspeed https://api.clipspeed.ai/mcp. Start gemini and run /mcp. Authenticate clipspeed; approve the ClipSpeed sign-in in the browser. Connect Facebook in ClipSpeed (or ask Gemini CLI for a connect link; it is private and valid for ten minutes), then describe the post in plain language. Gemini CLI reads the Facebook rules, drafts within them, shows the plan and books on your yes. Facebook is coming next; until the badge changes, the booking is refused with a plain message.
What can Gemini CLI post to Facebook through ClipSpeed?
Post text, images and video to a Facebook Page, with vertical video as a Reel. Facebook takes text, image and video posts. Text is limited to 63,206 characters.
Which Facebook settings can Gemini CLI control?
The fields in the settings reference above: text, hashtags, media_kind, clip_id or media_url, scheduled_at, preview. Mention any of them in plain language ("unlisted", "tomorrow at 9", "preview first") and Gemini CLI sets the matching field before it books.
Do I need a Facebook API key or developer account?
No. You connect Facebook to ClipSpeed once through Facebook's own sign-in, and Gemini CLI talks to ClipSpeed over OAuth. No Facebook developer key, bearer token or password is pasted anywhere.
How many Facebook posts a day can Gemini CLI schedule?
Planned: Text and image posts on Facebook are at least 60 minutes apart, up to 5 a day. Video on Facebook is at least 4 hours apart, up to 4 a day under your plan. When a time is taken, the booking is refused with the next open slot rather than moved. Ask for preview to see a day's plan and the remaining cap before anything is booked.
Can Gemini CLI post to Facebook from a script or a cron job?
Yes. Gemini CLI's headless mode (terminal) runs one prompt and exits, and the ClipSpeed server registered on that machine does the booking. On a runner with no browser, authenticate with a ClipSpeed API key header. Keep preview on so the run reports a plan before it books.
Is posting to Facebook from Gemini CLI different from Claude Code?
The booking is identical: the same rules, the same calendar, the same refusals. What differs is where you work. Gemini CLI: terminal; headless with gemini -p. Claude Code: terminal, verified end to end; claude -p.