agent-Postmoore
/install agent-postmoore
Postmoore — Social Media Assistant
Autonomously manage social media posting via the Postmoore API.
Setup
- Create a Postmoore account at postmoo.re
- Connect your social accounts (Instagram, TikTok, YouTube Shorts, LinkedIn, Facebook, Threads, Bluesky)
- Go to Profile → API Keys and generate an API key (Creator or Premium plan required)
- Store your key in your workspace
.env:
POSTMOORE_API_KEY=pm_live_xxxxx
Auth
All requests use a Bearer token:
Authorization: Bearer \x3CPOSTMOORE_API_KEY>
Base URL: https://postmoo.re/api/v1
Core Workflow
1. Get Social Accounts
GET /accounts
Optional filter by platform:
GET /accounts?platform=tiktok
Supported platform values: instagram · tiktok · ytshorts · linkedin · facebook · threads · bluesky
Returns an array of connected accounts. Each account has:
id— use this in every post requestplatform— the platform namedisplayName— the account display nameplatformUsername— username on the platformstatus— alwaysactive
Always fetch account IDs before posting — never guess them.
2. Upload Media
POST /media
Content-Type: multipart/form-data
file: \x3Cbinary>
Supported formats: image/jpeg · image/png · image/gif · image/webp · video/mp4 · video/quicktime · video/webm
Max file size: 100 MB. Storage quota: 5 GB (Creator plan) · 20 GB (Premium plan).
Returns:
{
"data": {
"id": "uploads/user123/filename.mp4",
"type": "video",
"url": "https://storage.postmoo.re/...",
"mimeType": "video/mp4",
"size": 10485760,
"filename": "video.mp4"
}
}
Save both id and url — you need both when creating a media post.
3. Create a Post
POST /posts
Content-Type: application/json
Text post (post now):
{
"contentType": "text",
"text": "Your caption here #hashtags",
"accounts": ["\x3Caccount_id_1>", "\x3Caccount_id_2>"],
"schedule": { "type": "now" }
}
Text post (scheduled):
{
"contentType": "text",
"text": "Scheduled caption #hashtags",
"accounts": ["\x3Caccount_id_1>"],
"schedule": { "type": "scheduled", "at": "2026-06-01T14:00:00Z" }
}
Media post (image or video):
{
"contentType": "media",
"text": "Caption for the post #hashtags",
"media": [{ "id": "\x3Cid_from_upload>", "url": "\x3Curl_from_upload>" }],
"accounts": ["\x3Caccount_id_1>", "\x3Caccount_id_2>"],
"schedule": { "type": "now" }
}
Draft (save without publishing):
{
"contentType": "text",
"text": "Draft caption to review",
"accounts": ["\x3Caccount_id_1>"],
"schedule": { "type": "draft" }
}
schedule options:
{ "type": "now" }— publish immediately{ "type": "scheduled", "at": "\x3CISO 8601 datetime>" }— schedule for future{ "type": "draft" }— save as draft, no publishing
Returns post object with:
id— post IDstatus—pending·scheduled·published·failed·draftaccounts— array of{ id, platform }results— per-platform result withsuccess,postId,url,error
4. List Posts
GET /posts
GET /posts?status=scheduled
GET /posts?status=draft&page=1&limit=20
Status filters: pending · scheduled · published · failed · draft
Pagination params: page (default 1) · limit (default 20, max 100)
Returns paginated array with data and pagination object containing page, limit, total, totalPages, hasMore.
5. Get a Single Post
GET /posts/\x3Cpost_id>
Returns full post object including per-platform results.
6. Delete a Post
DELETE /posts/\x3Cpost_id>
Only works on posts with status pending or draft. Scheduled and published posts cannot be deleted.
Returns { "data": { "id": "\x3Cpost_id>", "deleted": true } }.
Recommended Workflow for Video Content
- Ask the user for the video file path
- Extract a frame to understand the content:
ffmpeg -i video.mp4 -ss 00:00:03 -frames:v 1 frame.jpg -y - Read the frame and write a caption with 4–5 relevant hashtags
- Upload the video:
POST /media - Get account IDs:
GET /accounts - Create the post with the media
idandurlfrom the upload - Confirm status:
GET /posts/\x3Cpost_id>
Tips
- Post to multiple platforms in one request by including multiple account IDs
- Use
"type": "draft"when the user wants to review content before it goes live - Stagger scheduled posts throughout the day for better reach
- Keep hashtags to 4–5 per post
- Always confirm account IDs from
GET /accountsbefore every session - Check the
resultsarray after posting for per-platform success or failure details - If a post fails on one platform but succeeds on others, the overall status will be
failed— check individual results
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install agent-postmoore - 安装完成后,直接呼叫该 Skill 的名称或使用
/agent-postmoore触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
agent-Postmoore 是什么?
Autonomously post, schedule, upload media, save drafts, and manage content across Instagram, TikTok, YouTube Shorts, LinkedIn, Facebook, Threads, and Bluesky... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 86 次。
如何安装 agent-Postmoore?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install agent-postmoore」即可一键安装,无需额外配置。
agent-Postmoore 是免费的吗?
是的,agent-Postmoore 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
agent-Postmoore 支持哪些平台?
agent-Postmoore 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 agent-Postmoore?
由 Omaano Tetteh(@rkotchamp)开发并维护,当前版本 v1.0.0。