Your agent schedules the posts for you
Your agent writes the post, uploads the image and finds a time for it. You review and approve it in the Postemi calendar before it goes out.
Set up Postemi for me: connect it the quickest way for where you run (the postemi CLI in a terminal, the app in ChatGPT, a connector in Claude), then list my channels.
Four commands, and it runs
You install, sign in, list the connected accounts, then schedule the first post. Your agent runs the same commands.
# The Postemi command-line tool$ npm install -g postemi# Sign in: approve in the browser$ postemi auth:login# Which social accounts are connected?$ postemi integrations:list[{ "id": "cmf3k7…", "name": "Cafe · Instagram" }]# The first scheduled post$ postemi posts:create \$ -c "New brunch menu this Saturday." \$ -i "cmf3k7…" \$ -s "2026-08-16 09:00" --timezone Europe/London✅ Post created successfully!{ "id": "cmf7p2…", "state": "QUEUE" }
Needs the Pro plan or higher. Every plan starts with a 7-day free trial. The CLI writes the JSON response to stdout, and status and errors to stderr. On failure it exits with a non-zero code. That way the agent knows whether it worked.
Three ways in, one Postemi account
Want to chat? MCP. Want to script? CLI. Want to integrate? REST API. All three work today.
Live MCP server
Your agent connects to https://mcp.postemi.com/mcp, and from then on it sees the same Postemi account you do. You create the key on the Automations → Developers page.
Published command-line tool
Install with: npm install -g postemi. The command name is postemi.
Public REST API
The REST API is at api.postemi.com. It handles the same account as MCP and the CLI, just from your own code.
No training needed
SKILL.md ships in the npm package. The agent reads the real commands and flags from it, so you do not have to explain them.
The calendar is where you approve
The agent prepares and schedules. You have the last word before anything publishes. In the calendar you edit, reschedule or delete what you do not want.
You keep your own model
Postemi has no built-in AI writer, on purpose. You work with the model you already use. Postemi handles the publishing.
From accounts to approval
You set up the connection once. After that your agent does the work, and you decide in the calendar.
Connect your accounts
On the Postemi web app, you connect your social accounts with the usual OAuth flow. The agent later works with those accounts and refers to them by id.
$ postemi integrations:list[{ "id": "cmf3k7…", "name": "Cafe · Instagram" },{ "id": "cmf3k9…", "name": "Cafe · Facebook" }]
Create a key
Automations → Developers. Chat clients need an MCP key. The CLI and the REST API need an API key. We show the key once, when you create it.
# Automations → Developers → New key# We show the key once, when you create it. # For the command line and the REST API:POSTEMI_API_KEY=YOUR_API_KEY # MCP clients get a separate key:# psty_mcp_…Hand it to the agent
Chat clients only need a URL. Terminal clients need a command or a config block. On the Developers page you pick the client and copy the ready-made setup.
# Browser assistant (ChatGPT, Claude app):# add a custom connector with this address, then sign in:https://mcp.postemi.com/mcp # Claude Code (signs in through the browser):claude mcp add --transport http postemi https://mcp.postemi.com/mcp # Codex, ~/.codex/config.toml, then: codex mcp login postemi[mcp_servers.postemi]url = "https://mcp.postemi.com/mcp"Review it, then it can go
The agent puts the posts in the calendar. You go through them, fix what needs fixing, and only leave what can actually go out.
$ postemi posts:list[{ "id": "cmf7p2…", "state": "QUEUE","publishDate": "2026-08-16T07:00:00Z" },{ "id": "cmf7q8…", "state": "DRAFT","publishDate": "2026-08-18T06:30:00Z" }]
Predictable input, a clear response
The agent does not have to fuss with the web UI. It gets a structured response, and it reaches the same account three ways.
- Machine-readable JSONEvery command writes the JSON response to stdout, so the agent can parse it directly.
- An error is really an errorThe CLI writes status and errors to stderr. On failure it exits with a non-zero code.
- Skill file in the packageSKILL.md shows the available commands, the flags and the two rules you cannot skip.
- A flat command setNo hidden state, and no step to guess: the agent works from a clear list.
- Three ways to the same placeMCP for the conversation, CLI for scripts, REST API for your own code: the same account.
---name: postemidescription: Postemi schedules and publishes social posts from the command line.homepage: https://postemi.com--- # Output contract Every command prints its JSON result, and nothingelse, to stdout; status lines, warnings and errorsgo to stderr, and every failure exits 1. # Two Hard Rules (Read First) Rule 1: Authenticate before anything.Rule 2: Every file passed to `-m` MUST first gothrough `postemi upload`.SKILL.md is part of the npm package. The agent reads the exact CLI usage from it: no extra training, and no invented flags.
The same Postemi, several agents
Each one has its own page with the exact setup. If yours is not among them, that is fine: Postemi uses a standard MCP server.
ChatGPT
Add Postemi to ChatGPT as a custom MCP server, with a browser sign-in.
How to connectOpenAI dots
ChatGPT's always-on agents, through the plugins in your ChatGPT account.
How to connectClaude
A custom connector on claude.ai: one URL and a browser sign-in.
How to connectClaude Cowork
Cowork's longer tasks, with the Postemi connector or plugin.
How to connectClaude Code
One claude mcp add command, or the CLI with its skill.
How to connectCodex
codex mcp add in the terminal, or the postemi CLI from a codex exec script.
How to connectCursor
One click with Cursor's install link, or a line in mcp.json.
How to connectGemini
A custom app in the Gemini app, or the MCP server in Gemini CLI and Antigravity CLI.
How to connectOpenClaw
Your always-on OpenClaw agent, with the Postemi MCP server in its config.
How to connectHermes Agent
Nous Research's open agent, with Postemi in its config.yaml.
How to connectGrok Bot
Ask your Bot to add the Postemi MCP server, then give it the posting.
How to connectGrok Build
grok mcp add in the terminal, then a sign-in from /mcps.
How to connectDeepSeek
Through DeepSeek Harness, with an MCP key. The chat app cannot connect.
How to connectKimi K3
Kimi Code CLI's mcp.json, or a plugin made in Kimi Work.
How to connectMuse
A custom connector in the Muse app, or the MCP server in Muse Code.
How to connectManus
A custom MCP server in Manus settings, with an MCP key.
How to connectPerplexity Computer
A remote MCP connector in Perplexity, with an OAuth sign-in.
How to connectNanoClaw
A remote MCP server for your NanoClaw agent group, with the key in the vault.
How to connectPaperclip
A connector for your Paperclip company, with per-action approval.
How to connectMCP Server
One URL for any MCP client: OAuth sign-in or a Bearer key.
How to connectAI Agents CLI
The postemi command line tool and its SKILL.md, for any agent with a shell.
How to connectThese clients work too: add the MCP server URL, then sign in or use an MCP key from the Developers page.
What your agent can run
This is the full list: posts, social accounts, media, analytics, login, and the posts:create flags.
postemi posts:createNew post: scheduled, as a draft, or published right away.postemi posts:listPosts in the given period. You can filter by client group too.postemi posts:delete <id>Delete a post by id.postemi posts:find-slot <id>The next free publishing time for a social account.postemi posts:status <id>Switch a post between draft and scheduled.postemi posts:missing <id>Content already on the platform for a post with a missing id.postemi posts:connect <id>Connect a post to content that is already published.postemi integrations:listConnected social accounts and their ids. This is what the -i flag needs.postemi integrations:groupsThe list of client groups, if you work with more than one brand.postemi integrations:settings <id>An account's settings schema, rules, length limit, and tools.postemi integrations:trigger <id> <method>Call a platform tool for extra data, for example to search for music.postemi upload <file>Upload a media file. The URL you get back goes into the posts:create -m flag.postemi analytics:platform <id>A social account's stats going back the given number of days.postemi analytics:post <id>Performance of a single post.postemi auth:loginLog in with OAuth2 device authorization: the browser opens, you approve.postemi auth:logoutClear stored login data.postemi auth:statusShows whether you're logged in, and checks access too.postemi config:set <key> <value>Save a CLI setting, for example the default timezone.postemi config:get [key]Print the saved settings.-c, --contentThe post text. Repeat it to make a thread: the first is the post, the rest are comments.-m, --mediaMedia for the -c that comes before it. The URL has to come from postemi upload.-i, --integrationsIds of the target social accounts, comma-separated.--date, -sWhen to publish. Either with an explicit offset, or together with the --timezone flag.--timezoneIANA timezone name, for example Europe/London. Only pass a date with no offset together with this.-t, --typeschedule (default), draft, or now.-d, --delayDelay in MINUTES between items in the thread.--jsonThe full post description from a JSON file, when the flags are not enough.--settingsPlatform-specific settings as JSON. The schema comes from integrations:settings.The full help is printed by postemi --help. An unknown flag is not ignored: it errors. If it rejects a flag, that flag does not exist.
One account, every channel
Connect your accounts in a few clicks, then post to every channel from Postemi.
TikTok
Threads
YouTube
X
Bluesky
Google Business
coming soonDiscord
Telegram
Slack
Mastodon
betaSnapchat
coming soonPixelfed
betaTumblr
betaWordPress
betaGhost
betaDev.to
betaGoogle Chat
betaMicrosoft Teams
betaHashnode
betaLemmy
betaNostr
betaDribbble
betaTwitch
betaKick
betaWhop
betaWebflow
betaShopify
betaCircle
betalistmonk
betaMailerLite
betaMailCheap
betaMailchimp
betaKit
betaBrevo
betaButtondown
betaFair pricing, no hidden costs
Every plan starts with a 7-day free trial. You pay in euros, Swiss francs or US dollars, depending on where you are, with a receipt for every payment.
Prices in US dollars, plus sales tax where it applies.
Basic
- 5 social accounts
- 1 workspace
- One user
- Not included: Advanced image editor
- Not included: Video trim and cover frame
- Not included: Automations
- Not included: API access
- Not included: Posting with an AI agent
- Unlimited posts
- Multiple accounts per platform
- Scheduling
- Calendar view
- Repeated posts
- Post delays
- Studio access
- Analytics (beta)
- Post comments
- Dark & light mode
Pro
Most popular- 10 social accounts
- 1 workspace
- One user
- Not included: Advanced image editor
- Not included: Video trim and cover frame
- Automations
- API access
- Posting with an AI agent
- Unlimited posts
- Multiple accounts per platform
- Scheduling
- Calendar view
- Repeated posts
- Post delays
- Studio access
- Analytics (beta)
- Post comments
- Dark & light mode
Creator
- 30 social accounts
- 5 workspaces
- 15 users
- Advanced image editor
- Video trim and cover frame
- Automations
- API access
- Posting with an AI agent
- Unlimited posts
- Multiple accounts per platform
- Scheduling
- Calendar view
- Repeated posts
- Post delays
- Studio access
- Analytics (beta)
- Post comments
- Dark & light mode
Team
Highest limits- 100 social accounts
- Unlimited workspaces
- Unlimited users
- Advanced image editor
- Video trim and cover frame
- Automations
- API access
- Posting with an AI agent
- Unlimited posts
- Multiple accounts per platform
- Scheduling
- Calendar view
- Repeated posts
- Post delays
- Studio access
- Analytics (beta)
- Post comments
- Dark & light mode
TikTok
Instagram
Facebook
Threads
LinkedIn
YouTube
X
Pinterest
Bluesky
Google Business · coming soon
Discord
Telegram
Slack
Mastodon · beta
Snapchat · coming soon
Pixelfed · beta
Tumblr · beta
WordPress · beta
Ghost · beta
Dev.to · beta
Google Chat · beta
Microsoft Teams · beta
Hashnode · beta
Lemmy · beta
Nostr · beta
Dribbble · beta
Twitch · beta
Kick · beta
Whop · beta
Webflow · beta
Shopify · beta
Circle · beta
listmonk · beta
MailerLite · beta
MailCheap · beta
Mailchimp · beta
Kit · beta
Brevo · beta
Buttondown · beta
Frequently asked questions
Hand scheduling overto your agent.
Connect your accounts, create a key, and pick MCP, the CLI or the REST API. The last word in the calendar stays yours.