Skip to content
AI agent + Postemi

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.

Paste this to your AI agent:

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.

ChatGPTClaudeCodexOpenClawHermes AgentMuse
Getting started

Four commands, and it runs

You install, sign in, list the connected accounts, then schedule the first post. Your agent runs the same commands.

terminal
# 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.

What you get

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.

How it works

From accounts to approval

You set up the connection once. After that your agent does the work, and you decide in the calendar.

01

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.

Ids of the connected accounts
terminal
$ postemi integrations:list
[
{ "id": "cmf3k7…", "name": "Cafe · Instagram" },
{ "id": "cmf3k9…", "name": "Cafe · Facebook" }
]
02

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
.env
# 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_…
03

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.

Ready-made setup for every client
MCP 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"
04

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.

Scheduled, but not published yet
terminal
$ postemi posts:list
[
{ "id": "cmf7p2…", "state": "QUEUE",
"publishDate": "2026-08-16T07:00:00Z" },
{ "id": "cmf7q8…", "state": "DRAFT",
"publishDate": "2026-08-18T06:30:00Z" }
]
Built for agents

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.
SKILL.md
---
name: postemi
description: Postemi schedules and publishes social posts
from the command line.
homepage: https://postemi.com
---
# Output contract
Every command prints its JSON result, and nothing
else, to stdout; status lines, warnings and errors
go 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 go
through `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.

Supported clients

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

ChatGPT

Add Postemi to ChatGPT as a custom MCP server, with a browser sign-in.

How to connect
OpenAI dots

OpenAI dots

ChatGPT's always-on agents, through the plugins in your ChatGPT account.

How to connect
Claude

Claude

A custom connector on claude.ai: one URL and a browser sign-in.

How to connect
Claude Cowork

Claude Cowork

Cowork's longer tasks, with the Postemi connector or plugin.

How to connect
Claude Code

Claude Code

One claude mcp add command, or the CLI with its skill.

How to connect
Codex

Codex

codex mcp add in the terminal, or the postemi CLI from a codex exec script.

How to connect
Cursor

Cursor

One click with Cursor's install link, or a line in mcp.json.

How to connect
Gemini

Gemini

A custom app in the Gemini app, or the MCP server in Gemini CLI and Antigravity CLI.

How to connect
OpenClaw

OpenClaw

Your always-on OpenClaw agent, with the Postemi MCP server in its config.

How to connect
Hermes Agent

Hermes Agent

Nous Research's open agent, with Postemi in its config.yaml.

How to connect
Grok Bot

Grok Bot

Ask your Bot to add the Postemi MCP server, then give it the posting.

How to connect
Grok Build

Grok Build

grok mcp add in the terminal, then a sign-in from /mcps.

How to connect
DeepSeek

DeepSeek

Through DeepSeek Harness, with an MCP key. The chat app cannot connect.

How to connect
Kimi K3

Kimi K3

Kimi Code CLI's mcp.json, or a plugin made in Kimi Work.

How to connect
Muse

Muse

A custom connector in the Muse app, or the MCP server in Muse Code.

How to connect
Manus

Manus

A custom MCP server in Manus settings, with an MCP key.

How to connect
Perplexity Computer

Perplexity Computer

A remote MCP connector in Perplexity, with an OAuth sign-in.

How to connect
NanoClaw

NanoClaw

A remote MCP server for your NanoClaw agent group, with the key in the vault.

How to connect
Paperclip

Paperclip

A connector for your Paperclip company, with per-action approval.

How to connect
MCP Server

MCP Server

One URL for any MCP client: OAuth sign-in or a Bearer key.

How to connect
AI Agents CLI

AI Agents CLI

The postemi command line tool and its SKILL.md, for any agent with a shell.

How to connect
VS Code / CopilotWindsurfAmpWarp

These clients work too: add the MCP server URL, then sign in or use an MCP key from the Developers page.

Commands

What your agent can run

This is the full list: posts, social accounts, media, analytics, login, and the posts:create flags.

Posts
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.
Social accounts
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.
Media and analytics
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.
Login and settings
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.
posts:create flags
-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.

Pricing

Fair 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.

3 months free

Prices in US dollars, plus sales tax where it applies.

Basic

For solo creators new to scheduling
$19/mo + tax
7-day free trial
$0 due today · Cancel anytime
  • 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
For solo pros who automate, with API access
$29/mo + tax
7-day free trial
$0 due today · Cancel anytime
  • 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

For teams with several brands, plus the image editor and video trim
$49/mo + tax
7-day free trial
$0 due today · Cancel anytime
  • 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
For agencies managing many channels
$99/mo + tax
7-day free trial
$0 due today · Cancel anytime
  • 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
Post to
  • TikTokTikTok
  • InstagramInstagram
  • FacebookFacebook
  • ThreadsThreads
  • LinkedInLinkedIn
  • YouTubeYouTube
  • XX
  • PinterestPinterest
  • BlueskyBluesky
  • Google BusinessGoogle Business · coming soon
  • DiscordDiscord
  • TelegramTelegram
  • SlackSlack
  • MastodonMastodon · beta
  • SnapchatSnapchat · coming soon
  • PixelfedPixelfed · beta
  • TumblrTumblr · beta
  • WordPressWordPress · beta
  • GhostGhost · beta
  • Dev.toDev.to · beta
  • Google ChatGoogle Chat · beta
  • Microsoft TeamsMicrosoft Teams · beta
  • HashnodeHashnode · beta
  • LemmyLemmy · beta
  • NostrNostr · beta
  • DribbbleDribbble · beta
  • TwitchTwitch · beta
  • KickKick · beta
  • WhopWhop · beta
  • WebflowWebflow · beta
  • ShopifyShopify · beta
  • CircleCircle · beta
  • listmonklistmonk · beta
  • MailerLiteMailerLite · beta
  • MailCheapMailCheap · beta
  • MailchimpMailchimp · beta
  • KitKit · beta
  • BrevoBrevo · beta
  • ButtondownButtondown · beta
FAQ

Frequently asked questions

Postemi handles these platforms: Facebook, Instagram, TikTok, LinkedIn, X, YouTube, Threads, Discord, Bluesky, Telegram, Slack, Pinterest, and in beta Mastodon, Pixelfed, Tumblr, WordPress, Ghost, Dev.to, Google Chat, Microsoft Teams, Hashnode, Lemmy, Nostr, Dribbble, Twitch, Kick, Whop, Webflow, Shopify, Circle and the newsletter tools listmonk, MailerLite, MailCheap, Mailchimp, Kit, Brevo and Buttondown. Google Business Profile and Snapchat are coming soon; they cannot be connected yet. The agent only works with accounts already connected in Postemi.

Get started today

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.