Token导航 LogoToken导航TokenDH.com
效率敏感数据clawhub未标认证来源可访问clear审计通过

postheroposthero 效率

Agent Skill

posthero 用于补充效率相关能力,适合在 OpenClaw 中需要让 Agent 承接效率相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

4,163

周安装

177

GitHub Stars

1

下载量

1,458
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:posthero(posthero 效率)
来源仓库:https://github.com/a007mr/posthero
安装命令:
openclaw skills install posthero
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install posthero

简介

用于通过 PostHero API 在多平台发布与安排社交媒体内容。

  • 适合在 OpenClaw 中管理 LinkedIn、Twitter/X、Instagram 等账户排期。
  • 通过 clawhub 安装后,可上传图文与视频并设置发布时间表。
  • 需申请 API 密钥并授权相应页面权限,注意各平台内容政策差异。
  • 建议启用发布日志与错误通知,及时排查失败任务原因。

SKILL.md

name
posthero
version
1.1.0
title
PostHero — Social Media Manager
description
Schedule and publish social media posts across LinkedIn, Twitter/X, Instagram, Facebook, YouTube, TikTok, Threads, and Bluesky using the PostHero API. Create drafts, schedule posts, publish immediately, manage content, and view analytics — all from natural conversation.
license
MIT
author
PostHero <support@posthero.ai>
homepage
https://posthero.ai/openclaw
keywords
metadata
openclaw
emoji
🦸
primaryEnv
POSTHERO_API_KEY
requires
env

PostHero — Social Media Manager

You are a social media assistant powered by PostHero. You help users create, schedule, and publish posts across 8 platforms from any messaging app.

Setup

  1. Sign up at https://posthero.ai and connect your social media accounts
  2. Get your API key from Settings > API
  3. Configure: clawhub config posthero POSTHERO_API_KEY pk_your_key_here

Authentication

All API requests require the header:

Authorization: Bearer $POSTHERO_API_KEY

Base URL: https://server.posthero.ai/api/v1

Supported Platforms

LinkedIn, Twitter/X, Instagram, Facebook, YouTube, TikTok, Threads, Bluesky

Character Limits

PlatformLimit
Twitter/X280 per tweet
Bluesky300 per post
Threads500 per post
LinkedIn3000
Instagram2200
Facebook63206
TikTok2200 (caption)
YouTube5000 (description)

Workflow

When the user asks to create or schedule a post:

  1. Always call GET /accounts first to get the user's connected accounts and their IDs
  2. Match the user's requested platform(s) to the account IDs returned
  3. If the user doesn't specify a platform, ask which one(s) they want
  4. If the user wants to schedule, convert their time to ISO 8601 UTC format
  5. Create the post with the appropriate parameters

When the user asks about analytics or post performance:

  1. Call the analytics endpoints with the appropriate platform
  2. Present the data in a clear, readable format

API Reference

GET /accounts

List all connected social media accounts. Always call this first before creating posts.

curl -H "Authorization: Bearer $POSTHERO_API_KEY" \
  https://server.posthero.ai/api/v1/accounts

Response:

{
  "success": true,
  "data": [
    {
      "id": "abc123",
      "platform": "linkedin",
      "name": "John Doe",
      "avatar": "https://...",
      "type": "personal"
    },
    {
      "id": "def456",
      "platform": "twitter",
      "name": "@johndoe",
      "avatar": "https://..."
    }
  ]
}

Use the id field as accountId when creating posts.


POST /posts

Create a post. Can be a draft, scheduled, or published immediately.

curl -X POST \
  -H "Authorization: Bearer $POSTHERO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "My post content here...",
    "platforms": [
      { "platform": "linkedin", "accountId": "abc123" }
    ],
    "schedule": "2026-04-15T09:00:00Z",
    "publishNow": false
  }' \
  https://server.posthero.ai/api/v1/posts

Request body:

FieldTypeRequiredDescription
textstringYesThe post content
platformsarrayYesArray of { platform, accountId } objects
schedulestringNoISO 8601 UTC datetime. Omit for draft
publishNowbooleanNoSet true to publish immediately
isThreadbooleanNoInformational only. Threading is auto-detected per platform from `\

\ \ (triple newline) separators in each platform's text — you don't need to set this. | | platformContent | object | No | Per-platform text overrides (see below) | | media | object | No | Media attachments (see below) | | isAutoPlug | boolean | No | LinkedIn-only. Schedule a chain of comments on the user's own LinkedIn post after publish (see Auto-plug below) | | autoPlug | array | No | Comments to schedule when isAutoPlug is true. Each entry: { comment, delay, image? }` |

Behavior:

  • No schedule and no publishNow → creates a draft
  • schedule provided → creates a scheduled post
  • publishNow: truepublishes immediately

Platform content overrides (optional per-platform text):

The top-level text field is the canonical default for every platform. Set platformContent.<platform>.text only when you need a different copy for that specific platform — providing the override automatically marks that platform as unsynced and leaves all other platforms reading the top-level text. This includes LinkedIn: send platformContent.linkedin.text for a LinkedIn-specific version, and the top-level text stays untouched for the rest.

{
  "platformContent": {
    "twitter": { "text": "Short tweet version" },
    "linkedin": { "text": "Longer LinkedIn version with #hashtags" },
    "bluesky": { "text": "Bluesky-specific text" },
    "threads": { "text": "Threads version" },
    "facebook": { "text": "Facebook version" },
    "instagram": {
      "text": "Instagram caption",
      "contentType": "feed"
    },
    "youtube": {
      "text": "Video description",
      "title": "My Video Title",
      "tags": ["tag1", "tag2"],
      "privacy": "public",
      "videoType": "long"
    },
    "tiktok": {
      "text": "TikTok caption",
      "privacyLevel": "PUBLIC_TO_EVERYONE",
      "allowComments": true,
      "allowDuet": true,
      "allowStitch": true
    }
  }
}

Media attachments (optional):

{
  "media": {
    "images": ["https://s3-url-1", "https://s3-url-2"],
    "video": "https://s3-video-url",
    "carousel": "https://s3-pdf-url"
  }
}

Use URLs returned by the media upload endpoint. Up to 4 images, or 1 video, or 1 carousel PDF.

Threads: Threading is auto-detected per platform from \ \ \ (triple newline) separators in each platform's text. No isThread flag needed.

  • Works for Twitter (280 chars/tweet), Bluesky (300 chars/post), and Threads (500 chars/post).
  • Each platform threads independently. To thread on X but post a single long-form on LinkedIn, put `\

\ \ only in platformContent.twitter.text` and leave LinkedIn's text without separators.

Example — thread on X, single long-form on LinkedIn, from one post:

{
  "platforms": [
    { "platform": "linkedin", "accountId": "abc123" },
    { "platform": "twitter", "accountId": "def456" }
  ],
  "platformContent": {
    "linkedin": {
      "text": "Long LinkedIn post. Multiple paragraphs fine — no triple newlines, so this stays as a single post."
    },
    "twitter": {
      "text": "Tweet 1 — hook.\
\
\
Tweet 2 — context.\
\
\
Tweet 3 — CTA."
    }
  }
}

Auto-plug (LinkedIn comments): schedule follow-up comments on the user's own LinkedIn post after it publishes. Useful for "drop the link in the first comment" patterns, follow-up CTAs, or thread-style replies. LinkedIn only — other platforms ignore these fields.

  • Set isAutoPlug: true.
  • Provide autoPlug as an array of { comment, delay, image? } entries.
  • delay is in milliseconds. The first entry fires that long after the post publishes; each subsequent entry fires that long after the previous comment.
  • image is optional — pass any HTTPS URL (or one returned by /media/upload).
  • After each comment posts, the entry gets a commentIdOnPlatform field on subsequent GETs.

Example — publish a LinkedIn post with two follow-up comments:

{
  "text": "Just shipped our new API! Excited to see what people build with it.",
  "platforms": [{ "platform": "linkedin", "accountId": "abc123" }],
  "isAutoPlug": true,
  "autoPlug": [
    {
      "comment": "Docs are here: https://posthero.ai/docs/api",
      "delay": 60000
    },
    {
      "comment": "Reply or DM if you hit anything weird — happy to help.",
      "delay": 180000
    }
  ],
  "publishNow": true
}

Response:

{
  "success": true,
  "data": {
    "id": "post_abc123",
    "status": "scheduled",
    "text": "My post content here...",
    "platforms": [{ "platform": "linkedin", "accountId": "abc123" }],
    "schedule": "2026-04-15T09:00:00Z",
    "createdAt": "2026-04-10T10:00:00Z"
  }
}

GET /posts

List posts with optional filters.

curl -H "Authorization: Bearer $POSTHERO_API_KEY" \
  "https://server.posthero.ai/api/v1/posts?status=scheduled&platform=linkedin&page=1&limit=20"

Query parameters:

ParamDescription
statusFilter: draft, scheduled, published, failed
platformFilter: linkedin, twitter, instagram, facebook, youtube, tiktok, threads, bluesky
pagePage number (default 1)
limitPosts per page (default 20, max 100)

Response:

{
  "success": true,
  "data": {
    "posts": [
      {
        "id": "post_abc123",
        "text": "My post content...",
        "status": "published",
        "platforms": [
          {
            "platform": "linkedin",
            "accountId": "abc123",
            "status": "published",
            "postId": "urn:li:share:123456",
            "postUrl": "https://linkedin.com/feed/update/..."
          }
        ],
        "schedule": null,
        "publishedAt": "2026-03-15T14:00:00Z",
        "createdAt": "2026-03-10T10:00:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 45,
      "hasMore": true
    }
  }
}

GET /posts/:id

Get full details of a single post including per-platform publishing status, post IDs, and URLs.

curl -H "Authorization: Bearer $POSTHERO_API_KEY" \
  https://server.posthero.ai/api/v1/posts/post_abc123

PATCH /posts/:id

Update a draft or scheduled post. Cannot update already-published posts.

curl -X PATCH \
  -H "Authorization: Bearer $POSTHERO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Updated content",
    "schedule": "2026-04-16T10:00:00Z"
  }' \
  https://server.posthero.ai/api/v1/posts/post_abc123

All fields are optional: text, schedule, platforms, platformContent, media.


DELETE /posts/:id

Delete a post from PostHero. Works for any status (draft, scheduled, published). Does NOT remove it from the social media platform.

curl -X DELETE \
  -H "Authorization: Bearer $POSTHERO_API_KEY" \
  https://server.posthero.ai/api/v1/posts/post_abc123

POST /posts/:id/publish

Immediately publish a draft or scheduled post.

curl -X POST \
  -H "Authorization: Bearer $POSTHERO_API_KEY" \
  https://server.posthero.ai/api/v1/posts/post_abc123/publish

Response:

{
  "success": true,
  "data": {
    "id": "post_abc123",
    "status": "published",
    "results": [
      {
        "platform": "linkedin",
        "status": "published",
        "postId": "urn:li:share:123456",
        "postUrl": "https://linkedin.com/feed/update/..."
      },
      {
        "platform": "twitter",
        "status": "published",
        "postId": "1234567890",
        "postUrl": "https://x.com/user/status/1234567890"
      }
    ]
  }
}

POST /media/upload

Upload an image, video, or carousel PDF. Returns an S3 URL to use in media when creating posts.

curl -X POST \
  -H "Authorization: Bearer $POSTHERO_API_KEY" \
  -F "file=@image.jpg" \
  https://server.posthero.ai/api/v1/media/upload

Response:

{
  "success": true,
  "data": {
    "url": "https://s3.amazonaws.com/...",
    "type": "image",
    "size": 245000,
    "mimeType": "image/png"
  }
}

GET /analytics/summary

Get aggregated analytics for a platform.

curl -H "Authorization: Bearer $POSTHERO_API_KEY" \
  "https://server.posthero.ai/api/v1/analytics/summary?platform=threads"

Query parameters:

ParamRequiredDescription
platformYestwitter, threads, instagram, tiktok, youtube
accountIdNoFilter by specific account
startNoStart date (YYYY-MM-DD)
endNoEnd date (YYYY-MM-DD)

GET /analytics/top

Get top-performing posts ranked by a metric.

curl -H "Authorization: Bearer $POSTHERO_API_KEY" \
  "https://server.posthero.ai/api/v1/analytics/top?platform=threads&metric=likes&limit=5"

Query parameters:

ParamRequiredDescription
platformYestwitter, threads, instagram, tiktok, youtube
metricNolikes, impressions, comments, saves, watchMinutes
limitNoNumber of posts (default 10)
startNoStart date (YYYY-MM-DD)
endNoEnd date (YYYY-MM-DD)

GET /analytics/posts

Get paginated post analytics.

curl -H "Authorization: Bearer $POSTHERO_API_KEY" \
  "https://server.posthero.ai/api/v1/analytics/posts?platform=threads&sortBy=likes&limit=20"

GET /analytics/follower-growth

Get follower count and growth delta.

curl -H "Authorization: Bearer $POSTHERO_API_KEY" \
  "https://server.posthero.ai/api/v1/analytics/follower-growth?platform=threads&account=abc123"

Error Handling

All errors return:

{
  "success": false,
  "error": "Human-readable error message",
  "code": "MACHINE_READABLE_CODE"
}
CodeHTTPDescription
UNAUTHORIZED401Missing or invalid API key
FORBIDDEN403Plan doesn't include API
NOT_FOUND404Resource not found
VALIDATION_ERROR400Invalid request body
ACCOUNT_NOT_FOUND400Social account not found or not owned by user
RATE_LIMITED429Too many API requests
PUBLISH_FAILED500Publishing failed on one or more platforms

Rate Limits

  • 60 requests per minute
  • 100 posts created per month (API plan)
  • Media uploads: 200 per month

Response headers on every request:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1710500000

Important Notes

  • Always call GET /accounts first to get account IDs before creating posts
  • Times must be ISO 8601 UTC format (e.g. 2026-04-15T09:00:00Z)
  • When the user says a time like "tomorrow at 9am", convert to UTC based on context
  • For cross-posting to multiple platforms, include all platform/accountId pairs in the platforms array
  • Threading is auto-detected per platform from `\

\ \ ` (triple newline) separators in the platform's text — respect per-platform character limits

  • Media URLs must come from the /media/upload endpoint (S3 URLs)
  • DELETE only removes from PostHero, not from the social media platform

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

73.92%
按下载量换算1,078

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills