Install
openclaw skills install @astablackclove/posthive-mcpSchedule social media posts to 13 platforms (Bluesky, Threads, Instagram, LinkedIn, Mastodon, YouTube, Facebook Pages, Pinterest, Telegram, X/Twitter, Nostr) via the Posthive CLI. Use when the user asks to create, schedule, list, update, or delete social media posts, or manage their posting queue.
openclaw skills install @astablackclove/posthive-mcpSchedule posts to 13 social platforms from the command line. Every command outputs structured JSON.
If the user isn't already logged in, run posthive login — it opens their browser to sign in and stores credentials in ~/.posthive/config.json. No API key needed. Check with posthive whoami first if unsure.
Alternatively, env vars always take priority over the stored login (useful for CI or scripts):
export POSTHIVE_API_KEY=ph_xxx # Posthive → Settings → API Keys (Pro/Team plan)
export POSTHIVE_API_URL=http://localhost:3001 # optional — only for self-hosted Posthive, defaults to https://api.posthive.co
Run commands with npx posthive-cli or posthive if installed globally (npm i -g posthive-cli).
accounts:list to get valid account IDs — never guess IDs.posts:create. Posts are saved as DRAFTS by default — the user reviews them in Posthive before anything publishes. Only pass --schedule when the user explicitly asks to schedule directly.posts:approve to promote a draft to the scheduled queue.# Auth (only if not already logged in)
posthive login
posthive whoami
posthive logout
# List connected accounts (do this first)
posthive accounts:list
# Create a draft post
posthive posts:create --content "Hello world" --accounts id1,id2
# Create with first comment (link/hashtags go here, not the caption)
posthive posts:create --content "Big launch today" --accounts id1 --first-comment "Details: https://example.com"
# Schedule directly (skips draft review — only when user explicitly asks)
posthive posts:create --content "Hello" --accounts id1 --schedule 2026-07-10T09:00:00Z
# With media (upload first, then reference the returned URL)
posthive upload ./image.png
posthive posts:create --content "Check this out" --accounts id1 --media https://...returned-url...
# Instagram Reel / Story (media required)
posthive posts:create --content "New reel" --accounts ig_id --media <video_url> --media-type reel
# YouTube Short
posthive posts:create --content "Title here" --accounts yt_id --media <video_url> --youtube-type short
# Queue management
posthive posts:list --status draft
posthive posts:get <post_id>
posthive posts:update <post_id> --content "Fixed typo"
posthive posts:approve <post_id> --schedule 2026-07-10T09:00:00Z
posthive posts:duplicate <post_id>
posthive posts:delete <post_id>
# Templates
posthive templates:list
posthive templates:use <template_id> --accounts id1 --content "Optional override"
# Dry run (full pipeline, no real API calls)
posthive posts:create --content "Test" --accounts id1 --dry-run
| Platform | Char limit | Notes |
|---|---|---|
| Bluesky | 300 | |
| Threads | 500 | |
| Mastodon | 500 | |
| X (Twitter) | 280 | Pro/Team plan, no links |
| 3,000 | Link in first comment performs better | |
| 2,200 | Image/video required; use --media-type for reel/story | |
| YouTube | — | Video required; use --youtube-type short or video |
| 500 | Image required | |
| Facebook Pages | 63,206 | |
| Telegram | 4,096 | |
| Nostr | — | |
| Discord | 2,000 | Webhook-based; no first comment |
| Tumblr | — | NPF format; image posts supported |
When posting to multiple platforms at once, keep content within the smallest char limit of the selected platforms, or create separate posts per platform with tailored content.
2026-07-10T09:00:00Z). Confirm the user's timezone before scheduling.--first-comment rather than the main content on LinkedIn and Instagram.{"error": "..."} to stdout.