PosteAhora is a tool to schedule and publish social media posts to Instagram, TikTok, YouTube, X (Twitter), Facebook, LinkedIn, Threads, Bluesky and Discord — from your own code, terminal, CI, or an AI agent, via a CLI, an MCP server, or a REST API.

Social media scheduling & publishing CLI — plan, schedule and publish posts across Instagram, TikTok, YouTube, X (Twitter), Facebook, LinkedIn, Threads, Blue...

Alexander Osso

@sashadiz

What This Skill Does

CLI, MCP server, and REST API to schedule and publish social media posts across Instagram, TikTok, YouTube, X, Facebook, LinkedIn, Threads, Bluesky, and Discord. Supports media uploads, drafts, scheduling, and analytics retrieval.

Replaces manually posting to each social platform or using separate scheduling tools for each network by providing a single command-line interface to manage all major channels.

When to Use It

  • Schedule a promotional post to publish simultaneously on Instagram, Twitter, and LinkedIn at a specific time
  • Upload a video file and attach it to a TikTok or YouTube post from a CI/CD pipeline
  • Create a draft post for client review before publishing to Facebook and Threads
  • Pull analytics data for all connected social accounts to measure post performance
  • Publish a breaking news update immediately to X, Facebook, and Discord from a terminal script
  • Automate a weekly content calendar by scripting recurring posts across multiple platforms

Install

$ openclaw skills install @sashadiz/posteahora

PosteAhora

Schedule and publish social media posts across every major network from the command line, powered by PosteAhora. Use this skill to create, schedule, publish and manage social content, organize a content-idea backlog, upload media, and read analytics on the user's behalf.

Install PosteAhora CLI if it doesn't exist

Check whether the CLI is available:

posteahora --version

If it isn't installed:

npm install -g @posteahora/cli
# or
pnpm install -g @posteahora/cli

The installed command is posteahora. It can also run via npx @posteahora/cli.

Official resources

PropertyValue
nameposteahora
descriptionSocial media scheduling CLI for publishing across Instagram, TikTok, YouTube, X, Facebook, LinkedIn, Threads, Bluesky and Discord
commandposteahora
allowed-toolsBash(posteahora:*)

⚠️ Authentication Required

You MUST authenticate before running any other command. Every command fails without a valid key.

Check status first:

posteahora auth

If not authenticated, the user creates an API key in the app under Settings → API & integrations (it looks like pah_live_…), then:

posteahora auth --key pah_live_xxxxxxxx

The key is validated and stored in ~/.posteahora/config.json. It can also be supplied via the POSTEAHORA_API_KEY environment variable (useful in CI). Never print, log, or echo the key.

Core workflow

Follow this order for any publishing task:

  1. Authenticateposteahora auth
  2. Discover accountsposteahora accounts to get the account ID for each platform. You cannot post without an explicit account ID.
  3. Upload media (optional) — posteahora upload <file> → returns a public URL to pass to --media.
  4. Create / schedule / publishposteahora post …
  5. Verifyposteahora posts (or --json) to confirm status.
  6. Analyze (optional) — posteahora analytics.

Command reference

Authentication

posteahora auth --key pah_live_xxxx   # save & validate a key
posteahora auth                       # show current status
posteahora logout                     # remove the saved key

Accounts

posteahora accounts          # human-readable table
posteahora accounts --json   # machine-readable

Each row includes platform, username, the account id, and connection status. Use the id in --to platform:accountId.

Create a post

# Publish now to one or more channels
posteahora post "Launch day 🚀" --to twitter:a1b2 --to linkedin:c3d4

# Schedule for a future time (ISO 8601)
posteahora post "Morning tip" --to instagram:e5f6 --at 2026-07-20T09:00:00Z

# Draft only (nothing goes live)
posteahora post "Draft idea" --to twitter:a1b2 --draft

# With uploaded media
posteahora upload ./reel.mp4
posteahora post "New reel" --to instagram:e5f6 --media https://cdn.posteahora.com/… --at 2026-07-20T09:00:00Z

post options

  • --to platform:accountId — target channel (repeatable or comma-separated) (required)
  • --media <url> — attach media (repeatable; from upload)
  • --at <ISO 8601> — schedule for a future time (else publish now)
  • --draft — create a draft instead of publishing
  • --title, --hashtags a,b, --media-type image|video, --post-type post|reel|story
  • --json — machine-readable output

Manage & analyze

posteahora posts --status scheduled          # list posts by status
posteahora ideas add "5 hooks" --tags launch # add a backlog idea
posteahora ideas list
posteahora analytics --period 30d            # performance across platforms
posteahora upload ./photo.jpg                # upload media → public URL

Handling account IDs

The user will describe channels by name ("post to my Instagram and X"). Map each name to a real account ID by running posteahora accounts and matching the platform/username. Never guess an ID, and never fall back to "the first account" — if a requested platform has no connected account, tell the user and skip it.

Guardrails

  • Publishing is outward-facing and hard to undo. Before running posteahora post WITHOUT --draft, confirm the caption, channels, and time with the user. When unsure, create a --draft and ask.
  • Scheduled times must be in the future and ISO 8601.
  • Never invent media URLs, analytics numbers, or claims in captions.
  • Respect each platform's limits (e.g. X character count) — offer a per-platform caption instead of silently truncating.
  • If a command fails, report the exact error message and stop; do not retry blindly.
  • Never print or store the API key.

Errors

  • "No API key…" — run posteahora auth --key pah_live_… (or set POSTEAHORA_API_KEY).
  • --at must be in the future — the scheduled time is in the past; pick a future ISO 8601 timestamp.
  • Invalid --to … — the value isn't platform:accountId; run posteahora accounts and use a real ID.
  • HTTP 401 / 403 — key invalid or lacking scope; re-auth with a full-access key.
  • HTTP 429 — rate limited; wait and retry.

See also

Top skills in this category

Agent Browser

@matrixy

Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection

457154k

Using Superpowers

@zlc000190

Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions

6336k

Edge TTS

@i3130002

Text-to-speech conversion using node-edge-tts npm package for generating audio from text. Supports multiple voices, languages, speed adjustment, pitch control, and subtitle generation. Use when: (1) User requests audio/voice output with the "tts" trigger or keyword. (2) Content needs to be spoken rather than read (multitasking, accessibility, driving, cooking). (3) User wants a specific voice, speed, pitch, or format for TTS output.

3322k

novel-generator 是一个中文爽文小说生成技能。用户只需提供一句话方向(如"写个都市重生爽文"),AI 代理即可自动完善提示词、规划大纲、逐章创作并输出为独立 Markdown 文件。 核心特性: 智能提示词生成:从一句话方向自动补全世界观、人设、冲突、爽点设计 分章节创作:每章 2000-3000 字,层层递进,章章有爽点 记忆系统:通过 .learnings/ 记录角色、地点、情节、世界观,确保故事前后一致 情节图解:关键战斗、人物关系、势力分布自动生成 Mermaid 图 失败记录:穿帮、矛盾、崩塌等问题自动记录,持续优化 多题材支持:都市、修仙、玄幻、重生、系统流、末世、科幻、游戏 兼容 Claude Code、Cursor、OpenAI Codex、GitHub Copilot 等所有支持 Agent Skills 的工具。

@ityhg

根据用户提供的内容方向自动生成提示词并创作爽文小说。适用场景:(1) 用户提供小说方向/题材/关键词,(2) 需要生成章节连贯的长篇爽文,(3) 需要维护角色、地点、情节的连续性,(4) 需要为关键情节生成图解,(5) 需要记录生成失败场景以优化后续创作。支持都市、修仙、玄幻、重生、系统流等多种题材。Use wh...

7110k

Openclaw Agent Optimize

@phenomenoner

Use when: you want a structured audit -> options -> recommended plan to improve an OpenClaw workspace (cost, model routing, context discipline, delegation, r...

5013k